<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY I-D.ietf-detnet-use-cases SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-detnet-use-cases-01.xml">
<!ENTITY I-D.ietf-detnet-architecture SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-detnet-architecture-00.xml">
<!ENTITY I-D.ietf-detnet-dp-alt SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-detnet-dp-alt-00.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc strict="yes" ?>

<?rfc toc="yes"?>

<?rfc tocdepth="4"?>

<?rfc symrefs="yes"?>

<?rfc sortrefs="yes" ?>

<?rfc compact="yes" ?>

<?rfc subcompact="no" ?>

<rfc category="std" docName="draft-farkas-detnet-flow-information-model-00" ipr="trust200902">

<!-- ***** FRONT MATTER ***** -->

<front>

<title abbrev="DetNet Flow Information Model">DetNet Flow Information Model Based on TSN</title>

<author fullname="J&aacute;nos Farkas" initials="J." surname="Farkas">
   <organization>Ericsson</organization>
   <address>
      <postal>
         <street>Konyves K&aacute;lm&aacute;n krt. 11/B</street>
         <city>Budapest</city>
         <country>Hungary</country>
         <code>1097</code>
      </postal>
      <email>janos.farkas@ericsson.com</email>
   </address>
</author>

<author fullname="Bal&aacute;zs Varga" initials="B." surname="Varga">
   <organization>Ericsson</organization>
   <address>
      <postal>
         <street>Konyves K&aacute;lm&aacute;n krt. 11/B</street>
         <city>Budapest</city>
         <country>Hungary</country>
         <code>1097</code>
      </postal>
      <email>balazs.a.varga@ericsson.com</email>
   </address>
</author>

<author fullname="Rodney Cummings" initials="R." surname="Cummings">
   <organization>National Instruments</organization>
   <address>
      <postal>
         <street>11500 N. Mopac Expwy</street>
         <street>Bldg. C</street>
    	 <city>Austin, TX</city>
         <country>USA</country>
         <code>78759-3504</code>
      </postal>
      <email>rodney.cummings@ni.com</email>
   </address>
</author> 
	
<date month="March" day="12" year="2017" />

<area>Routing</area>

<workgroup>DetNet</workgroup>

<keyword>DetNet, Flow Information Model</keyword>

<abstract>
    <t>This document describes flow information model for Deterministic Networking (DetNet). The DetNet service is provided either for a Layer 3 or a Layer 2 flow. This document provides DetNet flow information model both for Layer 3 and Layer 2 flows in an integrated fashion.</t>
</abstract>
</front>


<!-- ***** MIDDLE MATTER ***** -->

<middle>

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++              INTRODUCTION               +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->    
<section title="Introduction">
	
    <t>A Deterministic Networking (DetNet) service provides a capability to carry a unicast or a multicast data flow for an application with constrained requirements on network performance, e.g., low packet loss rate and/or latency. The DetNet service is provided either for a Layer 3 (L3) flow or a Layer 2 (L2) flow by an IP/MPLS network, see, e.g., <xref target="I-D.ietf-detnet-dp-alt"/>. Similarly, Time-Sensitive Networking (TSN) <xref target="IEEE8021TSN"/>) can be used for L2 flows in a bridged network. DetNet and TSN have common architecture as expressed in <xref target="IETFDetNet"/> and <xref target="I-D.ietf-detnet-architecture"/>. DetNet service can be leveraged both by L3 and L2 flows, i.e., by DetNet L3 flows and DetNet L2 flows. Therefore, the DetNet flow information model provided by this document covers both DetNet L3 flows and DetNet L2 flows in an integrated fashion. Thus, the DetNet flow information model is based on <xref target="I-D.ietf-detnet-architecture"/> and on the data model specified by <xref target="IEEE8021Qcc"/>. Furthermore, the DetNet flow information model relies on the flow identification possibilities described in <xref target="IEEE8021CB"/>, which is used by <xref target="IEEE8021Qcc"/> as well. In addition to TSN data model, <xref target="IEEE8021Qcc"/> also specifies configuration of TSN features (e.g., traffic scheduling specified by <xref target="IEEE8021Qbv"/>). Due to the common architecture and flow model, configuration features can be leveraged in certain deployment scenarios, e.g., when the network that provides the DetNet service includes both L3 and L2 network segments.</t> 
	
	<t>Based on the DetNet architecture <xref target="I-D.ietf-detnet-architecture"/> (see Section 4), this document (this revision) only considers the Centralized Network / Distributed User Model out of the models specified by <xref target="IEEE8021Qcc"/>. That is, there is a User-Network Interface (UNI) between an end system and a network. Furthermore, there is a central entity for the control of the network. For instance, the central entity implements a Path Computation Element (PCE) for the calculation and establishment of paths needed for packet replication and elimination, if any.</t>
	
	<t>[[NOTE (to be removed from a future revision): The Goals and Non goals subsections are only for revision 00, they are to be removed from future revisions of this draft.]]</t>
	
	<section title="Goals">
	   <t>As it is expressed in the Charter <xref target="IETFDetNet"/>, the DetNet WG collaborates with IEEE 802.1 TSN in order to define a common architecture for both Layer 2 and Layer 3, which is beneficial for various reasons, e.g., in order to simplify implementations. The flow information model should be also common along those lines. As the TSN flow information/data model specified by <xref target="IEEE8021Qcc"/> is mature, the DetNet flow information model described in this document is based on <xref target="IEEE8021Qcc"/>, which is an amendment to <xref target="IEEE8021Q"/>.</t>
	   
	   <t>The Centralized Network / Distributed User Model of <xref target="IEEE8021Qcc"/> is used in this revision as a start of the work. Further models can be also useful for DetNet, e.g., the Fully Centralized Model for the Industrial M2M use case <xref target="I-D.ietf-detnet-use-cases"/>.</t>
	  
	   <t>This document intends to specify flow information model only.</t>
	   
	   <t>Revision 00 is just a start; it is not complete. As this revision heavily relies on <xref target="IEEE8021Qcc"/>, the need for further DetNet specific aspects is to be reviewed and missing pieces are to be added.</t>
	</section>

	<section title="Non Goals">
	   <t>This document (this revision) does not intend to specify either flow data model or DetNet configuration. From these aspects, the goals of this document differ from the goals of <xref target="IEEE8021Qcc"/>, which also specifies data model and configuration of certain TSN features.</t>
	</section>
	  	  	  
</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++       CONFORMANCE CONVENTIONS           +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section title="Conventions Used in This Document">

   <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>

   <t>The lowercase forms with an initial capital "Must", "Must Not", "Shall", "Shall Not", "Should", "Should Not", "May", and "Optional" in this document are to be interpreted in the sense defined in <xref target="RFC2119"/>, but are used where the normative behavior is defined in documents published by SDOs other than the IETF.</t>

</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++              TERMINOLOGY                +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->	
<section title="Terminology and Definitions">

    <t>This document uses the terminology established in Section 2 of the DetNet architecture document <xref target="I-D.ietf-detnet-architecture"/>. The DetNet &lt;=&gt; TSN dictionary of <xref target="I-D.ietf-detnet-architecture"/> is used to perform translation from <xref target="IEEE8021Qcc"/> to this document. Additional terms used in this document:</t>
	
	    <t><list style="hanging">
		
		<t hangText="DetNet L3 Flow:">Layer 3 (L3) flow leveraging DetNet service.</t>		

		<t hangText="DetNet L2 Flow:">Layer 2 (L2) flow leveraging DetNet service.</t>

		</list></t>

</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++            NAMING CONVENTIONS           +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section title="Naming Conventions">

    <t>The following naming conventions were used for naming information model components in this document. It is recommended that extensions of the model use the same conventions.
	
	   <list style="symbols">
	      <t>Names SHOULD be descriptive.</t>
	      <t>Names MUST start with uppercase letters.</t>
	      <t>Composed names MUST use capital letters for the first letter of each component. All other letters are lowercase, even for acronyms. Exceptions are made for acronyms containing a mixture of lowercase and capital letters, such as IPv6. Examples are SourceMacAddress and DestinationIPv6Address.</t>
	   </list>
	</t>
	
