Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf-bier-te-arch-10: (with DISCUSS and COMMENT)
Greg Mirsky <gregimirsky@gmail.com> Thu, 30 December 2021 01:08 UTC
Return-Path: <gregimirsky@gmail.com>
X-Original-To: bier@ietfa.amsl.com
Delivered-To: bier@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0C0A3A0765; Wed, 29 Dec 2021 17:08:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 PyRnY07FofqD; Wed, 29 Dec 2021 17:08:17 -0800 (PST)
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (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 729403A076C; Wed, 29 Dec 2021 17:08:16 -0800 (PST)
Received: by mail-ed1-x52f.google.com with SMTP id b13so92135713edd.8; Wed, 29 Dec 2021 17:08:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=auKehORS/GNOMuYQUY+8lsiM278QKFFoU1jyJWJoJHk=; b=hhO5wMKjRxkpwwP7AAbhM36tKjj4bsSRtKXHTpzjTz4hd8EbneyDYCmJB9hws0b26D viHwwdPKQXDW1vSUMUQyUXwhUxR3TzD0cHHBzoHjwgbqtOmExPFm41uEpIJQZKdHV+Tg JiBEhdC+DXpWffokDmR51qickrr5loMD7FTzsgGy+W24Po6BM4nB+AQBONmJKeD/FYd8 BGdt6ZBy2vH3HXHUkeRuy6EhywUB88nn42+ZnsE4qpJsoo2gFAay2x0Y76Eu3d0GNqZU +eQoc3DvuOVGRhgAby8/+pV4vBUp9xChB9NoW0sBeulEp9fUHJj3Ie4zjs8vXhzOhfwH VXNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=auKehORS/GNOMuYQUY+8lsiM278QKFFoU1jyJWJoJHk=; b=sGcPChSQkE6nRCMRUvrj5D3rrIHlAxEx2RJtTafDrhl9i7fmSOyfHGf9bNIa3mnbII 1JY8g70bnBqNCDxztqfUXABmyE3J+eiH6UMEv3ZceT7iTJGkR2L9DsUFov1QNdS6TvOE lZVbMHpoLl9tD48KvAow7j6FnWggEwVfzMQHBTZFlPpFA0xTOlUt42/FOWPQJlI2YN3k 6EZLMTqZ2yxVpQfK+PkaT9Q3yOiuPayjF8gP+9l8e7zFuPTPYwTUZOzMc4bWKpl4X64O gpJMWMMsLqLh7eaZlpdiCNDQ3xf9fKgaT13FRDDizVZ43fOI3PQsCzt8dWiB1p7Jz7UT u56Q==
X-Gm-Message-State: AOAM5313IHY3+QlschigzfxZpDhGx783ph7atYHzBZaHznZXO8jgVKTf wxFHNCqP0VMpY6xt69FF2CRAlQB/2Lz2gsMkLro=
X-Google-Smtp-Source: ABdhPJx5ZChBDWTYXKmzIHEaiM9nVulujlUpu2HMRzdvo7+NOu6ON1+Day1anSv/oBsqL42gO+IiTH05lnZ/8V2CaEY=
X-Received: by 2002:a17:906:5d0a:: with SMTP id g10mr23716366ejt.382.1640826489491; Wed, 29 Dec 2021 17:08:09 -0800 (PST)
MIME-Version: 1.0
References: <162996119973.19003.11174569450531796563@ietfa.amsl.com> <YZNfIH1vSf5sQGXN@faui48e.informatik.uni-erlangen.de>
In-Reply-To: <YZNfIH1vSf5sQGXN@faui48e.informatik.uni-erlangen.de>
From: Greg Mirsky <gregimirsky@gmail.com>
Date: Wed, 29 Dec 2021 17:07:58 -0800
Message-ID: <CA+RyBmW=74XBWUKQ0JDNjent5K6ArayvtAJBG=gJroRm13kSrQ@mail.gmail.com>
To: Toerless Eckert <tte@cs.fau.de>
Cc: Benjamin Kaduk <kaduk@mit.edu>, BIER WG <bier@ietf.org>, Alvaro Retana <aretana.ietf@gmail.com>, draft-ietf-bier-te-arch@ietf.org, The IESG <iesg@ietf.org>, Xuesong Geng <gengxuesong@huawei.com>, BIER WG Chairs <bier-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000000b58f005d452b08d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/bier/kqoZjULBRiirT8kg_OmKgRZ-9ks>
Subject: Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf-bier-te-arch-10: (with DISCUSS and COMMENT)
X-BeenThere: bier@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "\"Bit Indexed Explicit Replication discussion list\"" <bier.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bier>, <mailto:bier-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bier/>
List-Post: <mailto:bier@ietf.org>
List-Help: <mailto:bier-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bier>, <mailto:bier-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Dec 2021 01:08:23 -0000
Hi Toerless, I may have a proposal for the terminology discussion. Traffic Engineering includes two elements - explicit routing (ER) and resource, more often just BW, reservation. As I understand it, what is being referred to as BIER-TE enables the explicit routing, i.e., path engineering (PE), only. Hence, this technique may be referred to as BIER-PE or BIER-ER. My $.02 Happy New Year to All! Best wishes. Regards, Greg On Mon, Nov 15, 2021 at 11:35 PM Toerless Eckert <tte@cs.fau.de> wrote: > Hi Ben > > Thanks a lot for the review, especially also the long list of nits to > help improve text quality.. > > I have some time contention in the coming weeks, so i wanted to at least > finish > your review, so i pushed -11 for the fixes from your review. > > The DISCUSS was actually just one wrong character. > > Answers to your comments and fixes inline below. > > diff here: > > > http://tools.ietf.org/rfcdiff?url1=https://www.ietf.org/archive/id/draft-ietf-bier-te-arch-10.txt&url2=https://www.ietf.org/archive/id/draft-ietf-bier-te-arch-11.txt > > Next rev with fixes for the other IESG reviewer comments somewhat later. > Sorry. > > Cheers > Toerless > > On Wed, Aug 25, 2021 at 11:59:59PM -0700, Benjamin Kaduk via Datatracker > wrote: > > Benjamin Kaduk has entered the following ballot position for > > draft-ietf-bier-te-arch-10: Discuss > > > > When responding, please keep the subject line intact and reply to all > > email addresses included in the To and CC lines. (Feel free to cut this > > introductory paragraph, however.) > > > > > > Please refer to > https://www.ietf.org/iesg/statement/discuss-criteria.html > > for more information about DISCUSS and COMMENT positions. > > > > > > The document, along with other ballot positions, can be found here: > > https://datatracker.ietf.org/doc/draft-ietf-bier-te-arch/ > > > > > > > > ---------------------------------------------------------------------- > > DISCUSS: > > ---------------------------------------------------------------------- > > > > I think there's an issue with the pseudocode in Figure 6. While I > > understand that it's pseudocode, any reasonable interpretation I can > > come up with for the "~" and "&=" operators seems to result in > > performing an operation logically equivalent to: > > > > X = AdjacentBits[SI] > > Packet->BitString = Packet->BitString & ~X & X > > > > that can be optimized to > > > > Packet->BitString = 0 > > > > and I do not think that the only bits that are supposed to be set in the > > outgoing packet/packet copy are the ones for which DNC is set -- bits > > that we did not find in our BIFT should remain set in outgoing packets. > > (Slightly more detail in the COMMENT.) > > great catch > > AdjacentBits = Packet->BitString &= ~AdjacentBits[SI]; > ^ > No idea how i overlooked that extraneous = character. > > I also inserted two comment lines to make the purpose of the lines more > obvious: > > // Set variable for looping across only adjacent bits > AdjacentBits = Packet->BitString & ~AdjacentBits[SI]; > // Clear adjacent bits in Packet header to avoid loops > Packet->BitString &= ~AdjacentBits[SI]; > > > ---------------------------------------------------------------------- > > COMMENT: > > ---------------------------------------------------------------------- > > > > I think it would be helpful to have a clear statement early on that the > > DNC bit is applicable only to "forward_connected()" adjacencies and not > > to "forward_routed()", that is, earlier than the guidance in §5.2.1. > > Added to 4.2.1 (first specification style mentioning of DNC): > > <t>For safety against loops under misconfiguration (see <xref > target="Loops"/>), > DNC is only permissible for forward_connected() adjacencies. No need or > benefit > of DNC for other type of adjacencies was identified and their risk was not > analyzed.</t> > > > It's easy for a reader in a hurry to miss the distinction that just > > "BIER" is "regular BIER" as opposed to the "BIER-TE" that this document > > specifies. It might be worth adding a qualifier in at least some > > instances about "non-TE BIER" or similar, especially where we have a > > paragraph that talks about BIER as a set-up for a comparison with > > BIER-TE. > > Hmm. I have added (non-TE) to several places , first mentioning of BIER > in sections. To give it a try. Will ask the WG if they like it, else > remove them later again. > I would assume people not familiar with BIER may prefer this, while those > are may not. I don't think i have ever seen this for RSVP vs. RSVP-TE... > > > Thanks for the conversation with the gen-art reviewer; I think it's > important > > to get in the clarifications that were proposed in that thread. > > > > Section 2.3 > > > > BIER-TE is also intended as an option to expand the BIER architecture > > into deployments where BIER may not be the best fit, [...] > > > > It's fairly surprising to advocate for doing something even when there > > are known better options to achieve the same goal. > > Ok. That actually a very good place to add (non-TE) before "BIER may not.." > > > Section 4.3 > > > > It seems that these coexistence schemes rely on something like a central > > controller entity to configure all BFRs with the criteria for assessing > > whether a given packet is in "BIER mode" or "BIER-TE mode". > > It more like configuring SD values to be BIER or BIER-TE. Think of > being able to configure if an IP address prefix is unicast or multicast > instead of standardizing the address plan. > > > It seems > > prudent to consider the risk that this information is not distributed > > uniformly in time (especially in the case of dynamic updates) or > > otherwise becomes stale on some particular node(s). Would the network > > be "self-healing" in the face of a node that persistently > > mis-forwards/replicates a given class of packet (by virtue of treating > > it as BIER rather than BIER-TE, or vice versa)? > > The self-healing has to come from the control plane. (non-TE) BIER > was specified very much with the assumption that one uses an IGP as > the control plane, but the desire is now to also be able to use a central > controller for deployments that don't like IGP. BIER-TE is written very > much assuming there is a controller, but if someone comes up with a > disributed control plane, that would be great too. > > IMHO, a central controller has an easier job achieving consistency as > an IGP because it can employ more intricate multi-phase commit procedures. > Of course, a lazily deveoped controller could be worse than an IGP. > > With there was an RFC to reference these fundamental routing topics, > but in the absence of it i wouldn't want to venture writing down > any of this in a mere "application" of those mechanisms. > > > > Section 4.4 > > > > AdjacentBits = Packet->BitString &= ~AdjacentBits[SI]; > > > > The "A = B &= C" construct might be overly clever for what is intended > > to be illustrative pseudocode... > > > > Packet->BitString &= AdjacentBits[SI]; > > > > ... and the combination of "Packet->BitString &= ~X" and > > "Packet->BitString &= X" seems to result in all bits getting cleared, if > > I'm not mistaken. Surely that's not the intent (per the Discuss)... > > Done. > > > Section 4.5 > > > > I think the example that walks through the packet flow and talks about > > which bits are cleared along the way is a helpful example. > > Thanks > > > Section 5.1.3 > > > > All leaf-BFERs in a BIER-TE domain can share a single bit position. > > This is possible because the bit position for the adjacency to reach > > the BFER can be used to distinguish whether or not packets should > > reach the BFER. > > > > I'm not sure I understand this properly. I think that this single > > shared bit is used both to indicate "send along this adjacency" and > > (implicitly?) "local_decap when it gets here". It seems like this could > > result in spurious packet copies egressing from some BFERs. Consider > > (using the left topology from Figure 10) a case where only egress from > > BFER2 is needed, but some other constraints meant that the only possible > > path from BFIR to BFER2 involved traversing BFR1 on the way to BFR2. > > Even though BFR1 only needs to be a transit router for this flow, it > > will still send a packet copy to BFER1 (where it gets decapsulated and > > sent out). > > Routing , including "spurious routing" impacts only forward_routed(), > not forward_connected(), so it could only impact a packet that > was encapsulated for forward_routed by some other BFR with destination > being BFER2, and this packet passes unexpectedly via BFR1. But it doesn't > matter which routers/BFR it passes through, the BIER header will not > be examined there, its just unicast routed. > > > Even worse, if DNC is not set, it seems that the copy that > > leaves BFR1 and makes its way to BFR2 will have the bit cleared that's > > used to indicate "leaf BFER". So, either I'm confused about how this > > works (something that's quite plausible!), or there's some other > > undocumented constraints here either on the topology or the use of DNC. > > The BitString is intended to express a delivery tree. Only nodes that > will always be leaves in any tree (because of their location in the > topolocy) > will have a share Leaf BFR bit set. The fact that they clear this > bit when they process the packet does thereofre not hurt further > BIER forwarding of the packet, because by being leaf there is the > implication > that no BitString will be built in which they need to forward a receive > BIER-TE pto a further BFR. > > > Reading forward to the summary in §5.1.10, perhaps my assumption about > > indicating "send along this adjacency" was incorrect. Still, I > > shouldn't need to read the later section in order to understand the > > earlier one, so adding a few more words here may be in order. > > I wouldn't know what to write to clear up this confusion. > If i managed correctly guess what you where confused about, > maybe you want to suggest text ? > > > Section 5.1.5 > > > > In a setup with a hub and multiple spokes connected via separate p2p > > links to the hub, all p2p links can share the same bit position. The > > > > Is this for the adjacency to the hub, from the hub, or the same bit for > > both? > > Good catch. Changed to: > > | In a setup with a hub and multiple spokes connected via separate > | p2p links to the hub, all p2p adjacencies from the hub to the spokes > links can share the same bit position. > > Aka: this is for hop->spoke traffic only. > > Note that this section does not describe that you may also want to > use a single (but separate) BP for all spoke->hub adjacencies, > because designing how to do this has more considerations, and > this section was just written to give a sufficiently good reasoning > why we want to support a list of adjacencies for a BP. > > > Section 5.2.1 > > > > Link layers without port unique link layer addresses should not be > > used with the DNC flag set. > > > > "should not" or "MUST NOT"? > > First of all, it is lower case because i have tried to not > create normative requirements against controller behavior (section 5), > because i have not seen this being done elsewhere in documents for > comparable text/guidelines. > > Secondly, it is "should" and not "must/MUST" because the loops > in question would happen under miscabling (and then the link layer > address protects), but there are of course networks that would > break down from miscabling anyhow - e.g.: in embedded > environments, planes, trains, automobiles. So on those type > of networks, one can expect that there is never miscabling > (because there is always complete cabling validation before > operations). In these type of networks one can likely forego link > layer verification of cabling. > > > Section 5.2.2 > > > > When links are incorrectly physically re-connected before the BIER-TE > > Controller updates BitStrings in BFIRs, duplicates can happen. Like > > loops, these can be inhibited by link layer addressing in > > forward_connected() adjacencies. > > > > (Likewise.) > > Answer also likewise ;-) > > > Section 5.3.2 > > > > and the amount of alternative paths in it. The higher the percentage > > of non-BFER bits, the higher the likelihood, that those topology bits > > are not just BIER-TE overhead without additional benefit, but instead > > that they will allow to express desirable path steering alternatives. > > > > This assessment of likelihood seems unsupportable without some > > additional assumptions or preconditions. If the sampling domain is > > "all possible representations of subtopologies" I think the statement is > > false. It only seems likely to hold if the sampling domain is limited > > to topology descriptions crafted by BIER-TE experts. > > Nice. Indeed. > > | In a BIER-TE topology crafted by a BIER-TE expert, the higher the > percentage... > > > Section 5.3.3 > > > > In BIER-TE, for a non-leaf BFER, there is usually a single BP for > > that BFER with a local_decap() adjacency on the BFER. The BFR-id for > > such a BFER can therefore equally be determined as in BIER: BFR-id = > > SI * BitStringLength + BP. > > > > I don't think I understand why this constraint is necessary. What > > component is going to know which BFRs are BFERs and rely on this > > property of teh BFR-id? > > This is not a constraint, but an explanation how to calculate the > bift-id of a BFER in BIER-TE. the bift-id is an identifier used > in various BIER routing underlay signaling (which i think we don't > need for BIER-TE, but someone might want to), and Multicast Flow > overlay signaling (which we do want to reuse). In BIER, this > bift is BFR-id = SI * BitStringLength + BP, where BP is the BP > explicitly assigned to the BFER. > > In BIER-TE we do not necessarily have a single BP designated > to a BFER, so the controller has various options of how he > assigns unambiguous bift-ids to BFER, and this text explains > one option that would make it closests to (non-te) BIER. > > > Section 5.3.5 > > > > It is not currently determined if a single sub-domain could or should > > be allowed to forward both BIER and BIER-TE packets. If this should > > be supported, there are two options: > > > > This sounds kind of Experimental. Perhaps this content is more > > appropriate in an Appendix? > > Not really experimental. I'd call it an option (MAY) vendor implementation > option. > Ultimately this relates to the encap, so like in the BIER architecture > (RFC8279), > which is not normative about encap but gives guidance, this is guidance > might result in normative text in some update of RFC8296. > > > this approach. Depending on topology, only the same 20%..80% of bits > > as possible for BIER-TE can be used for BIER. > > > > Where does the 20-80% range come from? > > remove sentence. I originally had this rough estimate (20..80%) in a > prior paragraph, but that was negotiated away by another reviewer, > and this one was left over (hence also the meaningless "only the same"... > - which was referring to the prior, alredy removed occurance of this > estimate). > > > Section 5.3.6.1 > > > > Consider a network setup with a BSL of 256 for a network topology as > > shown in Figure 20. The network has 6 areas, each with 170 BFRs, > > connecting via a core with 4 (core) BFRs. To address all BFERs with > > BIER, 4 SIs are required. To send a BIER packet to all BFER in the > > > > How many BFERs per area? > > replaced "170 BFRs" with "170 BFERs". > > > What calculation produces the "4 SIs are required" result? > > 170 * 6 / 265 = 3.84 => 4 * 265 bitstrings (SI) needed. > > > Section 5.3.6.2 > > > > On all BFIRs in an area j|j=2...6, bia in each BIFT:SI is populated > > with the same forward_routed(BFRja), and bib with > > forward_routed(BFRjb). On all area edge BFR, bea in > > BIFT:SI=k|k=2...6 is populated with forward_routed(BFRka) and beb in > > > > Why do j and k range from 2 through 6, excluding 1? Where is area 1 > > handled? > > Added at end of paragraph: > > | For this setup we do not consider > | area 1 because we assume the BIER-TE setup is just for sending traffic > from > | area 1 into area 2...6, for example bcause the broadcast headends are > | in area 1 for an IPTV BIER-TE setup. > > > Section 6 > > > > Adjacency scope could be global, but then every BFR would need an > > adjacency for this BP, for example a forward_routed() adjacency with > > encapsulation to the global SR SID of the destination. Such a BP > > would always result in ingress replication though. The first BFR > > > > I don't think I know what "ingress replication" is. > > Added "(as in <xref target="RFC7988"/>)" as pointer defining ingress > replicartion. > > > Are we trying to say that all the replication that occurs for traffic to > > this BP is created starting at the ingress node and there can be no > > efficiency gains by deferring replication until later on in the path(s)? > > Yes. This is not meant to describe something ideal but to explain > how SR terms would map to BIER-TE options. > > > Both BIER and BIER-TE allow BFIR to "opportunistically" copy packets > > to a set of desired BFER on a packet-by-packet basis. In BIER, this > > is done by OR'ing the BP for the desired BFER. In BIER-TE this can > > be done by OR'ing for each desired BFER a BitString using the > > "independent branches" approach described in Section 5.3.3 and > > therefore also indicating the engineered path towards each desired > > BFER. This is the approach that > > [I-D.ietf-bier-multicast-http-response] relies on. > > > > It's a bit late in the day here (so I could be missing something), but > > it seems to me that this paragraph is not really needed in this > > document. If it's helpful content, it could appear in the referenced > > document, to which it seems more directly applicable. > > Nope. sharp. This is duplicate text too, thats i probably originally > felt would make sense to repeat in the context of SR, but not i also > don't see a good linkage to SR. Removed paragraph. > > > Section 7 > > > > It would be great if (as Roman mentions) we could say that any > > BFR/Controller connections used for BIER-TE MUST be protected by TLS or > > security protections at least as strong as TLS. > > > > We might consider something like "the discussion in [3272bis] is also > > relevant for BIER-TE". > > I added after the existing sentence: > > |for example by using Secure SHell (SSH), <xref target="RFC4253"/> for > NetConf (<xref target="RFC6241"/>), or via Transport Layer Security (TLS), > such as <xref target="RFC8253"/> for PCEP, <xref target="RFC5440"/>, or > <xref target="RFC7589"/> for NetConf. > > | BIER-TE controllers SHOULD use security equal to or better than these > mechanisms. > > I am only using SHOULD because i dont see a risk of getting less security > in any "IT" network (service provider, enterprise, data-center), TLS is > the obviouos choice, and if somebody uses something different from the > above > list like SSH, then the deployment has some more fundamental ops > challenges. > > But with MUST, we might create an inappropriate burden for "OT" networks > (inside trains, planes, automobiles, to repeat my prior example). > In many cases you might have physically removed "provisioning ports". > > Think of hidden i2c ports on devices through which you configure the > device, then you remove and never touch again. Aka: physical security. > Is that equal or better than TLS ? > > > Section 11.2 > > > > If "it is expected that the reader be familiar with" RFC 8296, it should > > probably be classified as normative. > > Done. > > > NITS > > > > By no means an exhaustive collection, but hopefully they will help. > > > > Section 2.2 > > > > may be called an "overlay" BIER-TE topology. A BIER-TE topology will > > both "forward_connected" and "forward_routed" adjacencies may be > > called a "hybrid" BIER-TE topology. > > > > s/will/with/ > > Ack. > > > Section 2.3 > > > > In BIER- > > TE, bits in the BitString of a BIER packet header indicate an > > adjacency in the BIER-TE topology, and only the BFRs that are > > upstream of this adjacency have this bit populated with the > > adjacency in their BIFT. > > > > I think that s/are upstream/are the upstream endpoint/ would greatly aid > > readability. > > Ack. > > > > > 2. In BIER, the implied reference option for the core part of > > the BIER layer control plane is the BIER extension to > > distributed routing protocol, such as standardized in ISIS/ > > OSPF extensions for BIER, [RFC8401] and [RFC8444]. [...] > > > > There seems to be some singular/plural mismatch(es) going on here. > > Maybe "are the BIER extensions to distributed routing protocols, such as > > those standardized in"? > > yes. > > > 3. The following element/functions described in the BIER > > architecture are not required by the BIER-TE architecture: > > > > Probably best to use "elements/functions" to match plurality. > > ack. > > > 1. BIRTs on BFR for BIER-TE are not required when using a BIER- > > > > I think "BFRs" plural. (Probably the plural is best for the next few > > instances of "BFR" (not "BFR-id") in this section, but I will not try to > > note them all explicitly.) > > ack > > > Section 3.2 > > > > I think s/BFIR/BFIRs/ in all cases in this section (excluding > > subsections) other than item 2.3, and possibly 2.1 if the intent is "for > > each multicast overlay flow". > > sounds right. > > > > 3. Install state on the BFIR to imposition the desired BIER > > packet header(s) for packets of the overlay flow. > > > > s/imposition/impose/ > > ack. > > > Section 3.2.1 > > > o Data-models and protocols to communicate between controller and > > BFR in step 1, such YANG/Netconf/RestConf. > > > > probably s/BFR/BFRs/ and s/such/such as/. > > ack. > > > Section 3.2.1.1 > > > > When the topology is determined, the BIER-TE Controller then pushes > > the BitPositions/adjacencies to the BIFT of the BFRs, populating only > > those SI:BitPositions to the BIFT of each BFR to which that BFR > > should be able to send packets to - adjacencies connecting to this > > BFR. > > > > This sentence should probably be rewritten and split up; it may have > > multiple valid parse trees but regardless is pretty hard to parse. > > Having separate terms for "the BFR receiving BIFT updates" and "the BFR > > to which a given bit says to send a packet" would help a lot. > > Yeah, weird complex. simplified now: > > <t>When the BIER-TE topology is determined, the BIER-TE Controller then > pushes > the BitPositions/adjacencies to the BIFT of the BFRs. On each BFR only > those SI:BitPositions > are populated that are adjacencies to other BFRs in the BIER-TE > topology.</t> > > > Section 3.2.1.2 > > > > encoded as the same BitString. In BIER-TE, the BitString used to > > reach the same set of BFER in the same sub-domain can be different > > for different overlay flows because the BitString encodes the paths > > towards the BFER, so the BitStrings from different BFIR to the same > > set of BFER will often be different, and the BitString from the same > > BFIR to the same set of BFER can different for different overlay > > flows for policy reasons such as shortest path trees, Steiner trees > > (minimum cost trees), diverse path trees for redundancy and so on. > > > > I suggest breaking the sentence before "and the BitString from the same > > BFIR". > > ack > > > > Also, s/can different/can be different/ > > ack > > > > See also [I-D.ietf-bier-multicast-http-response] for a solution > > describing this interaction. > > > > I'm not sure that "solution" is the best word here ("solution to which > > problem?"). > > See also <xref target="I-D.ietf-bier-multicast-http-response"/> for an > application > leveraging BIER-TE engineered trees. > > > Section 3.2.1.4 > > > > When link or nodes fail or recover in the topology, BIER-TE could > > quickly respond with out-of-scope FRR procedures such as > > [I-D.eckert-bier-te-frr]. [...] > > > > Is the intent to say "could quickly respond with FRR procedures [...] > > the details of which are out of scope for this document"? > > ack. > > > Section 3.3 > > > > 1. On BFIR imposition of BIER header for packets from overlay flows. > > > > comma after BFIR > > ack > > > > 3. On BFER removal of BIER header and dispatching of the payload > > > > comma after BFER > > ack > > > > Section 3.5 > > > > available at each BFR and for each BP when it is providing congestion > > loss free services such as Rate Controlled Service Disciplines > > > > hyphenate "congestion-loss-free" > > ack > > > > control protocol such as Netconf or any other protocol commonly used > > by a PCE to understand the resources of the network it operates on. > > > > I think s/PCE/Controller/ since this is the only instance of "PCE" > > that's not part of "PCEP", in this document. > > Ack. > > > the BIER-TE defined steering of packets. This includes allocation of > > buffers to guarantee the worst case requirements of admitted RCSD > > traffic and potential policing and/or rate-shaping mechanisms, > > > > I'm not sure, but possibly s/potential/potentially/ > > yes. > > > Section 4.2.1 > > > > for copies of the packet made towards other adjacencies. This can be > > used for example in ring topologies as explained below. > > > > "Below" could become a reference to §5.1.6 as was done in §4.1. > > ack. > > > Section 4.2.3 > > > > packet is copied onto such an ECMP adjacency, an implementation > > specific so-called hash function will select one out of the lists > > adjacencies to which the packet is forwarded. This ECMP hash > > > > s/lists/list's/ > > ack > > > Section 4.2.4 > > > > packets. Local_decap() adjacencies require the BFER to support > > routing or switching for NextProto to determine how to further > > process the packet. > > > > I'm not finding a protocol element to map to "NextProto" in this > > context, so maybe writing out in long form something like "the next > > protocol layer" would be preferred. > > Resolved by introducing term in prior sentence: > > A "local_decap" adjacency passes a copy of the payload of > the BIER-TE packet to the protocol ("NextProto") within the BFR > (IPv4/IPv6, Ethernet,...) responsible for > that payload > > NextProto is also used in the Pseudocode. > > > Section 4.3 > > > > With MPLS, it is also possible to reuse the same SD space for both > > BIER-TE and BIER, so that the same SD has both a BIER BIFT and > > according range of BIFT-ids and a disjoint BIER-TE BIFT and non- > > overlapping range of BIFT-ids. > > > > I think s/according/corresponding/ > > ack. > > > "forward_routed" requires an encapsulation permitting to unicast > > BIER-TE packets to a specific interface address on a target BFR. > > > > "encapsulation that permits directing unicast BIER-TE packets" > > ack. > > > Section 4.4 > > > > void ForwardBitMaskPacket_withTE (Packet) > > { > > SI=GetPacketSI(Packet); > > Offset=SI*BitStringLength; > > for (Index = GetFirstbit position(Packet->BitString); Index ; > > Index = GetNextbit position(Packet->BitString, Index)) { > > F-BM = BIFT[Index+Offset]->F-BM; > > if (!F-BM) continue; [3] > > BFR-NBR = BIFT[Index+Offset]->BFR-NBR; > > PacketCopy = Copy(Packet); > > PacketCopy->BitString &= F-BM; [2] > > PacketSend(PacketCopy, BFR-NBR); > > // The following must not be done for BIER-TE: > > // Packet->BitString &= ~F-BM; [1] > > } > > } > > > > GetFirstBitPosition and GetNextBitPosition are the spellings used in the > > RFC 8279 pseudocode; I don't see reason to diverge from them. (The same > > comment applies to the pseudocode in Figure 6 as well.) > > Indeed. strange. fixed. > > > To solve both [1] and [2] for BIER, the F-BM of each bit needs to > > have all bits set that this BFR wants to route across BFR-NBR. [2] > > > > Expanded out, "the F-BM of each bit needs to have" doesn't seem to make > > much sense; would s/bit/bit index/ make more sense? > > Yes. > > > * The packets BitString is masked with those AdjacentBits before > > the loop to avoid doing this repeatedly for every PacketCopy. > > > > s/packets/packet's/ > > ack > > > case forward_routed({VRF},neighbor): > > SendToL3(PacketCopy,{VRF,}l3-neighbor); > > > > Should the first line use "l3-neighbor" as well as the second one? > > yes. > > > Section 4.5 > > > > BFR3 sees a BitString of p5,p7,p8,p10,p11,p12. For those BPs, it has > > only adjacencies for p7,p8. It creates a copy of the packet to BFER1 > > (due to p7) and one to BFR4 (due to p8). It clears p7, p8 before > > sending. > > > > I think "clears both p7 and p8 in both copies before sending" is more > > clear. > > ack. > > > Section 4.6 > > > > clear DNC flag, forward_routed() and local_decap. As explained in > > Section 4.4, these REQUIRED BIER-TE forwarding functions can be > > implement via the same Forwarding Pseudocode as BIER forwarding > > > > s/implement/implemented/ > > > > Section 5.1.4 > > > > opposite LANs. Adjacencies of such BFRs into their LAN still need a > > separate bit position. > > > > Is this something like "such multi-homed BFRs"? > > That is name calling, and i usually hear the term only in > conjunction with hosts, not routers, so i think it would not be helpfull. > > > Section 5.1.9 > > > > Figure 17: Reuse of BP > > > > Reuse may also save BPs in larger topologies. Consider the topology > > shown in Figure 20. A BFIR/sender (e.g.: video headend) is attached > > > > I suspect that s/20/17/ is intended. > > Yes. > > > Section 5.1.10 > > > > o BP can generally be reused across nodes that do not need to be > > consecutive in paths, but depending on scenario, this may limit > > > > "consecutive in paths" might imply "directly one after the other" to > > some readers. Perhaps "where it can be guaranteed that no path will > > ever need to traverse more than one node of the set"? > > Right. thanks. > > > Section 5.3.3 > > > > BIER-TE forwarding does not use the BFR-id, not does it require for > > > > s/not does/nor does/ > > fixed. > > > Section 5.3.6.2 > > > > In addition, we use 4 bits in each SI: bia, bib, bea, beb: bit > > ingress a, bit ingress b, bit egress a, bit egress b. These bits > > > > It's probably worth spending a few more words to connect these "a" and > > "b" back to the 6 different BFR1a/BFR1b through BFR6a/BFR6b of Figure > > 20. (Figure 20, which appears in §5.3.6.1, is not mentioned at all from > > this section at present.) > > Added reference to picture, highlighted how abbreviations are derived: > > In addition, we use 4 bits in each SI: bia, bib, bea, beb: (b)it > (i)ngress (a), > (b)it (i)ngress (b), (b)it (e)gress (a), (b)it (e)gress (b). > > > > legs: 1) BFIR to ingress are edge and 2) core to egress area edge. > > > > s/are edge/area edge/ > > Ack. > > > Section 6 > > > > hop to each destination Node-SID. What BIER does not allow is to > > indicate intermediate hops, or terms of SR the ability to indicate a > > > > s/terms of SR/in terms of SR/ > > ack > > > Section 7 > > > > In BIER, the standardized methods for the routing underlays as well > > as to distribute BFR-ids and BFR-prefixes are IGPs such as specified > > in [RFC8401] for IS-IS and in [RFC8444] for OSPF. Attacking the > > > > I can't make a parse tree for this sentence. I think it's just trying > > to say that RFCs 8401 and 8444 specify how to distribute BFR-ids and > > BFR-prefixes over the respective IGP, and the respective IGP inherently > > distributes information needed for routing underlays, but I could be > > wrong. > > > <t>In BIER, the standardized methods for the routing underlays are IGPs > with extensions to distribute BFR-ids and BFR-prefixes. <xref > target="RFC8401"/> specifies the extensions for IS-IS and <xref > target="RFC8444"/> specifies the extensions for OSPF. > > > > against the results of the routing protocol, enabling DoS attacks > > against paths or addressing (BFR-id, BFR-prefixes) used by BIER. > > > > I think s/addressing/the addressing/ > > ack. > > > > adjacencies, then this is still an attack vector as in BIER, but only > > for BIER-TE forward_routed() adjacencies, and no other adjacencies. > > > > s/and no/and not/ > > ack > > > the BIER-TE controller/control-plane can and are much more commonly > > > > s/can/can be/ > > ack > > > > forwarding rules are defined to be as strict in clearing bits as they > > are. The clearing of all bits with an adjacency on a BFR prohibits > > > > I think just "defined to be as strict in clearing bits as possible" -- > > "defined to be as <anything> as they are" is basically a tautology. > > true. fixed. > > > that a looping packet creates additional packet amplification through > > the misconfigured loop on the packets second or further times around > > > > s/packets/packet's/ > > fixed. > > > > Deployments especially where BIER-TE would likely be beneficial may > > include operational models where actual configuration changes from > > > > This "especially" seems out of place (I think the sentence would work if > > it's just dropped, though maybe moving it is preferred). > > hmm.. dropped it. > > > > the controller are only required during non-productive phases of the > > > > Maybe s/productive/production/? > > yes. > > > > networks life-cycle, such as in embedded networks or in manufacturing > > > > s/networks/network's/ (just the first one) > > ack > > > reverting the network/installation into non-productive state. Such > > > > ("production" again) > > > > > > -- > --- > tte@cs.fau.de > > _______________________________________________ > BIER mailing list > BIER@ietf.org > https://www.ietf.org/mailman/listinfo/bier >
- [Bier] Benjamin Kaduk's Discuss on draft-ietf-bie… Benjamin Kaduk via Datatracker
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Toerless Eckert
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Carsten Bormann
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Toerless Eckert
- Re: [Bier] (Carsten) Benjamin Kaduk's Discuss on … Toerless Eckert
- Re: [Bier] (GregM) Benjamin Kaduk's Discuss on dr… Toerless Eckert
- Re: [Bier] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk