[Detnet] Some initial comments on draft-dt-detnet-dp-sol-00

Stewart Bryant <stewart.bryant@gmail.com> Mon, 05 June 2017 20:01 UTC

Return-Path: <stewart.bryant@gmail.com>
X-Original-To: detnet@ietfa.amsl.com
Delivered-To: detnet@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 07B79128D44; Mon, 5 Jun 2017 13:01:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-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 NXc3oR4oPIUA; Mon, 5 Jun 2017 13:01:38 -0700 (PDT)
Received: from mail-wr0-x229.google.com (mail-wr0-x229.google.com [IPv6:2a00:1450:400c:c0c::229]) (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 455D0126CE8; Mon, 5 Jun 2017 13:01:35 -0700 (PDT)
Received: by mail-wr0-x229.google.com with SMTP id v104so43885876wrb.0; Mon, 05 Jun 2017 13:01:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:message-id:date:user-agent:mime-version :content-language; bh=t2t3yO1U2LwXrjxJ9NB20Ceh1GMwEByQbI9BDqvdaMg=; b=N3xPfSPVM7rJnUtndH6wAPxi5pXAxc7lsrpl2wYR8aN5nlZHHfi+ptLHcHYpYfeSIi AcvZnw6WmGRJRN/ieEjHhk7XcZHFuUsrPM6y/h2Ip0m6UNvxbn2e3+8puDICEIS8E3Ox oLgzTqWY9/B9I0UrMWEIBvJqSUGRmFrjQOfbyQlTJXzeCml9PaRhW5XSYsxvJM6Kpfc5 sWYGrn0GX5ysZZ5tMWSnuqGwuTQZE2hKA53eW481gr/M4xQvaNpHeV7CaGfe/gwBZuLh Fd69m7c+PxzPH2NybXteqGTO8K729u3X/TmxQvQ01NFDGcIXaMVUMDTw9ZRRBMxDk0xI aXiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:message-id:date:user-agent :mime-version:content-language; bh=t2t3yO1U2LwXrjxJ9NB20Ceh1GMwEByQbI9BDqvdaMg=; b=FstBwamSWGWx6pK1xJp0sxRt3MAusvKajR3EccXfX3dcsOqoZDI5eiPDu+1y5SfiCa zQAONAi2CwqwUE1mH9zOkq6trAy9mo67lneMgMCWymgdcatPau0C35VpOkLNeos33pKT 301W9Bne5YVrolvr5QJPIVPJQLaewmAHH4UxZmYxzaiuyQSJdXaFYrGJbOCPiqr79BPR Myll6TgFQA0zD49hVwHQqA1HBnJXThGue0F5+JwRGBzF9GByy1s1JbPIAVx0SyyTwyK2 STcXIVgim5dFoYSxlc12x6KUfWl5GI7ijaX0LIc8FP2k86Z18U3oCY43GDpzNeFetdGS XzOQ==
X-Gm-Message-State: AODbwcD+birwsLF22gBAiKOLnSJINzoqDJknPdrrfzzaTewvghgWn9QL kES2ivv+DpUlMQ==
X-Received: by 10.223.139.210 with SMTP id w18mr2114674wra.19.1496692893328; Mon, 05 Jun 2017 13:01:33 -0700 (PDT)
Received: from [192.168.2.126] (host213-123-124-182.in-addr.btopenworld.com. [213.123.124.182]) by smtp.gmail.com with ESMTPSA id 69sm6360592wml.0.2017.06.05.13.01.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Jun 2017 13:01:32 -0700 (PDT)
From: Stewart Bryant <stewart.bryant@gmail.com>
To: draft-dt-detnet-dp-sol@ietf.org, "detnet@ietf.org" <detnet@ietf.org>
Message-ID: <abacca1f-a8a1-10f4-101f-f3ef08990d3f@gmail.com>
Date: Mon, 05 Jun 2017 21:01:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------C3F4C090AC0A6ECB83CA5EE9"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/OFVcEq1lZx2Ib4jBFRSFhQ3YQFs>
Subject: [Detnet] Some initial comments on draft-dt-detnet-dp-sol-00
X-BeenThere: detnet@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Discussions on Deterministic Networking BoF and Proposed WG <detnet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/detnet>, <mailto:detnet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/detnet/>
List-Post: <mailto:detnet@ietf.org>
List-Help: <mailto:detnet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/detnet>, <mailto:detnet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Jun 2017 20:01:42 -0000

I took an initial look at the detnet dp document.

I think that PWs are certainly a good way to go, but I am concerned
about a number of aspects of the proposal.

My biggest concern is doing the sequence number checking. There have
not been many attempts to do this, and from work that we have done in
the OAM space all the feedback I get is that this is a hard problem.
It might be useful if you constrained the packets to a path and an
interface using MPLS-TP or MPLS-TE, however I don't see a practical
way to do that in a pure IP network. You could of course do it
with SR, but that is v6 only, and the packets could potentially need
a very large SR header.

Please see the notes inline.

-Stewart

  
    The PW-based data plane can be run over either an IP
    or MPLS [RFC4448][RFC6658] Packet Switched Network (PSN).

SB> I comment on this in detail later

============


5.1.  DetNet Control Word

    The DetNet control word (d-CW) is identical to the control word
    defined for Ethernet over MPLS networks in [RFC4448].  The DetNet
    control word is illustrated in Figure 4.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |0 0 0 0|  reserved - set to 0  |   16 bit Sequence Number      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                        Figure 4: DetNet Control Word

    [Editor's note: Shoudl we care about high speed links, here 16 bits
    of sequence number wraps fast?  For example, in a case of 100Gb/s
    link, 16 bits of sequence number will wrap in ~6.6ms assuming 1250
    octets of packets and ~3.3ms for 625 octets packets.  Both numbers
    mean quite long fiber distances, though.]

SB> This worries me. Doing read modify write on the sequence number is
SB> difficult in the general case, particularly without path constraint
SB> since a packet can arrive on any interface, and this interface can
SB> change.
SB>
SB> Are you thinking that there will be so few DN PWs that you can
SB> put the counters in registers? That might fly at the T-PEs, but
SB> I would be worried at the S-PEs.
SB>
SB> BTW shouldn't you consider much smaller packets, or do you imagine
SB> that DN will be constrained to applications using large packets.

===========

5.3.  DetNet encapsulation

    The DetNet data plane follows PW encapsulation.  This document
    specifies a single encapsulation that can be used over both MPLS and
    IP packet switched Networks (PSN).  The DetNet data plane
    encapsulation consists of a

    o  DetNet control word (d-CW): contains sequencing information for
       packet replication and duplicate elimination purposes.  There is a
       separate sequence number space per each DetNet label.

SB> Do you mean per DetNet flow ID, or per PW label?

  
  o  DetNet flow-ID (f-ID): uniquely identifies a DetNet flow within a
       DetNet network.  Multiple DetNet PWs with different PW labels may
       have the same f-ID, which then implies the PWs are actually
       subflows of one compound flow.

SB> I am not sure I understand the definition of a DetNet network yet.
SB> I presume that it is Fig 5 from the architecture draft, which
SB> is a tunnel between two service instances.
SB> However I am having difficulty understanding the scope of the
SB> uniqueness. It sounds as if it needs to be unique between a
SB> pair of service instances is that the case, or does the
SB> uniqueness have greater scope?
SB> PWs are not subflows, they are "A mechanism that carries the
SB> essential elements of an emulated service from one PE to one or
SB> more other PEs over a PSN."


  o  PseudoWire Label (PW Label;): a standard PW label that identifies
       a PW Instance within a (DA-)T-PE or (DA-)S-PE device.

SB> Just so we are all clear the PW label changes at S-PEs

===========

  o  DetNet topology overlay label (L-label): an optional label used
       between (DA-)T-PE or (DA-)S-PE nodes.  The main use of L-labels is
       to tunnel PWs through a PE node and therefore effectively making a
       PE node to behave like a P node.

SB> This needs more thought. The reason that S-PEs were created
SB> was to minimise the burden of running PWs between different
SB> administrative domains. To make this feasible it was necessary
SB> for the T-PEs to allocate their own PW label and have the
SB> S-PEs swap, that way only the boundary nodes (S-PEs) needed
SB> be worried about the mapping between the PE identity and the
SB> PW label in the data-plane.
SB> If a data-plane identifier is used, then we don't really need
SB> S-PEs as such. So I think that we have to define the new
SB> purpose of the S-PE more clearly when they are used for Detnet.


  In a case of MPLS-based PSN, the tunnel labels between LSRs are
    referred as T-labels.

SB> I think that they are really LSP labels.

  The DetNet CW and the Detnet flow-ID together constitute the DetNet
    PseudoWire encapsulation header.

       [Editor's note: The current design has the DetNet flow-ID as part
       of the every DetNet flow packet.  The flow-ID identifies the flow
       uniquely within the DetNet network and together with the sequence
       number information from the DetNet control word is used for PREF
       purposes.  The flow-ID makes is easy for the DA-*-PE node to
       associate different PWs into one compound flow and perform the
       elimination of duplicate packets.

SB> I am not sure this is needed. The DA-*-PE knows the relationship
SB> between the PW labels and can make the decision based on that.



       The flow-ID would point at the
       node internal construct that holds the received packet history for



Korhonen, et al.       Expires September 14, 2017               [Page 8]

Internet-Draft         DetNet data plane solution             March 2017


       each DetNet flow of interest.  However, it could also be possible
       to associate multiple PWs into one DetNet flow just using the
       control plane provided information.  In this case different PWs
       (using any PW label) would be mapped internally within a node to a
       local-ID (or similar construct), which again points at the
       internal per DetNet flow received packets history construct.

SB> I think you have to do this anyway

       The
       explicit in-band flow-ID is easy from the processing and control
       plane point of view.
SB> Isn't this a bigger change to the forwarder? What normally
SB> happens is you vector to the instructions and context using
SB> the PW label as the identifier. So I think the flow-ID just adds
SB> complexity. Given that it needs to be unique and known at
SB> each PW node on the path, I do not see what has been gained in
SB> terms of reduction in control plane activity.


       The local-ID approach does not need the in-
       band information (thus has less overhead) but requires more from
       the control plane and the mapping information has to be stored
       into the LFIB.  Current design decision is the in-band flow-ID but
       may be changed to local-ID if there is a strong reason to do the
       change.]

    Figure 6 illustrates a DetNet PseudoWire encapsulation using an MPLS
    PSN.  Similarly, Figure 7 illustrates the DetNet PseudoWire
    encapsulation when IP PSN is used.  The encapsulation is uniform
    above the PSN.

    Depending on the network topology the "overlay label" (L-label) may
    be part of the label stack.  The L-label tunnels guarantee PW labels
    remain unchanged between DA-*-PE nodes.
SB> Please see earlier

    Furthermore, L-labels
    tunnels allow selectively exposing the PW label to DA-*-PE nodes,
    which means some overlay topologies may just pass through specific
    DA-S-PEs without any DetNet specific processing.

SB> They can do this anyway. At an SPE we normally just swap the
SB> PW label, and other than for OAM reasons (trapped by TTL expiry)
SB> we do no processing. So if you do not teach an SPE that the PW
SB> is to be processed, it will just pass through.
SB>
SB> I think that you need to look seriously at deleting this component
SB> of your design and building something much closer to a normal
SB> PW design.

===============

    When IP PSN is used, the label stack it transports is only inspected
    when the IP packet destination address equals to the IP address of a
    DA-*-PE or a P node.  Essentially there are one more IP tunnels
    between a number of DA-*-PE and/or P nodes.  The LFIB and the
    forwarding information base (FIB) combination determines whether a PW
    gets terminated at the node or forwarded to another node within a new
    IP tunnel.

SB> So, setting aside for the moment the work that we are doing on
SB> unifying SRv6 and MPLS SR, work which as yet has no official status
SB> you should understand that there really is no deployment of
SB> MPLS-PW over IP. All of the deployed PWs are either pure PW over
SB> MPLS, or LT2Pv3. L2TPv3 has no concept of an S-PE.
SB>
SB> Now I think the unified approach is the right one, but so far
SB> there are no real specifications.
SB>
SB> Also you need to think about whether you want ECMP or not, because
SB> if you do you really do need the interstitial UDP layer (RFC7510)
SB> shown below.

==============


6.1.  Forwarded clarifications

    [Editor's note: The Detnet-aware "extended forwarder" does the heavy
    lifting on maintaining the sequence numbers associated with the
    DetNet labels.  Extended forwarder is also responsible for packet
    replication and duplicate elimination.  See the excerpt from RFC3985
    Section 4.2.1. about forwarder's functions.  We extend that to PREF:

       Some applications have to forward payload elements selectively
       from one or more ACs to one or more PWs.  In such cases, there
       will also be a need to perform the inverse function on PWE3-PDUs
       received by a PE from the PSN.  This is the function of the
       forwarder.

    ]
SB> But note that forwarder function only appears in the T-PE, we
SB> never included it in the S-PE which can be better thought of
SB> as a two layer MPLS switch - it's not how it works although
SB> a modern two label lookup MPLS system could do it like that
SB> but all that happens in an SPE is that you swap two labels
SB> simultaneously - the LSP label and the PW label.


     The DetNet specific new functionality in a DA-*-PE PW processing is
    the packet replication and duplication elimination function (PREF).
    This functional is a part of the "extended" forwarder.  The PREF
    processing is triggered by the LFIB actions i.e., not all PWs receive



Korhonen, et al.       Expires September 14, 2017              [Page 11]

Internet-Draft         DetNet data plane solution             March 2017


    DetNet specific processing.  Basically the LFIB has to be extended
    with a "PREF enabled" boolean configuration switch that is associated
    with the normal label actions (e.g., swap, push, pop, ..).  The
    output of the PREF elimination function is always a single packet.
    The output of the PREF replication function is always one or more
    packet (i.e., 1:M replication).  The replicated packets MUST share
    the same DetNet PW control word sequence number and flow identity
    word flow-id.

    The complex part of the DetNet PREF processing is tracking the
    history of received packets for multiple PWs.  These PWs do not have
    the same PW label value while they still share the same PW sequence
    number counter and the history information.  That is where the DetNet
    encapsulation header flow-ID plays an important role and binds the
    control word sequence number to the flow specific shared counter and
    history information within the PREF function.

SB> That is certainly one way of doing it, although given that you need
SB> to provision the PW anyway, I an not sure it is needed.

    The DetNet flow word contains a D flag bit (see Section 5.2), which
    makes the DA-*-PE node aware of the direction the flow-ID arrived
    from.  If the node, based on the local policy, checks for the D bit
    setting that effectively means the sequence number history has to
    contain also the D bit information.

SB> I am really not sure why you need the D bit a PW received on a given PW
SB> label only goes one way.


  ==============





7.  Other DetNet considerations

7.1.  Class of Service

    [Editor's note: Discuss the CoS.. and how that is archived when using
    MPLS or IP PSN.]


SB> Don't all your packets need to go on the highest class of service?

===========

7.3.  Time synchronization


    o  PTP with on-path support: in this approach PTP packets are sent as
       DetNet flows, and intermediate nodes take part in the protocol as
       Transparent Clocks or Boundary Clocks [IEEE1588].  The on-path PTP
       support by intermediate nodes provides a higher degree of accuracy
       than the previous approach.  The actual accuracy depends on
       whether all intermediate nodes are PTP-capable, or only a subset
       of them.

SB> RFC8169 shows how to do TC in an MPLS network.
SB> I am not sure anyone knows how to do this in an IP network.

===========

7.4.  Bidirectional traffic

    Some DetNet applications generate bidirectional traffic and may
    require symmetric flows.  There are already mechanisms that can be
    used to create bidirectional tunnels at the transport network level,
    such as MPLS-TP.  The data plane solution SHOULD allow establishing
    bidirectional symmetric flows.  Control plane mechanisms would need
    to also support this, though this is out of scope of this document.
    [Summary of existing mechanisms to create bidirectional tunnels that
    can be used.]

SB> PWs are always bidirectional of course.


  
  8.1.  PW Label assignment and distribution

    The PW label distribution follows the same mechanisms specified for
    MS-PW [RFC6073].

SB> This will need extensions to support DETNET