</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++               END SYSTEM                +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_system" title="End System">
    
	<t>Deterministic service is required by time/loss sensitive application(s) running on an end system during communication with its peer(s). Such a data exchange has various requirements on delay and/or loss parameters.</t>
	
	<t>The DetNet architecture <xref target="I-D.ietf-detnet-architecture"/> distinguishes two kinds of end systems: Source and Destination. The same distinction is applied for the DetNet flow information model. In addition to the end systems interested in a flow, the status information of the flow is also important. Therefore, the DetNet flow information model relies on three high level groups:
	   <list style="symbols">
	      <t>Source: an end system capable of sourcing a DetNet flow. The Source information group includes elements that specify the Source for a single flow. This information group is applied from the user to the network.</t>
	      <t>Destination: an end system that is a destination of a DetNet flow. The Destination information group includes elements that specify the Destination for a single flow. This information group is applied from the user to the network.</t>
	      <t>Status: the status of a DetNet flow. The status information group includes elements that specify the status of the flow in the network. This information group is applied from the network to the user. This information group informs the user whether or not the flow is ready for use.</t>
	   </list>
	</t>
	
	<t>There are two operations for each flow with respect to a Source or a Destination:
	   <list style="symbols">
	      <t>Join: Source/Destination request to join the flow.</t>
	      <t>Leave: Source/Destination request to leave the flow.</t>
	   </list>
	</t>	

	<t>[[NOTE (to be removed from a future revision): Adding Modify operation can be considered to address cases when a flow is slightly changed, e.g., only MaxPacketSize (<xref target="sec_trafficspec"/>) has been changed.]]</t>
	
	<t>As the DetNet UNI can provide both L3 and L2 services, end systems may not need to implement the L3 &lt;=&gt; L2 Transfer Function specified by <xref target="IEEE8021CB"/> (see, e.g., subclause 6.3; see also subclause 46.1 in <xref target="IEEE8021Qcc"/>). An edge node may implement a function similar to the Transfer Function, see, e.g., the Svc Proxy in Figure 1 in <xref target="I-D.ietf-detnet-dp-alt"/>.</t>
	
</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                 FLOW                    +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_flow" title="Flow">

	<t>The flows leveraging DetNet service can be unicast or multicast data flows for an application with constrained requirements on network performance, e.g., low packet loss rate and/or latency. Therefore, they can require different connectivity types: point-to-point (p2p) or point-to-multipoint (p2mp). The p2mp connectivity is created by a transport layer function (e.g., p2mp LSP) <xref target="I-D.ietf-detnet-dp-alt"/>. (Note that mp2mp connectivity is a superposition of p2mp connections.)</t>
	
	<t>Many flows using DetNet service are periodic with fix packet size (i.e., Constant Bit Rate (CBR) flows), or periodic with variable packet size.</t>
	
	<t>Delay and loss parameters are correlated because the effect of late delivery can result data loss for an application. However, not all applications require hard limits on both parameters (delay and loss). For example, some real-time applications allow graceful degradation if loss happens (e.g., sample-based processing, media distribution). Some others may require high-bandwidth connections that make the usage of techniques like packet replication economically challenging or even impossible. Some applications may not tolerate loss, but are not delay sensitive (e.g., bufferless sensors). Time/loss sensitive applications may have somewhat special requirements especially for loss (e.g., no loss in two consecutive communication cycles; very low outage time, etc.).</t>

	<t>Flows have the following attributes:
	     <list style="letters">
	        <t>DataFlowSpecification (<xref target="sec_flowspec"/>)</t>
	        <t>TrafficSpecification (<xref target="sec_trafficspec"/>)</t>
	        <t>FlowRank (<xref target="sec_rank"/>)</t>
		</list>
	</t>

	<t>Flow attributes are described in the following sections.</t>
	
