[mpls] Comments on draft-jags-mpls-mna-hdr-02

Stewart Bryant <stewart.bryant@gmail.com> Wed, 12 October 2022 15:25 UTC

Return-Path: <stewart.bryant@gmail.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8DB27C152710; Wed, 12 Oct 2022 08:25:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 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, 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, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yNE8WVb1q7Hg; Wed, 12 Oct 2022 08:25:13 -0700 (PDT)
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68729C152703; Wed, 12 Oct 2022 08:25:13 -0700 (PDT)
Received: by mail-wr1-x434.google.com with SMTP id a3so26795838wrt.0; Wed, 12 Oct 2022 08:25:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=ZnGUjjr4gCu9pQD7/HAvh5XAZy7LQGpzR+YSc/+Fcsg=; b=TcZUS2wl6qVcLA7402leo/b5Z0uNfs3UiMkpLI47iWauA5QtkMRhk72M/F+0CwZjb0 P9RxZAI4CdRftYsPmbENn0/gXI0fciUBZyN7Go+Ml3/HPux+imohHuqp001KPjNUjVz9 BsnY/7va60kEgXOAr+/xntSCRfLXN2Sh4fL3hr1XAmqlxKIiYwVe7o+YspRmSlpWgfID iOzZBAhFQkhP8DkIlqp/t5TAnKMshuQauz5IZfgW4GxwJAAl0EkUWaYg3VFpYF6Zwz5Y KIBW0X5Wbs65ZUD8ZIp/HjW1n+A08S5e1ZQUed/o+zQxn4pmaF2uz0piWQGw8H3Au8fj 8HTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ZnGUjjr4gCu9pQD7/HAvh5XAZy7LQGpzR+YSc/+Fcsg=; b=JoZ+xU2XaL3oLMsSDqvcvgt+5861yftwZJEZFyjHJCeBNleoe8W0nLqp2maANbi5hC 3VNpP32Ol6VXuGpe25TNmwScrH9/1Ck/51mV2cQ7Pb8z+jna9bIXJWND6tV43QRDsxIj XWQrdHtLaN1lH0tOvYyfeh8bxSfIJpo9H/RicP/ba15t0zrC6l9IRbBOV1N2fCXq5PVP p4eQ+I4CZYxjncabFusUfwvgie6dMHPVPeyU4sxaNbib470JXYt7TQ1nNLKw79gmPFtY gKit/lm98K6tZOi3Qs8k72JSC3CTQD1iWILtOka4i/VXUpBSPBIjMkL0CYoD2p0tvaLE CnMQ==
X-Gm-Message-State: ACrzQf2dn6uJbUpGA1RknDTfjipAnGGg7ZE8SU5ZDadOvOT3zPat5LW8 1GywHzNBZ1dN5wtnWU2c8MzViNHXUcA=
X-Google-Smtp-Source: AMsMyM7EjytTuRFN8+VeaahrqXWKcapqZ+m91kl/PROy7nEllr6OrnK4ihP4q7oXx2e9vG5uz8s5ew==
X-Received: by 2002:a05:6000:144c:b0:230:816f:3167 with SMTP id v12-20020a056000144c00b00230816f3167mr10267109wrx.532.1665588310900; Wed, 12 Oct 2022 08:25:10 -0700 (PDT)
Received: from smtpclient.apple ([2a00:23c5:33a1:2101:6426:ef7e:401f:645e]) by smtp.gmail.com with ESMTPSA id ay38-20020a05600c1e2600b003b435c41103sm2491545wmb.0.2022.10.12.08.25.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Oct 2022 08:25:08 -0700 (PDT)
From: Stewart Bryant <stewart.bryant@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_411916BA-E736-4914-B8AE-A2F0FDAE3C61"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Message-Id: <6329EC41-D324-4885-8299-79AD8CE77D69@gmail.com>
Date: Wed, 12 Oct 2022 16:25:05 +0100
Cc: Stewart Bryant <stewart.bryant@gmail.com>, draft-jags-mpls-mna-hdr@ietf.org
To: mpls <mpls@ietf.org>, mpls-chairs <mpls-chairs@ietf.org>, pals-chairs@ietf.org, DetNet Chairs <detnet-chairs@ietf.org>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/GuDCvseGSfCQFDzwg97U77_n8f8>
Subject: [mpls] Comments on draft-jags-mpls-mna-hdr-02
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 Oct 2022 15:25:17 -0000

Dear Authors

An interesting and well written draft that seems to capture what we need above the BoS in the MNA work.

