Draft: draft-ietf-detnet-dp-sol-mpls-00

Commentary: Some more of the agreed changes . Looking to baseline this before moving onto some other fixes 
 Ok .. the pull requester had not synced his repository against the master . Anyway , I 'll fix the conflicts .
Deterministic Networking (DetNet) is a service that can be offered by
a network to DetNet flows.  DetNet provides these flows extremely an
low packet loss rates and assured maximum end-to-end delivery
latency.  General background and concepts of DetNet can be found in
I-D.ietf-detnet-architecture.
Deterministic Networking (DetNet) is a service that can be offered by
a network to DetNet flows.  DetNet provides these flows extremely
with an low packet loss rates and assured maximum end-to-end delivery
latency.  General background and concepts of DetNet can be found in
I-D.ietf-detnet-architecture.
Furthermore, this document also describes how DetNet flows are
identified, how a DetNet Relay/Edge/Transit nodes work, and how the
Packet Replication and Elimination function (PREF) is implemented
with the two data plane solutions.
Furthermore, this document also describes how DetNet flows are
identified, and how a DetNet Relay/Edge/Transit nodes works.  It also
describes the function and operation of the Packet Replication (PRF)
Packet Elimination (PEF) and Packet Reordering (PROF) functions in
the MPLS data plane.
A DetNet Edge and Relay node internal construct that uniquely
identifies a DetNet flow within a node and never appear on-wire.
It may be used to select proper forwarding and/or DetNet specific
service function.
A Packet Replication and Elimination Function (PREF) does the
replication and elimination processing of DetNet flow packets in
edge or relay nodes.  The replication function is essentially the
existing 1+n protection mechanism.  The elimination function
reuses and extends the existing duplicate detection mechanism to
operate over multiple (separate) DetNet member flows of a DetNet
compound flow.
A Packet Elimination Function (PEF) elimates duplicate copies of
packets received by an edge or a relay node to prevent excess
packets flooding the network, or to prevent duplicate packets
being sent out of the DetNet domain.
A Packet Replication Function (PRF) replicates DetNet flow packets
in an edge or a relay node and forwards them to one or more next
hops in the DetNet domain.  The number of packet copies sent to
each next hop is a parameter of the DetNet flow at the node doing
the replication.
Collective name for Packet Replication, Re-order and Elimination
Functions.
A Packet Reorder Function (PROF) re-orders packets within a DetNet
flow that are received out of order.  This function may be
implemented at an edge or a relay node.
Packet Replication and Elimination Function.
Packet Elimination Function.
Packet Replication Function.
Packet Replication, Reodering and Elimination Functions.
Packet Reorder Function.
DetNet service layer introduces packet replication and elimination
functionality (PREF) for use in DetNet edge and relay node and end
system packet processing.  PREF MAY be enabled in a DetNet node and
the required processing is only applied to packets with a positive
flow identification at the DetNet service layer.  PREF utilizes a
sequence number carried within a DetNet flow packets.
At a DetNet node level the output of the PREF elimination function is
always a single packet.  The output of the PREF replication function
at a DetNet node level is always one or more packets (i.e., 1:M
replication).  The replicated packets MUST share the same d-CW i.e.,
the sequence number is the same for each member flow of the compound
flow.  The location and mechanism on the packet processing pipeline
used for replication is implementation specific.
The complex part of the DetNet PREF processing is tracking the
history of received packets for multiple DetNet member flows.  These
ingress DetNet member flows (to a node) MUST have the same local-ID
if they belong to the same DetNet (compound) flow and share the same
sequence number counter and the history information.  The location of
the packet elimination on the packet processing pipeline is
implementation specific.
DetNet service layer introduces also packet reordering functionality
for use in DetNet edge and relay node and end system packet
processing.  The reordering functionality MAY be enabled in a DetNet
node.  The reordeing functionality relies on a presence of sequence
numbers in a DetNet (compound) flows.  The reordering processing is
only applied to packets with a positive flow identification at the
DetNet service layer.
DetNet service layer introduces packet replication (PRF) and packet
elimination functionality (PEF) for use in DetNet edge and relay node
and end system packet processing.  Either or both of these functions
MAY be enabled in a DetNet node.  The required processing is applied
to packets that are identified by the S-Label as requiring one or
both of these functions to be applied.  Ingress packets may be
identified as requiring replication as part of the input processing
mechanism that applies the encapsulation to the packet.  The PRF and
PEF utilizes a sequence number that is carried within the DetNet flow
packet.
The order in which a node applies the PEF and the PRF to a DetNet
flow is implimentation specific.
The output of the PRF is always one or more packets (i.e., 1:M
replication).  Packets output from the PRF MUST include the same d-CW
as the as the input packet.  This ensures that the sequence number is
the same for each member flow of the compound flow.  The location
within a node, and the mechanism used for the PRF is implementation
specific.
The output of the PEF is always a single packet.  A DetNet PEF must
track the history of received packets for each DetNet flow that it is
configured to process.  Packet for a particular DetNet flow to be
processed by the PEF MUST share the same S-Label, sequence number
counter and history information.  The location within a node, and
mechanism used for the PEF is implementation specific.
DetNet service layer introduces packet reordering functionality
(PROF) for use in DetNet edge and relay node and end system packet
processing.  The PROF MAY be enabled in a DetNet node.  The PROF
relies on the presence of sequence numbers in a DetNet (compound)
flows.  The PROF is only applied to DetNet flows that are identified
by the S-Label as requiring this function.
Editors note: I cannot remember what we concluded about the
following.  We can remove it is a future version if we decide it is
too complicated or not needed.
A DetNet Flow MAY use the sequence number as a proxy for a timestamp.
In such cases packets that are delayed by more than the time
specified for that DetNet flow are discarded.  Detailed technical
considerations of this processing are for further study.
As a general rule, DetNet domains MUST be capable to forward any
Data-flows and the DetNet domain MUST NOT intend to mandate end-
system encapsulation format.
As a general rule, DetNet domains MUST be capable of forwarding any
Data-flows and the DetNet domain MUST NOT mandate the end-system
encapsulation format.
Editor's Note - is this restriction acceptable?  Do we need to
support GAL based OAM indication?
The following review comments were received when this section was
committed to github.
General comment: We should points to the major issue of aggregation,
namely the Seq.Num related problem.  The aggregated flows have their
own Seq.Num and those are independent.  We should consider to group
the aggregation techniques as per their impact on what DetNet
functions they allow on a DetNet flow.  (E.g., aggregation without
new Aggregate.Seq.Num would prohibit usage of FR, EF and IoD function
on the aggregate flow).
SR based aggregation can be treated as a form of H-LSP aggregation.
Should we differentiate them?  What are the differences?
What are the issues when aggregating of different payload types?
Should we add an editor note on this?
Simple-aggregation-at-the-detnet-layer: is this not the same as
H-LSP?  The A-label can be treated just as an additional T-label.
End of review comment.
Both the Aggregation (A) label and the S-label have their MPLS S bit
set indicating bottom of stack, and the d-CW allows the PREF
functions to work.
Both the Aggregation (A) label and the S-label have their MPLS S bit
set indicating bottom of stack, and the d-CW allows the PROEF to
work.
Another approach would be not to include a d-CW for the aggregated
flow.  This would be functionally similar to aggregation at the
transport layer using H-LSPs, but would confine knowledge of the
aggregation to the DetNet layer.  Such an approach shares the
disadvantage that PREF operations would not be possible.  OAM
operation in this mode is for further study.
The edge and relay node internal procedures of the PREF are
implementation specific.  The order of a packet elimination or
replication is out of scope in this specification.  However, care
should be taken that the replication function does not actually
loopback packets as "replicas".  Looped back packets include
artificial delay when the node that originally initiated the packet
receives it again.  Also, looped back packets may make the network
condition to look healthier than it actually is (in some cases link
failures are not reflected properly because looped back packets make
the situation appear better than it actually is).
Another approach would be not to include a d-CW for the aggregated
flow.  This would be functionally similar to aggregation at the
transport layer using H-LSPs, but would confine knowledge of the
aggregation to the DetNet layer.  Such an approach shares the
disadvantage that PROEF operations would not be possible.  OAM
operation in this mode is for further study.
The edge and relay node internal procedures of the PROEF are
implementation specific.  The order of a packet elimination or
replication is out of scope in this specification.  However, care
should be taken that the replication function does not actually
loopback packets as "replicas".  Looped back packets include
artificial delay when the node that originally initiated the packet
receives it again.  Also, looped back packets may make the network
condition to look healthier than it actually is (in some cases link
failures are not reflected properly because looped back packets make
the situation appear better than it actually is).
When it comes to use of NSPs, agree.  Also for "island
interconnect" this is a fine.  However, when there is a need to do
PREF in a middle, plain edge to edge is not enough.
When it comes to use of NSPs, agree.  Also for "island
interconnect" this is a fine.  However, when there is a need to do
PROEF in a middle, plain edge to edge is not enough.
A DetNet Relay node participates to the packet replication and
duplication elimination.  This processing is done within an extended
forwarder function.  Whether an ingress DetNet member flow receives
DetNet specific processing depends on how the forwarding is
programmed.  For some DetNet member flows the relay node can act as a
normal relay node and for some apply the DetNet specific processing
(i.e., PREF).
SB> Again relay node is not a normal term, so am not sure what it
does in the absence of a PREF function.
Relay node was a DetNet aware S-PE originally, which is not
explicitly stated here anymore, thus slightly confusing text here.
The text here needs to clarify the roles of PREF and switching
functions.  A DetNet relay is described in the architecture
document.  However, there is definitely room for termonilogy and
text improvements.
A DetNet Relay node participates to the packet replication and
duplication elimination.  This processing is done within an extended
forwarder function.  Whether an ingress DetNet member flow receives
DetNet specific processing depends on how the forwarding is
programmed.  For some DetNet member flows the relay node can act as a
normal relay node and for some apply the DetNet specific processing
(i.e., PROEF).
SB> Again relay node is not a normal term, so am not sure what it
does in the absence of a PROEF function.
Relay node was a DetNet aware S-PE originally, which is not
explicitly stated here anymore, thus slightly confusing text here.
The text here needs to clarify the roles of PROEF and switching
functions.  A DetNet relay is described in the architecture
document.  However, there is definitely room for termonilogy and
text improvements.
The control plane protocol solution required for managing the PREF
processing is outside the scope of this document.
The control plane protocol solution required for managing the PROEF
processing is outside the scope of this document.