<!-- +++++++ FLOW ID & SPEC +++++++ -->
   <section anchor="sec_flowspec" title="Identification and Specification of Flows">
      <t>Identification options for TSN flows are specified by <xref target="IEEE8021CB"/>, which also includes IP flow identification, see, e.g., Table 6-1 in Clause 6. Therefore, the flow identification specified by <xref target="IEEE8021CB"/> is also applicable to DetNet flows.</t>	
		   
	  <t>[[NOTE (to be removed from a future revision): Extensions to the options specified by <xref target="IEEE8021CB"/> can be discussed.]]</t>

	  <t>DataFlowSpecification specifies DetNet flows as follows; see <xref target="sec_flowspec3"/> for DetNet L3 flows and <xref target="sec_flowspec2"/> for DetNet L2 flows.</t>

<!-- +++++++ L3 FLOW ID & SPEC +++++++ -->	  
      <section anchor="sec_flowspec3" title="DetNet L3 Flow Identification and Specification">
	     <t>DetNet L3 flows can be identified and specified by the following attributes:
	        <list style="letters">
	           <t>SourceIpAddress</t>
	           <t>DestinationIpAddress</t>
	           <t>Dscp</t>
	           <t>Protocol</t>
	           <t>SourcePort</t>
	           <t>DestinationPort</t>
	           <t>MplsLabel</t>
		    </list>
	     </t>
      </section>	

<!-- +++++++ L2 FLOW ID & SPEC +++++++ -->	  	  
      <section anchor="sec_flowspec2" title="DetNet L2 Flow Identification and Specification">
	     <t>DetNet L2 flows can be identified and specified by the following attributes:
    	    <list style="letters">
	           <t>DestinationMacAddress</t>
	           <t>SourceMacAddress</t>
	           <t>Pcp</t>
	           <t>VlanId</t>
		    </list>
	     </t>
		
	     <t>[[NOTE (to be removed from a future revision): The Multiple Stream Registration Protocol (MSRP) <xref target="IEEE8021Q"/> uses StreamID to match Talker registrations with their corresponding Listener registrations, i.e., to identify Streams (L2 TSN flows). The StreamID includes the following subcomponents:
    	   <list style="symbols">
	          <t>A 48-bit MAC Address associated with the Talker sourcing the stream to the bridged network.</t>
	          <t>A 16-bit unsigned integer value, Unique ID, used to distinguish among multiple streams sourced by the same Talker.</t>
		   </list>
	     ]]</t>
      </section>	
   </section>

<!-- +++++++ TRAFFIC SPEC +++++++ -->
   <section anchor="sec_trafficspec" title="Traffic Specification">
      <t>TrafficSpecification specifies how the Source transmits packets for the flow. This is effectively the promise/request of the Source to the network. The network uses this traffic specification to allocate resources and adjust queue parameters in network nodes.</t>	

	  <t>TrafficSpecification has the following attributes:
    	<list style="letters">
	        <t>Interval: the period of time in which the traffic specification cannot be exceeded.</t>
	        <t>MaxPacketsPerInterval: the maximum number of packets that the Source will transmit in one Interval.</t>
	        <t>MaxPayloadSize: the maximum payload size that the Source will transmit.</t>
	     </list>
	  </t>
   </section>

<!-- +++++++ RANK +++++++ -->
   <section anchor="sec_rank" title="Flow Rank">
      <t>FlowRank provides the rank of this flow relative to others flows in the network. This rank is used to determine success/failure of flow establishment. Rank (boolean) is used by the network to decide which flows can and cannot exist when network resources reach their limit. Rank is used to help to determine which flows can be dropped (i.e., removed from node configuration) if a port of a node becomes oversubscribed (e.g., due to network reconfiguration). The false value is more important than the true value (i.e., flows with true are dropped first).</t>	

   </section>