I think that we should be adopting this and bringing it into the MPLS WG process.

I have a few questions and comments which I note below.

Best regards

Stewart

==========

1) How is Entropy handled. Do you see it as keeping the ELI/EL mechanism, or being included via an MNA Action. I can see a case for both, but the text should certainly talk about this.
2) Rather than requiring the user to parse the PSD to find out what to execute we should consider an opcode of the form = Execute PSD at offset X This would allow us to specify what PSD functions get executed at each hop in the same way that we specify ISD/Flag related functions.


Abbreviations

3) I have not checked by this section should not copy across from the other referenced documents as there is scope for conflicting definitions. The terms could usefully include references to definitions.

4)  NASS Scope:

   This indicates the scope (HBH / Select / I2E) of NASS for different
   nodes (e.g., midpoint nodes and egress node) where it needs to be
   processed.
SB> I don’t see a definition of “Select" scope.

5)   NASL (Network Action Sub-Stack Length):

   This is a 4-bit field in the TTL.  This indicates the total length of
   the current NASS.  This value does not include the first two LSEs in
   the NASS.  This value is used by the ASICs to process the NASS.

SB> I am not sure that this is specific to ASICs


6)

    0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Label                    | TC  |S|      TTL      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      NASI=bSPL (TBA1)                 | TC  |S|    TTL        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | NAI-Opcode    |    Ancillary Data     |R|NAL|S|P,H|IHS|  NASL |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | NAI-Opcode    |    Ancillary Data     |R|NAL|S| Ancillary Data|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 2: MPLS Label Stack Entry (LSE) Format

SB> I comment on this again later, but I think there is a problem if the first NAI-Opcode needs flags. I think the way to address this is to have a NULL Opcode that gets skipped. Which then carries P,H|IHS|  NASL
7)
   *  Apart from the Label field, part of AD is also carried in the
      8-bit TTL field except for the 2nd LSE in the NASS.  If an
      application needs only 12-bit of AD, then 2nd LSE can be used for
      NAI-Opcode otherwise it can use the next LSE for 20-bit of AD.
SB> Presumably otherwise the Opcode is NULL
8)

   NOTE: ECMP Hash Using Label Stack:

      A midpoint node may use the entire MPLS Label Stack for ECMP hash
      computation hence the In-Stack MPLS extension header MUST NOT
      change the Label Field part of the Ancillary Data within the same
      traffic flow.  But the TTL part of In-Stack Ancillary Data can
      change for the same traffic flow without affecting the ECMP hash.
      The In-Stack Network Action encoding defined above ensures this.
SB> I think that we need to have a longer discussion about entropy as in the long run it makes sense to include it in the NAI system.

9)

   NAI-Opcode value of 0 is marked as invalid to avoid the label value
   from aliasing with the reserved bSPLs.

SB> It is marked reserved in IANA. I think it needs to be marked as not to be used.
SB> Reserved implies available for extensions, and could be “borrowed” whilst what we need to say is the using it breaks MPLS.


10)

5.  Post-Stack MPLS Network Action Encoding

   Based on the P and H flags, the Post-Stack Network Actions are
   processed.  The details of the Post-Stack Network Action Extension
   Header encoding is specified in [I-D.song-mpls-extension-header].
SB> I am OK with this if the ISD incudes information on what is in the PSD and is applicable to the node processing TOS. However if we not so this then I think we need to look at the PSD design in draft song with a view to starting it with a manifest.

11) 6.2.  Post-Stack NA Processing Order

   Post-Stack NAs follow ordering specified in
   [I-D.song-mpls-extension-header].
SB> We could address that by pointing to the components in the draft-song structure

12) 7.  Handling of Unsupported Network Actions

   When a node encounters an unsupported NAI-Opcode in the NASS it is
   processing, the node skips processing that NAI-Opcode using the NAL
   field and moves to processing the next NAI-Opcode.
SB> Should we specify skip or stop as a sub-action?
13) 8.  MNA for Segment Routing Label Stack

   For packets with Segment Routing [RFC8662] MPLS label stack, a copy
   of NASS with HBH and Select scope is placed at regular depth
   throughout the MPLS label stack, with the understanding that the
   current copy of the NASS will eventually rise to the top of the label
   stack.
SB> Presumably to be popped? We need to specify this, but also make as statement about any ISD collected along the path and what is t happen to it.
SB> I think that there needs to be text about the sub stacks if labels are pushed.
14) For HBH scope, every node processes the current copy of the NASS and
   the node that pops the forwarding label that exposes the NASS will
   not remove it but forward it to the next node (i.e., segment endpoint
   node).  