</section>

	
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                 SOURCE                  +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_source" title="Source">
	  <t>The Source object specifies:
	     <list style="symbols">
	        <t>The behavior of the Source for the flow (how/when the Source transmits).</t>
	        <t>The requirements of the Source from the network.</t>
	        <t>The capabilities of the interface(s) of the Source.</t>
	     </list>
	  </t>	

	  <t>The Source object includes the following attributes:
	     <list style="letters">
	        <t>DataFlowSpecification (<xref target="sec_flowspec"/>)</t>
	        <t>TrafficSpecification (<xref target="sec_trafficspec"/>)</t>
	        <t>FlowRank (<xref target="sec_rank"/>)</t>
	        <t>EndSystemInterfaces (<xref target="sec_sysif"/>)</t>
	        <t>InterfaceCapabilities (<xref target="sec_ifcap"/>)</t>
	        <t>UserToNetworkRequirements (<xref target="sec_req"/>)</t>
	     </list>
	  </t>	

	  <t>For the join operation, the DataFlowSpecification, FlowRank, EndSystemInterfaces, and TrafficSpecification SHALL be included within the Source. For the join operation, the UserToNetworkRequirements and InterfaceCapabilities groups MAY be included within the Source.</t>	

	  <t>For the leave operation, the DataFlowSpecification and EndSystemInterfaces SHALL be included within the Source.</t>		  

</section>
	
	
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++              DESTINATION                +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_destination" title="Destination">

	  <t>The Destination object includes the following attributes:
	     <list style="letters">
	        <t>DataFlowSpecification (<xref target="sec_flowspec"/>)</t>
	        <t>EndSystemInterfaces (<xref target="sec_sysif"/>)</t>
	        <t>InterfaceCapabilities (<xref target="sec_ifcap"/>)</t>
	        <t>UserToNetworkRequirements (<xref target="sec_req"/>)</t>
	     </list>
	  </t>	

	  <t>For the join operation, the DataFlowSpecification and EndSystemInterfaces SHALL be included within the Destination. For the join operation, the UserToNetworkRequirements and InterfaceCapabilities groups MAY be included within the Destination.</t>	

	  <t>For the leave operation, the DataFlowSpecification and EndSystemInterfaces SHALL be included within the Destination.</t>		  
	  <t>[[NOTE (to be removed from a future revision): Should we add DestinationRank? It could distinguish the importance of Destinations if the flow cannot be provided for all Destinations.]]</t>	

</section>	
	
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++       SOURCE & DESTINATION              +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_srcdest" title="Common Attributes of Source and Destination">
   
   <t>Source and Destination end systems have the following common attributes in addition to DataFlowSpecification (<xref target="sec_flowspec"/>).</t>	

<!-- +++++++ EndSystemInterfaces +++++++ -->
   <section anchor="sec_sysif" title="End System Interfaces">
	  <t>EndSystemInterfaces is a list of identifiers, one for each physical interface (port) in the end system acting as a Source or Destination. An interface is identified by an IP or a MAC address.</t>	

	  <t>[[NOTE (to be removed from a future revision): Sub-Interfaces to be added, e.g., based on IfIndex.]]</t>
	  
	  </section>	

<!-- +++++++ InterfaceCapabilities +++++++ -->
   <section anchor="sec_ifcap" title="Interface Capabilities">
	  <t>InterfaceCapabilities specifies the network capabilities of all interfaces (ports) contained in the EndSystemInterfaces object (<xref target="sec_sysif"/>). These capabilities may be configured via the InterfaceConfiguration object (<xref target="sec_ifconfig"/>) of the Status object (<xref target="sec_status"/>).</t>	
	  
	  <t>Note that an end system may have multiple interfaces with different network capabilities. In this case, each interface should be specified in a distinct top-level Source or Destination object (i.e., one entry in EndSystemInterfaces (<xref target="sec_sysif"/>)). Use of multiple entries in EndSystemInterfaces is intended for network capabilities that span multiple interfaces (e.g., packet replication and elimination).";.</t>	

      <t>[[NOTE (to be removed from a future revision): InterfaceCapabilities attributes are to be defined. For information, <xref target="IEEE8021Qcc"/> specifies the following attributes:
	     <list style="letters">
	        <t>VlanTagCapable (Customer VLAN Tag capable)</t>
	        <t>CB-Capable (frame replication and elimination capable)</t>
	        <t>CB-StreamIdenTypeList (a list of the optional Stream Identification types supported by the interface as specified in <xref target="IEEE8021CB"/>.)</t>
	        <t>CB-SequenceTypeList (a list of the optional Sequence Encode/Decode types supported by the interface as specified in <xref target="IEEE8021CB"/>.)</t>
	     </list>
      ]]</t>

   </section>		

<!-- +++++++ USER TO NETWORK REQUIREMENTS +++++++ -->   
   <section anchor="sec_req" title="User to Network Requirements">

	  <t>UserToNetworkRequirements specifies user requirements for the flow, such as latency and reliability.</t>	

	  <t>The UserToNetworkRequirements object includes the following attributes:
	     <list style="letters">
	        <t>NumReplicationTrees</t>
	        <t>MaxLatency</t>
	     </list>
      </t>
	  
      <t>NumReplicationTrees specifies the number of maximally disjoint trees that the network should configure to provide packet replication and elimination for the flow. NumReplicationTrees is provided by the Source only. Destinations SHALL set this element to one. Value zero and one indicate no packet replication and elimination for the flow. When NumReplicationTrees is greater than one, packet replication and elimination is to be used for the flow. If the Source sets this element to greater than one, and packet replication and elimination is not possible in the network (e.g., no disjoint paths, or the nodes do not support packet replication and elimination), then the FailureCode of the Status object is non-zero (<xref target="sec_statusinfo"/>).</t>	

      <t>MaxLatency is the maximum latency from Source to Destination(s) for a single packet of the flow. MaxLatency is specified as an integer number of nanoseconds. When this requirement is specified by the Source, it must be satisfied for all Destinations. When this requirement is specified by a Destination, it must be satisfied for that particular Destination only. If the UserToNetworkRequirements group is not provided within the Source or Destination object, then value zero SHALL be used for this element. Value zero represents a special use for the maximum latency requirement. Value zero locks-down the initial latency that the network provides in the AccumulatedLatency parameter of the Status object (<xref target="sec_status"/>) after the successful configuration of the flow, such that any subsequent increase in the latency beyond that initial value causes the flow to fail.</t>	
	  
	  <t>[[NOTE-1 (to be removed from a future revision): Should we add a parameter to specify the maximum packet loss rate that can be tolerated for the flow?]]</t>

	  <t>[[NOTE-2 (to be removed from a future revision): TrafficSpecification (<xref target="sec_trafficspec"/>) specifies the Peak Information Rate (PIR) of the flow, which is a kind of user requirement to the network. Should we add Committed Information Rate (CIR), i.e., the minimum rate the user requests to be guaranteed for the flow by the network?]]</t>
	  
  </section>	

</section>	

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                 STATUS                  +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_status" title="Status">

   <t>The Status object is provided by the network each Source and Destination of the flow. The Status object provides the status of the flow with respect to the establishment of the flow by the network. The Status object is delivered via the corresponding UNI to each Source and Destination end system of the flow. The Status is distinct for each Source or Destination because the AccumulatedLatency and InterfaceConfiguration objects are distinct, see below.</t>
   
 	<t>The Status object SHALL include the attributes a), b), c); and MAY include attributes d), e): 
	     <list style="letters">
	        <t>DataFlowSpecification (<xref target="sec_flowspec"/>)</t>
	        <t>StatusInfo (<xref target="sec_statusinfo"/>)</t>
	        <t>AccumulatedLatency (this section below)</t>
	        <t>InterfaceConfiguration (<xref target="sec_ifconfig"/>)</t>
	        <t>FailedInterfaces (<xref target="sec_failedif"/>)</t>
	     </list>
	</t>  
 
   <t>DataFlowSpecification identifies the flow for which status is provided. DataFlowSpecification is described in (<xref target="sec_flowspec"/>) If the Status object is provided without a Source or Destination object in a protocol message via a UNI, then the