SB> This is not clear - are you talking about the SWAP case, or the PHP case or if something else how does the packet get forwarded?
15) The segment endpoint node that receives the NASS at the top
   of the label stack has to remove it.

   For I2E scope, only one copy of NASS needs to be added and it is
SB> 12E or E2E?
16)10.  Security Considerations

   The security considerations in [RFC3032] also apply to the procedures
   defined in this document.  The NASI Label (bSPL TBA1) MUST NOT be
   exposed on the node which does not support it.
SB> It is clearly more involved than that. The action set is more easily used to corrupt the forwarding behaviour and also the AD is easier to corrupt and may be more sensitive than an MPLS label.


17) 13.  IANA Considerations

   Below are the IANA actions which this document is requesting.

   The registries created by this document will be collected in a new
   registry grouping called "MPLS Network Action," which will be located
   at https://www.iana.org/assignments/mpls-network-action.
SB> Surely they should be within the Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters Namespace
SB> It makes no sense to put them in a completely new namespace
18)
          +=======+=============================+===============+
          | Value | Description                 | Reference     |
          +=======+=============================+===============+
          | 0     | Reserved                    | This document |
          +-------+-----------------------------+---------------+
          | 1     | Offset of start of Post-    | This document |
          |       | Stack Network Action Header |               |
          +-------+-----------------------------+---------------+
          | 2     | Flag-Based Network Action   | This document |
          |       | Indicators with No AD       |               |
          +-------+-----------------------------+---------------+
          | 3     | Flag-Based Network Action   | This document |
          |       | Indicators with AD          |               |
          +-------+-----------------------------+---------------+
          | 4     | Post-Stack Network Action   | This document |
          |       | Indicator                   |               |
          +-------+-----------------------------+---------------+
          | 255   | Opcode Range Extension      | This document |
          |       | Beyond 255                  |               |
          +-------+-----------------------------+---------------+

               Table 6: I2E In-Stack Network Action Indicator
                               Opcode Values
SB> I think it should be indicated that using zero will break the protocol so “not to be used” would be better than Reserved.

19) SB> I think you need to declare a NULL opcode incase first Opcode needs ISD
20) SB> I suspect that we are also going to need an entropy Opcode
21)
   IANA is requested to create a new registry with name "HBH and Select
   In-Stack MPLS Network Action Indicator Opcodes" to assign IS-NAI-
   Opcode values.  This registry is also used for Select scope.  
SB> What is select scope?
   All
   code-points in the range 1 through 175 in this registry shall be
   allocated according to the "IETF Review" procedure as specified in
   [RFC8126].  
22)
SB> The table should call out 0 as a special case below.
   Code points in the range 176 through 239 in this registry
   shall be allocated according to the "First Come First Served"
   procedure as specified in [RFC8126].  Remaining code-points are
   allocated according to Table 5:

          +===========+=========================+===============+
          | Value     |       Description       | Reference     |
          +===========+=========================+===============+
          | 0 - 175   |       IETF Review       | This document |
          +-----------+-------------------------+---------------+
          | 176 - 239 | First Come First Served | This document |
          +-----------+-------------------------+---------------+
          | 240 - 251 |     Experimental Use    | This document |
          +-----------+-------------------------+---------------+
          | 252 - 254 |       Private Use       | This document |
          +-----------+-------------------------+---------------+

               Table 7: HBH and Select In-Stack MPLS Network
                     Action Indicator Opcodes Registry

23)

          +=======+=============================+===============+
          | Value | Description                 | Reference     |
          +=======+=============================+===============+
          | 0     | Reserved                    | This document |
          +-------+-----------------------------+---------------+
          | 1     | Offset of start of Post-    | This document |
          |       | Stack Network Action Header |               |
          +-------+-----------------------------+---------------+
          | 2     | Flag-Based Network Action   | This document |
          |       | Indicators with No AD       |               |
          +-------+-----------------------------+---------------+
          | 3     | Flag-Based Network Action   | This document |
          |       | Indicators with AD          |               |
          +-------+-----------------------------+---------------+
          | 4     | Post-Stack Network Action   | This document |
          |       | Indicator                   |               |
          +-------+-----------------------------+---------------+
          | 255   | Opcode Range Extension      | This document |
          |       | Beyond 255                  |               |
          +-------+-----------------------------+---------------+

              Table 8: HBH and Select In-Stack Network Action
                          Indicator Opcode Values
SB> Same comment regarding value 0
=============