DataFlowSpecification object SHALL be included within the Status object for both join and leave operations. If the Status object immediately follows a Source or Destination object in the protocol message, then the DataFlowSpecification object is obtained from the Source/Destination object, and therefore DataFlowSpecification is not required within the Status object.</t>

   <t>AccumulatedLatency provides the worst-case latency that a single packet of the flow can encounter along its current path(s) in the network. When provided to a Source, AccumulatedLatency is the worst-case latency for all Destinations (worst path). AccumulatedLatency is specified as an integer number of nanoseconds. Latency is measured using the time at which the data frame&acute;s message timestamp point passes the reference plane marking the boundary between the network media and PHY. The message timestamp point is specified by IEEE Std 802.1AS <xref target="IEEE8021AS"/> for various media. For a successful Status, the network
returns a value less than or equal to the MaxLatency of the UserToNetworkRequirements (<xref target="sec_req"/>). If the NumReplicationTrees of the UserToNetworkRequirements (<xref target="sec_req"/>) is one, then the AccumlatedLatency SHALL provide the worst latency for the current path from the Source to each Destination. If the path is changed (e.g., due to rerouting), then
the AccumulatedLatency changes accordingly. If the NumReplicationTrees of the UserToNetworkRequirements (<xref target="sec_req"/>) is greater than one, AccumlatedLatency SHALL provide the worst latency for all paths in use from the Source to each Destination.</t>

<!-- +++++++ STATUS INFO +++++++ -->  
   <section anchor="sec_statusinfo" title="Status Info">

	  <t>StatusInfo provides information regarding the status of a flow&acute;s configuration in the network.</t>	

	  <t>The StatusInfo object MAY include the following attributes:
	     <list style="letters">
	        <t>SourceStatus is an enumeration for the status of the flow&acute;s Source: 
	           <list style="symbols">
	              <t>None: no Source</t>
	              <t>Ready: Source is ready</t>
	              <t>Failed: Source failed</t>
	           </list>			
			</t>
	        <t>DestinationStatus is an enumeration for the status of the flow&acute;s Destinations: 
	           <list style="symbols">
	              <t>None: no Destination</t>
	              <t>Ready: all Destinations are ready</t>
	              <t>PartialFailed: One or more Destinations ready, and one or more Listeners failed. The flow can be used tf the Source is Ready.</t>
	              <t>Failed: All Destinations failed.</t>
	           </list>			
			</t>
	        <t>FailureCode: A non-zero code that specifies the problem if the flow encounters a failure (e.g., packet replication and elimination is requested but not possible, or SourceStatus is Failed, or DestinationStatus is Failed, or DestinationStatus is PartialFailed).</t>
	     </list>
	  </t>	

	  <t>[[NOTE (to be removed from a future revision): FailureCodes to be defined for DetNet. Table 46-1 of <xref target="IEEE8021Qcc"/> describes TSN failure codes.]]</t>
	  
   </section>

<!-- +++++++ INTERFACE CONFIGURATION +++++++ --> 
   <section anchor="sec_ifconfig" title="Interface Configuration">

	  <t>InterfaceConfiguration provides configuration of interfaces in the Source/Destination. This configuration assists the network in meeting the requirements of the flow. The InterfaceConfiguration object is according to the capabilities of the interface. InterfaceConfiguration can be distinct for each Source or Destination of each flow. If the InterfaceConfiguration object is
not provided within the Status object, then the network SHALL assume zero elements as the default (no interface configuration).</t>
	  
 	<t>The InterfaceConfiguration object MAY include one or more the following attributes:
	     <list style="letters">
	        <t>MAC or IP Address to identify the interface</t>
	        <t>DataFlowSpecification (<xref target="sec_flowspec"/>)</t>
	     </list>
	</t>

   </section>

<!-- +++++++ FAILED INTERFACES +++++++ --> 
   <section anchor="sec_failedif" title="Failed Interfaces">

	  <t>FailedInterfaces provides a list of one or more physical interfaces (ports) in the failed node when a failure occurs in network configuration (i.e., non-zero FailureCode in StatusInfo object (<xref target="sec_statusinfo"/>)).</t>	
 	  <t>The InterfaceConfiguration object includes the following attributes:
	     <list style="letters">
	        <t>MAC or IP Address to identify the interface</t>
	        <t>InterfaceName</t>
	     </list>
	  </t>

	  <t>InterfaceName is the name of the interface (port) within the node. This interface name SHALL be persistent, and unique within the node.</t>
	  
   </section>
   
</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                 SUMARY                  +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="sec_sum" title="Summary">

	<t>This document describes DetNet flow information model both for DetNet L3 flows and DetNet L2 flows based on the TSN data model specified by <xref target="IEEE8021Qcc"/>. This revision of the document is just to start the discussions; further work is needed.</t> 

</section>

	
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                  IANA                   +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->	
<section anchor="IANA" title="IANA Considerations">
    <t>N/A.</t>
</section>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++                SECURITY                 +++++++ -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<section anchor="Security" title="Security Considerations">
    <t>N/A.</t>
</section>

</middle>


<!--  *****BACK MATTER ***** -->

<back>

<references title="Normative References">	
	<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
	&RFC2119;
	&I-D.ietf-detnet-use-cases;
	&I-D.ietf-detnet-architecture;
	&I-D.ietf-detnet-dp-alt;
</references>
	
<references title="Informative References">

	<reference anchor="IETFDetNet" target="https://datatracker.ietf.org/wg/detnet/charter/">
        <front>
          <title>IETF Deterministic Networking (DetNet) Working Group</title>
          <author>
            <organization>IETF</organization>
          </author>
          <date />
        </front>
	</reference>
	
	<reference anchor="IEEE8021AS" target="http://standards.ieee.org/getieee802/download/802.1AS-2011.pdf">
        <front>
          <title>IEEE 802.1AS-2011: IEEE Standard for Local and metropolitan area networks - Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date year="2011" />
        </front>
	</reference>

	<reference anchor="IEEE8021Q" target="http://standards.ieee.org/getieee802/download/802-1Q-2014.pdf">
        <front>
          <title>IEEE 802.1Q-2014: IEEE Standard for Local and metropolitan area networks - Bridges and Bridged Networks</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date year="2014" />
        </front>
	</reference>
	
	<reference anchor="IEEE8021Qbv" target="https://standards.ieee.org/findstds/standard/802.1Qbv-2015.html">
        <front>
          <title>IEEE 802.1Qbv-2015: IEEE Standard for Local and metropolitan area networks - Bridges and Bridged Networks -- Amendment 25: Enhancements for Scheduled Traffic</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date year="2015" />
        </front>
	</reference>
	
	<reference anchor="IEEE8021Qcc" target="http://www.ieee802.org/1/pages/802.1cc.html">
        <front>
          <title>IEEE P802.1Qcc-2015: IEEE Draft Standard for Local and metropolitan area networks - Bridges and Bridged Networks -- Amendment: Stream Reservation Protocol (SRP) Enhancements and Performance Improvements</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date year="2017" />
        </front>
	</reference>

	<reference anchor="IEEE8021CB" target="http://www.ieee802.org/1/pages/802.1cb.html">
        <front>
          <title>IEEE P802.1CB: IEEE Draft Standard for Local and metropolitan area networks - Frame Replication and Elimination for Reliability</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date year="2017" />
        </front>
	</reference>
	
	<reference anchor="IEEE8021TSN" target="http://www.ieee802.org/1/pages/tsn.html">
        <front>
          <title>IEEE 802.1 Time-Sensitive Networking (TSN) Task Group</title>
          <author>
            <organization>IEEE 802.1</organization>
          </author>
          <date />
        </front>
	</reference>
	
</references>

<!-- Change Log

draft-farkas-DetNet-flow-information-model-00 2017-03-12  Initial version

-->
</back>
</rfc>