<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC3654 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3654.xml">
<!ENTITY RFC3746 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3746.xml">
<!ENTITY I2RSArch SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-i2rs-architecture-05.xml">
<!ENTITY I2RSInfo SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-i2rs-rib-info-model-03.xml">
<!ENTITY I2RSProb SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-i2rs-problem-statement-04.xml">
<!ENTITY RFC7149 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7149.xml">
<!ENTITY RFC7047 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7047.xml">
<!ENTITY RFC7276 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7276.xml">
<!ENTITY RFC5812 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5812.xml">
<!ENTITY RFC5810 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5810.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC6020 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml">
<!ENTITY RFC3418 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3418.xml">
<!ENTITY RFC3411 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3411.xml">
<!ENTITY RFC6632 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6632.xml">
<!ENTITY RFC5706 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5706.xml">
<!ENTITY RFC3535 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3535.xml">
<!ENTITY RFC5880 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5880.xml">
<!ENTITY RFC5743 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5743.xml">
<!ENTITY RFC0826 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0826.xml">
<!ENTITY RFC1953 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1953.xml">
<!ENTITY RFC2297 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2297.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC5531 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5531.xml">
<!ENTITY RFC2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2578.xml">
<!ENTITY RFC3417 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3417.xml">
<!ENTITY RFC3412 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3412.xml">
<!ENTITY RFC3414 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3414.xml">
<!ENTITY RFC5440 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5440.xml">
<!ENTITY RFC4655 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC7011 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7011.xml">
<!ENTITY RFC5424 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5424.xml">
<!ENTITY PCEActive SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-pce-stateful-pce-09.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>


<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>  
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc number="7426" category="info" ipr="trust200902" submissionType="IRTF" consensus="yes">


  <front>


    <title abbrev="SDN Layers and Architecture Terminology">Software-Defined Networking (SDN): Layers and Architecture Terminology</title>


	<author fullname="Evangelos Haleplidis" initials="E.H." surname="Haleplidis" role="editor">
			<organization>University of Patras</organization>
			<address>
				<postal>
					<street>Department of Electrical and Computer Engineering</street>

					<city>Patras</city>
					<region/>
					<code>26500</code>
					<country>Greece</country>
				</postal>
				<email>ehalep@ece.upatras.gr</email>

			</address>
		</author>

	<author fullname="Kostas Pentikousis" initials="K.P." surname="Pentikousis" role="editor">
      <organization abbrev="EICT">EICT GmbH</organization>
      <address>
       <postal>
        <street>Torgauer Strasse 12-15</street>
        <city>10829 Berlin</city>
        <country>Germany</country>
       </postal>
       <email>k.pentikousis@eict.de</email>
      </address>
    </author>

	<author fullname="Spyros Denazis" initials="S.D." surname="Denazis">
			<organization>University of Patras</organization>
			<address>
				<postal>
					<street>Department of Electrical and Computer Engineering</street>
					<city>Patras</city>
					<region/>
					<code>26500</code>
					<country>Greece</country>
				</postal>
				<email>sdena@upatras.gr</email>

			</address>
		</author>

    <author fullname="Jamal Hadi Salim" initials="J.H.S" surname="Hadi Salim">
      <organization>Mojatatu Networks</organization>
      <address>
        <postal>
          <street>Suite 400, 303 Moodie Dr.</street>
          <city>Ottawa, Ontario</city>
          <code>K2H 9R4</code>
          <country>Canada</country>
        </postal>
        <email>hadi@mojatatu.com</email>
      </address>
    </author>

    <author fullname="David Meyer" initials="D.M." surname="Meyer">
      <organization>Brocade</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
          <country></country>
        </postal>
        <email>dmm@1-4-5.net</email>
      </address>
    </author>
    
	<author fullname="Odysseas Koufopavlou" initials="O.K." surname="Koufopavlou">
			<organization>University of Patras</organization>
			<address>
				<postal>
					<street>Department of Electrical and Computer Engineering</street>

					<city>Patras</city>
					<region/>
					<code>26500</code>
					<country>Greece</country>
				</postal>
				<email>odysseas@ece.upatras.gr</email>

			</address>
		</author>

    <date month="December" year="2014" />

    <area>Routing</area>

    <workgroup>Software-Defined Networking</workgroup>

    <keyword>Software-defined Networking</keyword>
    <keyword>SDN</keyword>
    <keyword>Programmable Networks</keyword>
    <keyword>Architecture</keyword>
    <keyword>Layer</keyword>
    <keyword>Terminology</keyword>

    <abstract>
      <t>Software-Defined Networking (SDN) refers to a new approach for
      network programmability, that is, the capacity to initialize, control,
      change, and manage network behavior dynamically via open interfaces. SDN
      emphasizes the role of software in running networks through the
      introduction of an abstraction for the data forwarding plane and, by
      doing so, separates it from the control plane. This separation allows
      faster innovation cycles at both planes as experience has already
      shown. However, there is increasing confusion as to what exactly SDN is,
      what the layer structure is in an SDN architecture, and how layers
      interface with each other. This document, a product of the IRTF
      Software-Defined Networking Research Group (SDNRG), addresses these
      questions and provides a concise reference for the SDN research
      community based on relevant peer-reviewed literature, the RFC series,
      and relevant documents by other standards organizations.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
	<t>"Software-Defined Networking (SDN)" is a term of the programmable
	networks paradigm <xref target="PNSurvey99"/> <xref target="OF08"/>. In
	short, SDN refers to the ability of software applications to program
	individual network devices dynamically and therefore control the
	behavior of the network as a whole <xref target="NV09"/>. <xref
	target="RFC7149">Boucadair and Jacquenet</xref> point out that SDN is
	a set of techniques used to facilitate the design, delivery, and
	operation of network services in a deterministic, dynamic, and
	scalable manner.</t>

	
	<t>A key element in SDN is the introduction of an abstraction between the (traditional) forwarding and control planes in order to separate them and provide applications with the means necessary to programmatically control the network. The goal is to leverage this separation, and the associated programmability, in order to reduce complexity and enable faster innovation at both planes <xref target="A4D05"/>.</t>
	
	<t>The historical evolution of the research and development area of programmable networks  
	is reviewed in detail in  <xref target="SDNHistory"></xref> <xref
	target="SDNSurvey"></xref>, starting with efforts dating back to the
	1980s. As documented in <xref target="SDNHistory"/>,
	many of the ideas, concepts, and concerns are applicable to the latest
	research and development in SDN (and SDN standardization) and have been
	under extensive investigation and discussion in the research community
	for quite some time. For example, Rooney, et&nbsp;al.&nbsp;<xref target="Tempest"/> discuss how to allow third-party access to the network
	without jeopardizing network integrity or how to accommodate legacy
	networking solutions in their (then new) programmable
	environment. Further, the concept of separating the control and
	forwarding planes, which is prominent in SDN, has been extensively
	discussed even prior to 1998 <xref target="Tempest"/> <xref
	target="P1520"/> in <xref target="ITUSS7">SS7 networks</xref>,
	Ipsilon Flow Switching <xref target="RFC1953"/> <xref
	target="RFC2297"/>, and <xref target="ITUATM">ATM</xref>.</t>


	<t>SDN research often focuses on varying aspects of programmability,
	and we are frequently confronted with conflicting points of view
	regarding what exactly SDN is. For instance, we find that for various
	reasons (e.g., work focusing on one domain and therefore not
	necessarily applicable as-is to other domains), certain well-accepted
	definitions do not correlate well with each other. For example, both
	<xref target="OpenFlow">OpenFlow</xref> and <xref
	target="RFC6241">the Network Configuration Protocol (NETCONF)</xref> have been characterized as SDN
	interfaces, but they refer to control and management, respectively.</t>

	
	<t>This motivates us to consolidate the definitions of SDN in the
	literature and correlate them with earlier work at the IETF and the
	research community. Of particular interest is, for example, to
	determine which layers comprise the SDN architecture and which
	interfaces and their corresponding attributes are best suited to be
	used between them. As such, the aim of this document is not to
	standardize any particular layer or interface but rather to provide a
	concise reference that reflects current approaches regarding the
	SDN
	layer architecture. We expect that this document would be useful to
	upcoming work in SDNRG as well as future discussions within the SDN
	community as a whole.</t>

	
	<t>This document addresses the work item in the SDNRG charter titled
	"Survey of SDN approaches and Taxonomies", fostering better
	understanding of prominent SDN technologies in a technology-impartial
	and business-agnostic manner but does not constitute a new IETF
	standard. It is meant as a common base for further discussion. As
	such, we do not make any value statements nor discuss the
	applicability of any of the frameworks examined in this document for any
	particular purpose. Instead, we document their characteristics and
	attributes and classify them, thus providing a taxonomy. This document
	does not intend to provide an exhaustive list of SDN research issues;
	interested readers should consider reviewing <xref
	target="SLTSDN"></xref> and <xref target="SDNACS"></xref>. 
        In
	particular, Jarraya, et&nbsp;al.&nbsp;<xref target="SLTSDN"/> provide an
	overview of SDN-related research topics, e.g., control partitioning, which
	is related to the Consistency, Availability and Partitioning (CAP) theorem discussed in <xref
	target="CAPTheorem"/>.</t>



	<t>This document has been extensively reviewed, discussed, and
	commented by the vast majority of SDNRG members, a community that
	certainly exceeds 100 individuals. It is the consensus of SDNRG that
	this document should be published in the <xref target="RFC5743">IRTF
	stream of the RFC series</xref>.</t>
	
	<t>The remainder of this document is organized as follows. <xref
	target="Terminology"/> explains the terminology used in this
	document. <xref target="SDNLayersSection"/> introduces a high-level
	overview of current SDN architecture abstractions. Finally, <xref
	target="SDNView"/> discusses how the SDN layer architecture relates to
	prominent SDN-enabling technologies.</t>
	</section>
	
	<section anchor="Terminology" title="Terminology">

	<t>This document uses the following terms:
	<list style="symbols">
		<t>Software-Defined Networking (SDN) - A programmable networks approach that supports the separation of control and forwarding planes via standardized interfaces.</t>
		
		<t>Resource - A physical or virtual component available within
		a system. Resources can be very simple or fine-grained (e.g.,
		a port or a queue) or complex, comprised of multiple
		resources (e.g., a network device).</t>		

		
		<t>Network Device - A device that performs one or more network
		operations related to packet manipulation and forwarding. This
		reference model makes no distinction whether a network device
		is physical or virtual. A device can also be considered as a
		container for resources and can be a resource in itself.</t>

		
		<t>Interface - A point of interaction between two
		entities. When the entities are placed at different locations,
		the interface is usually implemented through a network
		protocol.  If the entities are collocated in the same physical
		location, the interface can be implemented using a software
		application programming interface (API), inter-process
		communication (IPC), or a network protocol.</t>

		
		<t>Application (App) - An application in the context of SDN is
		a piece of software that utilizes underlying services to
		perform a function. Application operation can be parameterized,
		for example, by passing certain arguments at call time, but it
		is meant to be a standalone piece of software; an App does not
		offer any interfaces to other applications or services.</t>
		
		<t>Service - A piece of software that performs one or more functions and provides one or more APIs to applications or other services of the same or different layers to make use of said functions and returns one or more results. Services can be combined with other services, or called in a certain serialized manner, to create a new service.</t>
		
		<t>Forwarding Plane (FP) - The collection of resources across all network devices responsible for forwarding traffic.</t>
		
		<t>Operational Plane (OP) - The collection of resources responsible for managing the overall operation of individual network devices.</t>
		
		<t>Control Plane (CP) - The collection of functions responsible for controlling one or more network devices. CP instructs network devices with respect to how to process and forward packets. The control plane interacts primarily with the forwarding plane and, to a lesser extent, with the operational plane.</t>

		<t>Management Plane (MP) - The collection of functions
		responsible for monitoring, configuring, and maintaining one
		or more network devices or parts of network devices. The
		management plane is mostly related to the operational plane
		(it is related less to the forwarding plane).</t>

		
		<t>Application Plane - The collection of applications and
		services that program network behavior.</t>

	
		<t>Device and resource Abstraction Layer (DAL) - The device's resource abstraction layer based on one or more models. If it is a physical device, it may be referred to as the Hardware Abstraction Layer (HAL). DAL provides a uniform point of reference for the device's forwarding- and operational-plane resources.</t>
		
		<t>Control Abstraction Layer (CAL) - The control plane's abstraction layer. CAL provides access to the Control-Plane Southbound Interface.</t>
		
		<t>Management Abstraction Layer (MAL) - The management plane's abstraction layer. MAL provides access to the Management-Plane Southbound Interface.</t>
		
		<t>Network Services Abstraction Layer (NSAL) - Provides service abstractions that can be used by applications and services.</t>
		</list></t>
    </section>

	<section anchor="SDNLayersSection" title="SDN Layers and Architecture">
  
    <t><xref target="SDNLayers" /> summarizes the SDN architecture
    abstractions in the form of a detailed, high-level schematic. Note that in
    a particular implementation, planes can be collocated with other planes or
    can be physically separated, as we discuss below.</t>

    
    <t>SDN is based on the concept of separation between a controlled entity
    and a controller entity. The controller manipulates the controlled entity
    via an interface. 
Interfaces, when local, are mostly API invocations through some library or
system call.
However, such interfaces may be extended via
    some protocol definition, which may use local inter-process communication
    (IPC) or a protocol that could also act remotely; the protocol may be
    defined as an open standard or in a proprietary manner.</t>

	
    <t><xref target="PiNA">Day</xref> explores the use of IPC as the mainstay
    for the definition of recursive network architectures with varying degrees
    of scope and range of operation. <xref target="RINA">The Recursive
    InterNetwork Architecture</xref> outlines
    a recursive network architecture based on IPC that capitalizes on
    repeating patterns and structures. This document does not propose a new
    architecture -- we simply document previous work through a
    taxonomy. Although recursion is out of the scope of this work, <xref
    target="SDNLayers" /> illustrates a hierarchical model in which layers can
    be stacked on top of each other and employed recursively as needed.</t>


    <figure title="SDN Layer Architecture" anchor="SDNLayers"> <artwork align="center"><![CDATA[
              o--------------------------------o
              |                                |
              | +-------------+   +----------+ |
              | | Application |   |  Service | |
              | +-------------+   +----------+ |
              |       Application Plane        |
              o---------------Y----------------o
                              |              
*-----------------------------Y---------------------------------*
|           Network Services Abstraction Layer (NSAL)           |
*------Y------------------------------------------------Y-------*
       |                                                |
       |               Service Interface                |
       |                                                |
o------Y------------------o       o---------------------Y------o
|      |    Control Plane |       | Management Plane    |      |
| +----Y----+   +-----+   |       |  +-----+       +----Y----+ |
| | Service |   | App |   |       |  | App |       | Service | |
| +----Y----+   +--Y--+   |       |  +--Y--+       +----Y----+ |
|      |           |      |       |     |               |      |
| *----Y-----------Y----* |       | *---Y---------------Y----* |
| | Control Abstraction | |       | | Management Abstraction | |
| |     Layer (CAL)     | |       | |      Layer (MAL)       | |
| *----------Y----------* |       | *----------Y-------------* |
|            |            |       |            |               |
o------------|------------o       o------------|---------------o
             |                                 |
             | CP                              | MP
             | Southbound                      | Southbound 
             | Interface                       | Interface
             |                                 |
*------------Y---------------------------------Y----------------*
|         Device and resource Abstraction Layer (DAL)           |
*------------Y---------------------------------Y----------------*
|            |                                 |                |
|    o-------Y----------o   +-----+   o--------Y----------o     |
|    | Forwarding Plane |   | App |   | Operational Plane |     |
|    o------------------o   +-----+   o-------------------o     |
|                       Network Device                          |
+---------------------------------------------------------------+
]]></artwork></figure>

    <section title="Overview">
      <t>This document follows a network-device-centric approach: control
      mostly refers to the device packet-handling capability, while management
      typically refers to aspects of the overall device operation. We view a
      network device as a complex resource that contains and is part of
      multiple resources similar to <xref target="DIOPR"/>. Resources can be
      simple, single components of a network device, for example, a port or a
      queue of the device, and can also be aggregated into complex resources,
      for example, a network card or a complete network device.</t>

      
      <t>The reader should keep in mind that we make
      no distinction between "physical" and "virtual" resources or "hardware"
      and "software" realizations in this document, as we do not delve into
      implementation or
      performance aspects. In other words, a resource can be implemented fully
      in hardware, fully in software, or any hybrid combination in
      between. Further, we do not distinguish whether a resource is
      implemented as an overlay or as a part/component of some other
      device. In general, network device software can run on so-called "bare
      metal" or on a virtualized substrate. Finally, this document does not
      discuss how resources are allocated, orchestrated, and released. Indeed,
      orchestration is out of the scope of this document.</t>

      
      <t>SDN spans multiple planes as illustrated in <xref target="SDNLayers" />. Starting from the bottom part of the figure and moving towards the upper part, we identify the following planes:
	  
      <list style="symbols">
        <t>Forwarding Plane - Responsible for handling packets in the data path based on the instructions received from the control plane. Actions of the forwarding plane include, but are not limited to, forwarding, dropping, and changing packets. The forwarding plane is usually the termination point for control-plane services and applications. The forwarding plane can contain forwarding resources such as classifiers. The forwarding plane is also widely referred to as the "data plane" or the "data path".</t>
		
        <t>Operational Plane - Responsible for managing the operational state
	of the network device, e.g., whether the device is active or inactive,
	the number of ports available, the status of each port, and so on. The
	operational plane is usually the termination point for
	management-plane services and applications. The operational plane
	relates to network device resources such as ports, memory, and so
	on. We note that some participants of the IRTF SDNRG have a different
	opinion in regards to the definition of the operational plane. That
	is, one can argue that the operational plane does not constitute a
	"plane" per se, but it is, in practice, an amalgamation of functions on
	the forwarding plane. For others, however, a "plane" allows one to
	distinguish between different areas of operations; therefore, the
	operational plane is included as a "plane" in <xref
	target="SDNLayers" />. We have adopted this latter view in this
	document.</t>

        
		<t>Control Plane - Responsible for making decisions on how
		packets should be forwarded by one or more network devices and
		pushing such decisions down to the network devices for
		execution. The control plane usually focuses mostly on the
		forwarding plane and less on the operational plane of the
		device. The control plane may be interested in
		operational-plane information, which could include, for
		instance, the current state of a particular port or its
		capabilities. The control plane's main job is to fine-tune the
		forwarding tables that reside in the forwarding plane, based
		on the network topology or external service requests.</t>

        
		<t>Management Plane - Responsible for monitoring, configuring,
		and maintaining network devices, e.g., making decisions
		regarding the state of a network device. The management plane
		usually focuses mostly on the operational plane of the device
		and less on the forwarding plane. The management plane may be
		used to configure the forwarding plane, but it does so
		infrequently and through a more wholesale approach than the
		control plane. For instance, the management plane may set up
		all or part of the forwarding rules at once, although such
		action would be expected to be taken sparingly.</t>

        
		<t>Application Plane - The plane where applications and services that define network behavior reside. Applications that directly (or primarily) support the operation of the forwarding plane (such as routing processes within the control plane) are not considered part of the application plane. Note that applications may be implemented in a modular and distributed fashion and, therefore, can often span multiple planes in <xref target="SDNLayers" />.</t>
      </list></t>

      <t><xref target="RFC7276"/> has defined the data, control, and management planes in terms of Operations, Administration, and Maintenance (OAM). This document attempts to broaden the terms defined in <xref target="RFC7276"/> in order to reflect all aspects of an SDN architecture.</t>

      <t>All planes mentioned above are connected via interfaces (indicated
      with "Y" in <xref target="SDNLayers" />. An interface may take multiple
      roles depending on whether the connected planes reside on the same
      (physical or virtual) device. If the respective planes are designed so
      that they do not have to reside in the same device, then the interface
      can only take the form of a protocol. If the planes are collocated on
      the same device, then the interface could be implemented via an
      open/proprietary protocol, an open/proprietary software inter-process
      communication API, or operating system kernel system calls.</t>

      
      <t>Applications, i.e., software programs that perform specific
      computations that consume services without providing access to other
      applications, can be implemented natively inside a plane or can span
      multiple planes. For instance, applications or services can span both
      the control and management planes and thus be able to use both the
      Control-Plane Southbound Interface (CPSI) and Management-Plane
      Southbound Interface (MPSI), although this is only implicitly
      illustrated in <xref target="SDNLayers" />. An example of such a case
      would be an application that uses both <xref target="OpenFlow"></xref>
      and <xref target="OF-CONFIG"></xref>.</t>

	  
      <t>Services, i.e., software programs that provide APIs to other applications or services, can also be natively implemented in specific planes. Services that span multiple planes belong to the application plane as well.</t>
      
      <t>While not shown explicitly in <xref target="SDNLayers"/>, services,
      applications, and entire planes can be placed in a recursive manner,
      thus providing overlay semantics to the model. 
For example, application-plane
services can be provided to other applications or
services through NSAL.
Additional examples include virtual resources
      that are realized on top of a physical resources and hierarchical
      control-plane controllers <xref target="KANDOO"/>.</t>

      
      <t>Note that the focus in this document is, of course, on the north/south communication between entities in different planes. But this, clearly, does not exclude entity communication within any one plane.</t>
      
	  <t>It must be noted, however, that in <xref target="SDNLayers" />, we present an abstract view of the various planes, which is devoid of implementation details. Many implementations in the past have opted for placing the management plane on top of the control plane. This can be interpreted as having the control plane acting as a service to the management plane. Further, in many networks, especially in Internet routers and Ethernet switches, the control plane has been usually implemented as tightly coupled with the network device. When taken as a whole, the control plane has been distributed network-wide. On the other hand, the management plane has been traditionally centralized and has been responsible for managing the control plane and the devices. However, with the adoption of SDN principles, this distinction is no longer so clear-cut.</t>
	        
      <t>Additionally, this document considers four abstraction layers:
	  
      <list style="symbols">
        <t>The Device and resource Abstraction Layer (DAL) abstracts the
	resources of the
	device's forwarding and operational planes to the control and
	management planes. Variations of DAL may abstract both planes or either
	of the two and may abstract any plane of the device to either the
	control or management plane.</t>

        
        <t>The Control Abstraction Layer (CAL) abstracts the Control-Plane Southbound Interface and the DAL from the applications and services of the control plane.</t>

        <t>The Management Abstraction Layer (MAL) abstracts the Management-Plane Southbound Interface and the DAL from the applications and services of the management plane.</t>
		
		<t>The Network Services Abstraction Layer (NSAL) provides service abstractions for use by applications and other services.</t>
      </list></t>
      
	  <t>At the time of this writing, SDN-related activities have begun in
	  other SDOs. For example, at the ITU, work on architectural <xref
	  target="ITUSG13"/> and signaling requirements and protocols <xref
	  target="ITUSG11"></xref> has commenced, but the respective study
	  groups have yet to publish their documents, with the exception of
	  <xref target="ITUY3300"></xref>. The views presented in <xref
	  target="ITUY3300"/> as well as in <xref target="ONFArch"/> are well
	  aligned with this document.</t>


    </section>
	
    <section title="Network Devices" anchor="ND">
      <t>A network device is an entity that receives packets on its ports and
      performs one or more network functions on them. For example, the network
      device could forward a received packet, drop it, alter the packet header
      (or payload), forward the packet, and so on. A network device is an
      aggregation of multiple resources such as ports, CPU, memory, and
      queues. Resources are either simple or can be aggregated to form complex
      resources that can be viewed as one resource. The network device is in
      itself a complex resource. Examples of network devices include switches
      and routers. Additional examples include network elements that may
      operate at a layer above IP (such as firewalls, load balancers, and video
      transcoders) or below IP (such as Layer 2 switches and optical or microwave
      network elements).</t>

      
      <t>Network devices can be implemented in hardware or software and can be either physical or virtual. As has already been mentioned before, this document makes no such distinction. Each network device has a presence in a forwarding plane and an operational plane.</t>
      
      <t>The forwarding plane, commonly referred to as the "data path", is
      responsible for handling and forwarding packets. The forwarding plane
      provides switching, routing, packet transformation, and filtering
      functions. Resources of the forwarding plane include but are not limited
      to filters, meters, markers, and classifiers.</t>

      
      <t>The operational plane is responsible for the operational state of the
      network device, for instance, with respect to status of network ports
      and interfaces. Operational-plane resources include, but are not limited
      to, memory, CPU, ports, interfaces, and queues.</t>


      <t>The forwarding and the operational planes are exposed via the Device
      and resource Abstraction Layer (DAL), which may be expressed by one or
      more abstraction models. Examples of forwarding-plane abstraction models
      are <xref target="RFC5812">Forwarding and Control Element Separation (ForCES)</xref>, <xref target="OpenFlow">OpenFlow</xref>, <xref target="RFC6020">YANG model</xref>, and <xref target="RFC3418">SNMP MIBs</xref>. Examples of the operational-plane abstraction model include the <xref target="RFC5812">ForCES model</xref>, the <xref target="RFC6020">YANG model</xref>, and <xref target="RFC3418">SNMP MIBs</xref>.</t>
	  
      <t>Note that applications can also reside in a network device. Examples of such applications include event monitoring and handling (offloading) topology discovery or <xref target="RFC0826">ARP</xref> in the device itself instead of forwarding such traffic to the control plane.</t>
    </section>

    <section title="Control Plane" anchor="CP">
    <t>The control plane is usually distributed and is responsible mainly for the configuration of the forwarding plane using a Control-Plane Southbound Interface (CPSI) with DAL as a point of reference. CP is responsible for instructing FP about how to handle network packets.</t>

    <t>Communication between control-plane entities, colloquially referred to
    as the "east-west" interface, is usually implemented through gateway
    protocols such as <xref target="RFC4271">BGP</xref> or other protocols
    such as <xref target="RFC5440">the Path Computation Element (PCE)
    Communication Protocol (PCEP)</xref>. These corresponding protocol
    messages are usually exchanged in-band and subsequently redirected by the
    forwarding plane to the control plane for further processing. Examples in
    this category include <xref target="RCP"/>, <xref target="SoftRouter"/>,
    and <xref target="RouteFlow"/>.</t>

    
    <t>Control-plane functionalities usually include:
    <list style="symbols">
      <t>Topology discovery and maintenance</t>
      <t>Packet route selection and instantiation</t>
      <t>Path failover mechanisms</t>
    </list></t>

    <t>The CPSI is usually defined with the following characteristics:
    <list style="symbols">
      <t>time-critical interface that requires low latency and sometimes high bandwidth in order to perform many operations in short order</t>
      <t>oriented towards wire efficiency and device representation instead of human readability</t>
    </list></t>
    
    <t>Examples include fast- and high-frequency of flow or table updates,
    high throughput, and robustness for packet handling and events.</t>
	  
    <t>CPSI can be implemented using a protocol, an API, or even inter-process communication. If the control plane and the network device are not collocated, then this interface is certainly a protocol. Examples of CPSIs are <xref target="RFC5810">ForCES</xref> and the <xref target="OpenFlow">OpenFlow protocol</xref>.</t>
      
    <t>The Control Abstraction Layer (CAL) provides access to control applications and services to various CPSIs. The control plane may support more than one CPSI.</t>
	  
    <t>Control applications can use CAL to control a network device without providing any service to upper layers. Examples include applications that perform control functions, such as OSPF, IS-IS, and BGP.</t>
	  
    <t>Control-plane service examples include a virtual private LAN service, service tunnels, topology services, etc.</t>
      
    </section>
	
    <section title="Management Plane" anchor="MP">
      <t>The management plane is usually centralized and aims to ensure that the network as a whole is running optimally by communicating with the network devices' operational plane using a Management-Plane Southbound Interface (MPSI) with DAL as a point of reference.</t>
	  
	  <t>Management-plane functionalities are typically initiated, based
	  on an overall network view, and traditionally have been
	  human-centric. However, lately, algorithms are replacing most human
	  intervention. <xref target="FCAPS">Management-plane
	  functionalities</xref> typically include:

	  <list style="symbols">
		<t>Fault and monitoring management</t>
		<t>Configuration management</t>
	  </list></t>
	  
	  <t>In addition, management-plane functionalities may also include
	  entities such as orchestrators, Virtual Network Function Managers (VNF
	  Managers) and Virtualised Infrastructure Managers, as described in
	  <xref target="NFVArch"/>. Such entities can use management
	  interfaces to operational-plane resources to request and provision
	  resources for virtual functions as well as instruct the
	  instantiation of virtual forwarding functions on top of physical
	  forwarding functions. The possibility of a common abstraction model
	  for both SDN and Network Function Virtualization (NFV) is explored in <xref target="SDNNFV"/>. Note,
	  however, that these are only examples of applications and services
	  in the management plane and not formal definitions of entities in
	  this document. As has been noted above, orchestration and therefore
	  the definition of any associated entities is out of the scope of this
	  document.</t>	  

	 	  
      <t>The MPSI, in contrast to the CPSI, is usually not a time-critical interface and does not share the CPSI requirements.</t>
	  
      <t>MPSI is typically closer to human interaction than CPSI (cf. <xref
      target="RFC3535"/>); therefore, MPSI usually has the following
      characteristics: 

      <list style="symbols">
        <t>It is oriented more towards usability, with optimal wire performance being a secondary concern.</t>
        <t>Messages tend to be less frequent than in the CPSI.</t>
		</list></t>
		
      <t>As an example of usability versus performance, we refer to the
      consensus of the 2002 IAB Workshop <xref target="RFC3535"/>: the key
  requirement for a network management technology is ease of use,
  not performance.
      As per <xref target="RFC6632"/>, textual
      configuration files should be able to contain international
      characters. Human-readable strings should utilize UTF&nbhy;8, and protocol
      elements should be in case-insensitive ASCII, which requires more
      processing capabilities to parse.</t>


      <t>MPSI can range from a protocol, to an API or even inter-process
      communication. If the management plane is not embedded in the network
      device, the MPSI is certainly a protocol. Examples of MPSIs are <xref
      target="RFC5810">ForCES</xref>, <xref target="RFC6241">NETCONF</xref>,
      <xref target="RFC7011">IP Flow Information Export (IPFIX)</xref>, <xref
      target="RFC5424">Syslog</xref>, <xref target="RFC7047">Open vSwitch
      Database (OVSDB)</xref>, and <xref target="RFC3411">SNMP</xref>.</t>
	  
      <t>The Management Abstraction Layer (MAL) provides access to management applications and services to various MPSIs. The management plane may support more than one MPSI.</t>
	  
      <t>Management applications can use MAL to manage the network device without providing any service to upper layers. Examples of management applications include network monitoring, fault detection, and recovery applications.</t>
	  
      <t>Management-plane services provide access to other services or applications above the management plane. </t>
    </section>
    
    <section title="Discussion of Control and Management Planes">
	
      <t>The definition of a clear distinction between "control" and
      "management" in the context of SDN received significant community
      attention during the preparation of this document. We observed that the
      role of the management plane has been earlier largely ignored or
      specified as out-of-scope for the SDN ecosystem. In the remainder of
      this subsection, we summarize the characteristics that differentiate the
      two planes in order to have a clear understanding of the mechanics,
      capabilities, and needs of each respective interface.</t> 

	  	  
      <section title="Timescale">
	  
      <t>A point has been raised regarding the reference timescales for the
      control and management planes regarding how fast the respective plane is
      required to react to, or  how fast it needs to manipulate, the
      forwarding or operational
      plane of the device. In general, the control plane needs to send updates
      "often", which translates roughly to a range of milliseconds; that
      requires high-bandwidth and low-latency links. In contrast, the
      management plane reacts generally at longer time frames, i.e., minutes,
      hours, or even days; thus, wire efficiency is not always a critical
      concern. A good example of this is the case of changing the
      configuration state of the device.</t>

      </section>
	  
      <section title="Persistence">

      <t>Another distinction between the control and management planes relates
      to state persistence. A state is considered ephemeral if it has a very
      limited lifespan and is not deemed necessary to be stored on
      non-volatile memory. A good example is determining routing, which is
      usually associated with the control plane. On the other hand, a
      persistent state has an extended lifespan that 
may range from hours to days and months, is meant to be used beyond the
lifetime of the process that created it, and is thus used across device reboots.
Persistent state is usually associated with the management plane.
</t>

      </section>
	  
      <section title="Locality">
	  
      <t>As mentioned earlier, traditionally, the control plane has been
      executed locally on the network device and is distributed in nature
      whilst the management plane is usually executed in a centralized manner,
      remotely from the device. However, with the advent of SDN centralizing,
      or "logically centralizing", the controller tends to muddle the distinction
      of the control and management plane based on locality.</t>

      </section>
	  
      <section title="CAP Theorem Insights" anchor="CAPTheorem">
	  
       <t>The CAP theorem views a distributed computing system as composed of multiple computational resources (i.e., CPU, memory, storage) that are connected via a communications network and together perform a task. The theorem, or conjecture by some, identifies three characteristics of distributed systems that are universally desirable:
	   
       <list style="symbols">
        <t>Consistency, meaning that the system responds identically to a query no matter which node receives the request (or does not respond at all).</t>
        <t>Availability, i.e., that the system always responds to a request (although the response may not be consistent or correct).</t>
        <t>Partition tolerance, namely that the system continues to function even when specific nodes or the communications network fail.</t>
      </list></t>
      
      <t>In 2000, <xref target="CAPBR">Eric Brewer</xref> conjectured that a distributed system can satisfy any two of these guarantees at the same time but not all three. This conjecture was later proven by <xref target="CAPGL">Gilbert and Lynch</xref> and is now usually referred to as the CAP theorem <xref target="CAPFN"></xref>.</t>
      
      <t>Forwarding a packet through a network correctly is a computational problem. One of the major abstractions that SDN posits is that all network elements are computational resources that perform the simple computational task of inspecting fields in an incoming packet and deciding how to forward it. Since the task of forwarding a packet from network ingress to network egress is obviously carried out by a large number of forwarding elements, the network of forwarding devices is a distributed computational system. Hence, the CAP theorem applies to forwarding of packets.</t>
      
      <t>In the context of the CAP theorem, if one considers partition
      tolerance of paramount importance, traditional control-plane operations
      are usually local and fast (available), while management-plane
      operations are usually centralized (consistent) and may be slow.</t>

      
      <t>The CAP theorem also provides insights into SDN architectures. For
      example, a centralized SDN controller acts as a consistent global
      database and specific SDN mechanisms ensure that a packet entering the
      network is handled consistently by all SDN switches. The issue of
      tolerance to loss of connectivity to the controller is not addressed by
      the basic SDN model. When an SDN switch cannot reach its controller, the
      flow will be unavailable until the connection is restored. The use of
      multiple non-collocated SDN controllers has been proposed (e.g., by
      configuring the SDN switch with a list of controllers); this may improve
      partition tolerance but at the cost of loss of absolute
      consistency. Panda, et&nbsp;al.&nbsp;<xref target="CAPFN"/> provide a first
      exploration of how the CAP theorem applies to SDN.</t>
      </section>
      
    </section>
    
    <section title="Network Services Abstraction Layer" anchor="NSAL">

	<t>The Network Services Abstraction Layer (NSAL) provides access from
	services of the control, management, and application planes to other
	services and applications. We note that the term "SAL" is overloaded, as
	it is often used in several contexts ranging from system design to
	service-oriented architectures; therefore, we explicitly add "Network"
	to the title of this layer to emphasize that this term relates to
	<xref target="SDNLayers" />, and we map it accordingly in <xref
	target="SDNView"/> to prominent SDN approaches.</t>


	<t>Service interfaces can take many forms pertaining to their specific
	requirements. Examples of service interfaces include, but are not
	limited to, RESTful APIs, open protocols such as NETCONF,
	inter-process communication, <xref target="CORBA">CORBA</xref>
	interfaces, and so on. The two leading approaches for service
	interfaces are RESTful interfaces and Remote Procedure Call (RPC) interfaces. Both follow a
	client-server architecture and use XML or JSON to pass messages, but
	each has some slightly different characteristics.</t>

	
	<t>RESTful interfaces, designed according to the <xref target="REST">representational state transfer design paradigm</xref>, have the following characteristics:
	<list style="symbols">
    <t>Resource identification - Individual resources are identified using a resource identifier, for example, a URI.</t>
    <t>Manipulation of resources through representations - Resources are represented in a format like JSON, XML, or HTML.</t>
    <t>Self-descriptive messages - Each message has enough information to describe how the message is to be processed.</t>
    <t>Hypermedia as the engine of application state -  A client needs no
    prior knowledge of how to interact with a server, as the API is not fixed
    but dynamically provided by the server.
</t></list></t>
	
  <t>Remote procedure calls (RPCs) <xref target="RFC5531"/>, e.g., XML-RPC and the like, have the following characteristics:
  <list style="symbols">
    <t>Individual procedures are identified using an identifier.</t>
    <t>A client needs to know the procedure name and the associated parameters.</t>
  </list>
  </t>
    </section>
	
    <section title="Application Plane" anchor="AP">
    <t>Applications and services that use services from the control and/or management plane form the application plane.</t>
	
    <t>Additionally, services residing in the application plane may provide services to other services and applications that reside in the application plane via the service interface.</t>
    
	<t>Examples of applications include network topology discovery, network provisioning, path reservation, etc.</t>
    </section>
  </section>
  
	<section anchor="SDNView" title="SDN Model View" >
   
    <t>We advocate that the SDN southbound interface should encompass both CPSI and MPSI.</t>
    	
    <t>SDN controllers such as <xref target="NOX"/> and <xref
    target="Beacon"/> are a collection of control-plane applications and
    services that implement a CPSI (<xref target="NOX"/> and <xref
    target="Beacon"/> both use OpenFlow) and provide a northbound interface
    for applications. The SDN northbound interface for controllers is
    implemented in the Network Services Abstraction Layer (NSAL) of <xref
    target="SDNLayers" />.</t>

    
    <t>The above model can be used to describe all
    prominent SDN-enabling technologies in a concise manner, as we explain in the following
    subsections.</t>

	
  <section title="ForCES">
    <t>The IETF Forwarding and Control Element Separation
    (ForCES) <xref target="RFC3746">framework</xref> consists of one model and
    two protocols. ForCES separates the forwarding plane from the control plane via
    an open interface, namely the <xref target="RFC5810">ForCES
    protocol</xref>, which operates on entities of the forwarding plane that
    have been modeled using the <xref target="RFC5812">ForCES
    model</xref>.</t>

	

<!--[rfced] *ADs - please review and approve the deletion of text in the following as suggested by the author during EDIT state:

Original:
 The ForCES model [RFC5812] is based on the fact that a network
 element is composed of numerous logically separate entities that
 cooperate to provide a given functionality -such as routing or IP
 switching- and yet appear as a normal integrated network element
 to external entities and secondly with a protocol to transport
 information.

From the author - 

Please remove that part: and secondly with a protocol to
transport information.

-->
    <t>The <xref target="RFC5812">ForCES model</xref> is based on the fact
    that a network element is composed of numerous logically separate entities
    that cooperate to provide a given functionality (such as routing or IP
    switching) and yet appear as a normal integrated network element to
    external entities.
</t>
	
    <t>ForCES models the forwarding plane using Logical Functional Blocks
    (LFBs), which, when connected in a graph, compose the Forwarding Element
    (FE). LFBs are described in XML, based on an XML schema.</t>

	
    <t>LFB definitions include base and custom-defined datatypes; metadata
    definitions; input and output ports; operational parameters or components;
    and capabilities and event definitions.</t>
	
    <t>The ForCES model can be used to define LFBs from fine- to coarse-grained as needed, irrespective of whether they are physical or virtual.</t>
	
    <t>The ForCES protocol is agnostic to the model and can be used to
    monitor, configure, and control any ForCES-modeled element. The protocol
    has very simple commands: Set, Get, and Del(ete). The ForCES protocol has
    been designed for high throughput and fast updates.</t>

	
    <t>With respect to <xref target="SDNLayers" />, the <xref target="RFC5812">ForCES model</xref> is suitable for the DAL, both for the operational and the forwarding plane, using LFBs. The <xref target="RFC5810">ForCES protocol</xref> has been designed and is suitable for the CPSI, although it could also be utilized for the MPSI.</t>
  </section>

  <section title="NETCONF/YANG">
  <t>The Network Configuration Protocol (NETCONF) <xref
  target="RFC6241"></xref> is an IETF network management protocol
  <xref target="RFC6632"></xref>. NETCONF provides mechanisms to install,
  manipulate, and delete the configuration of network devices.</t>

  
  <t>NETCONF protocol operations are realized as remote procedure calls (RPCs). The NETCONF protocol uses XML-based data encoding for the configuration data as well as the protocol messages. Recent studies, such as <xref target="ESNet"/> and <xref target="PENet"></xref>, have shown that NETCONF performs better than SNMP <xref target="RFC3411"></xref>.</t>
  
  <t>Additionally, the YANG data modeling language <xref target="RFC6020"/>
  has been developed for specifying NETCONF data models and protocol
  operations. YANG is a data modeling language used to model configuration and
  state data manipulated by the NETCONF protocol, NETCONF remote procedure
  calls, and
  NETCONF notifications.</t>

  
  <t>YANG models the hierarchical organization of data as a tree, in which
  each node has either a value or a set of child nodes. Additionally, YANG
  structures data models into modules and submodules, allowing reusability and
  augmentation. YANG models can describe constraints to be enforced on the
  data. Additionally, YANG has a set of base datatypes and allows
  custom-defined datatypes as well.</t>


  
  <t>YANG allows the definition of NETCONF RPCs, which allows the protocol to have
  an extensible number of commands. For RPC definitions, the operations names,
  input parameters, and output parameters are defined using YANG data
  definition statements.</t>

  <t>With respect to <xref target="SDNLayers" />, the <xref
  target="RFC6020">YANG model</xref> is suitable for specifying DAL for the
  forwarding and operational planes. <xref target="RFC6241">NETCONF</xref> is
  suitable for the MPSI. NETCONF is a <xref target="RFC6632">management
  protocol</xref>, which was not (originally) designed for fast CP updates,
  and it might not be suitable for addressing the requirements of CPSI.</t>

  </section>
  
  <section title="OpenFlow">
  <t>OpenFlow is a framework originally developed at Stanford University and
  currently under active <xref target="OpenFlow">standards development</xref>
  through the Open Networking Foundation (ONF). Initially, the goal was to
  provide a way for researchers to run experimental protocols in a production
  network <xref target="OF08"/>. OpenFlow has undergone many revisions, and
  additional revisions are likely. The following description reflects version
  1.4 <xref target="OpenFlow"/>. In short, OpenFlow defines a protocol through
  which a logically centralized controller can control an OpenFlow
  switch. Each OpenFlow-compliant switch maintains one or more flow tables,
  which are used to perform packet lookups. Distinct actions are to be taken
  regarding packet lookup and forwarding. A group table and an OpenFlow
  channel to external controllers are also part of the switch
  specification.</t>


  <t>With respect to <xref target="SDNLayers" />, the <xref
  target="OpenFlow">OpenFlow switch specifications</xref> define a DAL for the
  forwarding plane as well as for CPSI. The <xref target="OF-CONFIG">OF-CONFIG
  protocol</xref>, based on the <xref target="RFC6020">YANG model</xref>,
  provides a DAL for the forwarding and operational planes of an OpenFlow
  switch and specifies <xref target="RFC6241">NETCONF</xref> as the
  MPSI. OF-CONFIG overlaps with the OpenFlow DAL, but with <xref
  target="RFC6241">NETCONF</xref> as the transport protocol, it shares the
  limitations described in the previous section.</t>

		
  </section>

  <section title="Interface to the Routing System">
    <t>Interface to the Routing System (I2RS) provides a standard interface to
    the routing system for real-time or event-driven interaction through a
    collection of protocol-based control or management
    interfaces. Essentially, one of the main goals of I2RS, is to make the
    Routing Information Base (RIB) programmable, thus enabling new kinds of
    network provisioning and operation.</t>

	
    <t>I2RS did not initially intend to create new interfaces but rather
    leverage or extend existing ones and define informational models for the
    routing system. For example, the latest <xref target="I2RSProb">I2RS
    problem statement</xref> discusses previously defined IETF protocols such
    as <xref target="RFC5810">ForCES</xref>, <xref
    target="RFC6241">NETCONF</xref>, and <xref
    target="RFC3417">SNMP</xref>. Regarding the definition of informational
    and data models, the I2RS working group has opted to use the <xref
    target="RFC6020">YANG</xref> modeling language.</t>

	
 	<t>Currently the I2RS working group is developing an <xref target="I2RSInfo">Information Model</xref> in regards to the Network Services Abstraction Layer for the I2RS agent.</t>
	
	<t>With respect to <xref target="SDNLayers" />, the <xref
	target="I2RSArch">I2RS architecture</xref> encompasses the control and
	application planes and uses any CPSI and DAL that is available,
	whether that may be <xref target="RFC5810">ForCES</xref>, <xref
	target="OpenFlow">OpenFlow</xref>, or another interface. In addition,
	the I2RS agent is a control-plane service. All services or
	applications on top of that belong to either the Control, Management,
	or Application plane. In the I2RS documents, management access to
	the agent may be provided by management protocols like SNMP and
	NETCONF. 
The I2RS protocol may also be mapped to the service interface
as it will even provide access to services and applications other than
control-plane services and applications.
</t>

  </section>
  
    <section title="SNMP">
	
    <t>The Simple Network Management Protocol (SNMP) is an IETF-standardized
    management protocol and is currently at its third revision (SNMPv3) <xref
    target="RFC3417"/> <xref target="RFC3412"/> <xref target="RFC3414"/>. It consists of a set of standards for network management, including an application-layer protocol, a database schema, and a set of data objects. SNMP exposes management data (managed objects) in the form of variables on the managed systems, which describe the system configuration. These variables can then be queried and set by managing applications.</t>

	<t>SNMP uses an extensible design for describing data, defined by Management Information Bases (MIBs). MIBs describe the structure of the management data of a device subsystem. MIBs use a hierarchical namespace containing object identifiers (OIDs). Each OID identifies a variable that can be read or set via SNMP. MIBs use the notation defined by <xref target="RFC2578">Structure of Management Information Version 2</xref>.</t>
	  <t>An early example of SNMP in the context of SDN is discussed in <xref target="Peregrine"/>.</t>

    <t>With respect to <xref target="SDNLayers" />, SNMP MIBs can be used to
    describe DAL for the forwarding and operational planes. Similar to YANG,
    SNMP MIBs are able to describe DAL for the forwarding plane. SNMP, similar
    to NETCONF, is suited for the MPSI.</t>

    
  </section>

    <section title="PCEP">
    <t>The <xref target="RFC4655">Path Computation Element (PCE)</xref>
    architecture defines an entity capable of computing paths for a single
    service or a set of services. A PCE might be a network node, network
    management station, or dedicated computational platform that is
    resource-aware and has the ability to consider multiple constraints for a
    variety of path computation problems and switching technologies.  The
    <xref target="RFC5440">PCE Communication Protocol (PCEP)</xref> is used
    between a Path Computation Client (PCC) and a
    PCE, or between multiple PCEs. </t>

    
    <t>The PCE architecture represents a vision of networks that separates path computation
    for services, the signaling of end-to-end connections, and actual packet
    forwarding. The definition of online and offline path computation is
    dependent on the reachability of the PCE from network and Network
    Management System (NMS) nodes and
    the type of optimization request that may significantly impact the
    optimization response time from the PCE to the PCC. </t>

    
    <t>The PCEP messaging mechanism facilitates the specification of
    computation endpoints (source and destination node addresses), objective functions (requested algorithm and optimization criteria), and the associated constraints such as traffic parameters (e.g., requested bandwidth), the switching capability, and encoding type.</t>
    
    <t>With respect to <xref target="SDNLayers" />, PCE is a control-plane
    service that provides services for control-plane applications. PCEP may be
    used as an east-west interface between PCEs that may act as domain
    control entities (services and applications). The PCE working group is
    specifying <xref target="PCEActive">extensions</xref> that allow an
    active PCE to control, using PCEP, MPLS or GMPLS Label Switched Paths
    (LSPs), thus making it applicable for the CPSI for MPLS and GMPLS
    switches.</t>

  </section>

  <section title="BFD">
    <t><xref target="RFC5880">Bidirectional Forwarding Detection (BFD)</xref>
    is an IETF-standardized network protocol designed for detecting path
    failures between two forwarding elements, including physical interfaces,
    subinterfaces, data link(s), and, to the extent possible, the forwarding
    engines themselves, with potentially very low latency. BFD can provide
    low-overhead failure detection on any kind of path between systems,
    including direct physical links, virtual circuits, tunnels, MPLS LSPs,
    multihop routed paths, and unidirectional links where there exists a
    return path as well. It is often implemented in some component of the
    forwarding engine of a system, in cases where the forwarding and control
    engines are separated.</t>

	
    <t>With respect to <xref target="SDNLayers" />, a BFD agent can be
    implemented as a control-plane service or application that would use the
    CPSI towards the forwarding plane to send/receive BFD packets. However, a
    BFD agent is usually implemented as an application on the device and uses
    the forwarding plane to send/receive BFD packets and update the
    operational-plane resources accordingly. Services and applications of
    the control and management planes that monitor or have subscribed 
to changes of resources can learn about these changes through their respective
interfaces and take any actions as necessary.
</t>

  </section>
  </section>
  
  <section anchor="Summary" title="Summary">
  <t>This document has been developed after a thorough and detailed analysis
  of related peer-reviewed literature, the RFC series, and documents produced
  by other relevant standards organizations. It has been reviewed publicly by
  the wider SDN community, and we hope that it can serve as a handy tool for
  network researchers, engineers, and practitioners in the years to come.</t>

  
  <t>We conclude this document with a brief summary of the terminology of the
  SDN layer architecture. In general, we consider a network element as a
  composition of resources. Each network element has a forwarding plane (FP)
  that is
  responsible for handling packets in the data path and an operational plane
  (OP) that is responsible for managing the operational state of the
  device. Resources in the network element are abstracted by the Device and
  resource Abstraction Layer (DAL) to be controlled and managed by services or
  applications that belong to the control or management plane. The control
  plane (CP) is responsible for making decisions on how packets should be
  forwarded. The management plane (MP) is responsible for monitoring,
  configuring, and maintaining network devices. Service interfaces are
  abstracted by the Network Services Abstraction Layer (NSAL), where other
  network applications or services may use them. The taxonomy introduced in
  this document defines distinct SDN planes, abstraction layers, and
  interfaces; it aims to clarify SDN terminology and establish commonly
  accepted reference definitions across the SDN community, irrespective of
  specific implementation choices.</t>
  </section>



    <section anchor="Security" title="Security Considerations">
      <t>This document does not propose a new network architecture or protocol
      and therefore does not have any impact on the security of the
      Internet. That said, security is paramount in networking; thus, it
      should be given full consideration when designing a network architecture
      or operational deployment. Security in SDN is discussed in the
      literature, for example, in <xref target="SDNSecurity"/>, <xref
      target="SDNSecServ"/>, and <xref target="SDNSecOF"/>. Security
      considerations regarding specific interfaces (such as, for example,
      ForCES, I2RS, SNMP, or NETCONF) are addressed in their respective
      documents as well as in <xref target="RFC7149"/>.</t>

    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>

    <references title="Informative References">

<!--  draft-ietf-i2rs-architecture-05 ID Exists-->

<reference anchor='I2RSArch'>
<front>
<title>An Architecture for the Interface to the Routing System</title>

<author initials='A' surname='Atlas' fullname='Alia Atlas'>
    <organization />
</author>

<author initials='J' surname='Halpern' fullname='Joel Halpern'>
    <organization />
</author>

<author initials='S' surname='Hares' fullname='Susan Hares'>
    <organization />
</author>

<author initials='D' surname='Ward' fullname='David Ward'>
    <organization />
</author>

<author initials='T' surname='Nadeau' fullname='Tom Nadeau'>
    <organization />
</author>

<date month='July' day='22' year='2014' />

</front>

<seriesInfo name='Work in Progress,' value='draft-ietf-i2rs-architecture-05' />
</reference>



<!--  draft-ietf-i2rs-rib-info-model-03 ID Exists -->

<reference anchor='I2RSInfo'>
<front>
<title>Routing Information Base Info Model</title>

<author initials='N' surname='Bahadur' fullname='Nitin Bahadur'>
    <organization />
</author>

<author initials='R' surname='Folkes' fullname='Ron Folkes'>
    <organization />
</author>

<author initials='S' surname='Kini' fullname='Sriganesh Kini'>
    <organization />
</author>

<author initials='J' surname='Medved' fullname='Jan Medved'>
    <organization />
</author>

<date month='May' day='27' year='2014' />


</front>
<seriesInfo name='Work in Progress,' value='draft-ietf-i2rs-rib-info-model-03' />
</reference>



<!--  draft-ietf-i2rs-problem-statement-04 ID Exists -->

<reference anchor='I2RSProb'>
<front>
<title>Interface to the Routing System Problem Statement</title>

<author initials='A' surname='Atlas' fullname='Alia Atlas'>
    <organization />
</author>

<author initials='T' surname='Nadeau' fullname='Tom Nadeau'>
    <organization />
</author>

<author initials='D' surname='Ward' fullname='David Ward'>
    <organization />
</author>

<date month='June' day='23' year='2014' />

</front>
<seriesInfo name='Work in Progress,' value='draft-ietf-i2rs-problem-statement-04' />

</reference>




<!--  draft-ietf-pce-stateful-pce ID Exists -->

<reference anchor='PCEActive'>
<front>
<title>PCEP Extensions for Stateful PCE</title>

<author initials='E' surname='Crabbe' fullname='Edward Crabbe'>
    <organization />
</author>

<author initials='I' surname='Minei' fullname='Ina Minei'>
    <organization />
</author>

<author initials='J' surname='Medved' fullname='Jan Medved'>
    <organization />
</author>

<author initials='R' surname='Varga' fullname='Robert Varga'>
    <organization />
</author>

<date month='October' day='26' year='2014' />


</front>
<seriesInfo name='Work in Progress,' value='draft-ietf-pce-stateful-pce-10' />

</reference>




<reference anchor='RFC5810' target='http://www.rfc-editor.org/info/rfc5810'>

<front>
<title>Forwarding and Control Element Separation (ForCES) Protocol Specification</title>
<author initials='A.' surname='Doria' fullname='A. Doria'>
<organization /></author>
<author initials='J.' surname='Hadi Salim' fullname='J. Hadi Salim'>
<organization /></author>
<author initials='R.' surname='Haas' fullname='R. Haas'>
<organization /></author>
<author initials='H.' surname='Khosravi' fullname='H. Khosravi'>
<organization /></author>
<author initials='W.' surname='Wang' fullname='W. Wang'>
<organization /></author>
<author initials='L.' surname='Dong' fullname='L. Dong'>
<organization /></author>
<author initials='R.' surname='Gopal' fullname='R. Gopal'>
<organization /></author>
<author initials='J.' surname='Halpern' fullname='J. Halpern'>
<organization /></author>
<date year='2010' month='March' />
</front>
<seriesInfo name='RFC' value='5810' />
</reference>



<reference anchor='RFC5812' target='http://www.rfc-editor.org/info/rfc5812'>

<front>
<title>Forwarding and Control Element Separation (ForCES) Forwarding Element Model</title>
<author initials='J.' surname='Halpern' fullname='J. Halpern'>
<organization /></author>
<author initials='J.' surname='Hadi Salim' fullname='J. Hadi Salim'>
<organization /></author>
<date year='2010' month='March' />
</front>
<seriesInfo name='RFC' value='5812' />
</reference>



<reference anchor='RFC6241' target='http://www.rfc-editor.org/info/rfc6241'>

<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author initials='R.' surname='Enns' fullname='R. Enns'>
<organization /></author>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund'>
<organization /></author>
<author initials='J.' surname='Schoenwaelder' fullname='J. Schoenwaelder'>
<organization /></author>
<author initials='A.' surname='Bierman' fullname='A. Bierman'>
<organization /></author>
<date year='2011' month='June' />
</front>
<seriesInfo name='RFC' value='6241' />
</reference>




<reference anchor='RFC6020' target='http://www.rfc-editor.org/info/rfc6020'>

<front>
<title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund'>
<organization /></author>
<date year='2010' month='October' />
</front>
<seriesInfo name='RFC' value='6020' />
</reference>




<reference anchor='RFC3418' target='http://www.rfc-editor.org/info/rfc3418'>

<front>
<title>Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)</title>
<author initials='R.' surname='Presuhn' fullname='R. Presuhn'>
<organization /></author>
<date year='2002' month='December' />
</front>
<seriesInfo name='STD' value='62' />
<seriesInfo name='RFC' value='3418' />
</reference>




<reference anchor='RFC3746' target='http://www.rfc-editor.org/info/rfc3746'>

<front>
<title>Forwarding and Control Element Separation (ForCES) Framework</title>
<author initials='L.' surname='Yang' fullname='L. Yang'>
<organization /></author>
<author initials='R.' surname='Dantu' fullname='R. Dantu'>
<organization /></author>
<author initials='T.' surname='Anderson' fullname='T. Anderson'>
<organization /></author>
<author initials='R.' surname='Gopal' fullname='R. Gopal'>
<organization /></author>
<date year='2004' month='April' />
</front>
<seriesInfo name='RFC' value='3746' />
</reference>



<reference anchor='RFC3411' target='http://www.rfc-editor.org/info/rfc3411'>

<front>
<title>An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks</title>
<author initials='D.' surname='Harrington' fullname='D. Harrington'>
<organization /></author>
<author initials='R.' surname='Presuhn' fullname='R. Presuhn'>
<organization /></author>
<author initials='B.' surname='Wijnen' fullname='B. Wijnen'>
<organization /></author>
<date year='2002' month='December' />
</front>
<seriesInfo name='STD' value='62' />
<seriesInfo name='RFC' value='3411' />
</reference>




<reference anchor='RFC7047' target='http://www.rfc-editor.org/info/rfc7047'>

<front>
<title>The Open vSwitch Database Management Protocol</title>
<author initials='B.' surname='Pfaff' fullname='B. Pfaff'>
<organization /></author>
<author initials='B.' surname='Davie' fullname='B. Davie'>
<organization /></author>
<date year='2013' month='December' />
<abstract>
<t>Open vSwitch is an open-source software switch designed to be used as a vswitch (virtual switch) in virtualized server environments.  A vswitch forwards traffic between different virtual machines (VMs) on the same physical host and also forwards traffic between VMs and the physical network.  Open vSwitch is open to programmatic extension and control using OpenFlow and the OVSDB (Open vSwitch Database) management protocol.  This document defines the OVSDB management protocol.  The Open vSwitch project includes open-source OVSDB client and server implementations.</t></abstract></front>
<seriesInfo name='RFC' value='7047' />
<format type='TXT' octets='69446' target='http://www.rfc-editor.org/rfc/rfc7047.txt' />
</reference>



<reference anchor='RFC7149' target='http://www.rfc-editor.org/info/rfc7149'>

<front>
<title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
<author initials='M.' surname='Boucadair' fullname='M. Boucadair'>
<organization /></author>
<author initials='C.' surname='Jacquenet' fullname='C. Jacquenet'>
<organization /></author>
<date year='2014' month='March' />
<abstract>
<t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.&lt;/t>&lt;t> It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t></abstract></front>
<seriesInfo name='RFC' value='7149' />
<format type='TXT' octets='47516' target='http://www.rfc-editor.org/rfc/rfc7149.txt' />
</reference>




<reference anchor='RFC6632' target='http://www.rfc-editor.org/info/rfc6632'>

<front>
<title>An Overview of the IETF Network Management Standards</title>
<author initials='M.' surname='Ersue' fullname='M. Ersue'>
<organization /></author>
<author initials='B.' surname='Claise' fullname='B. Claise'>
<organization /></author>
<date year='2012' month='June' />
<abstract>
<t>This document gives an overview of the IETF network management standards and summarizes existing and ongoing development of IETF Standards Track network management protocols and data models.  The document refers to other overview documents, where they exist and classifies the standards for easy orientation.  The purpose of this document is, on the one hand, to help system developers and users to select appropriate standard management protocols and data models to address relevant management needs.  On the other hand, the document can be used as an overview and guideline by other Standard Development Organizations or bodies planning to use IETF management technologies and data models.  This document does not cover Operations, Administration, and Maintenance (OAM) technologies on the data-path, e.g., OAM of tunnels, MPLS Transport Profile (MPLS-TP) OAM, and pseudowire as well as the corresponding management models.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>
<seriesInfo name='RFC' value='6632' />
<format type='TXT' octets='210159' target='http://www.rfc-editor.org/rfc/rfc6632.txt' />
</reference>



<reference anchor='RFC3535' target='http://www.rfc-editor.org/info/rfc3535'>

<front>
<title>Overview of the 2002 IAB Network Management Workshop</title>
<author initials='J.' surname='Schoenwaelder' fullname='J. Schoenwaelder'>
<organization /></author>
<date year='2003' month='May' />
<abstract>
<t>This document provides an overview of a workshop held by the Internet Architecture Board (IAB) on Network Management.  The workshop was hosted by CNRI in Reston, VA, USA on June 4 thru June 6, 2002.  The goal of the workshop was to continue the important dialog started between network operators and protocol developers, and to guide the IETFs focus on future work regarding network management.  This report summarizes the discussions and lists the conclusions and recommendations to the Internet Engineering Task Force (IETF) community.  This memo provides information for the Internet community.</t></abstract></front>
<seriesInfo name='RFC' value='3535' />
<format type='TXT' octets='42566' target='http://www.rfc-editor.org/rfc/rfc3535.txt' />
</reference>




<reference anchor='RFC5880' target='http://www.rfc-editor.org/info/rfc5880'>

<front>
<title>Bidirectional Forwarding Detection (BFD)</title>
<author initials='D.' surname='Katz' fullname='D. Katz'>
<organization /></author>
<author initials='D.' surname='Ward' fullname='D. Ward'>
<organization /></author>
<date year='2010' month='June' />
</front>
<seriesInfo name='RFC' value='5880' />
<format type='TXT' octets='110279' target='http://www.rfc-editor.org/rfc/rfc5880.txt' />
</reference>




<reference anchor='RFC5743' target='http://www.rfc-editor.org/info/rfc5743'>

<front>
<title>Definition of an Internet Research Task Force (IRTF) Document Stream</title>
<author initials='A.' surname='Falk' fullname='A. Falk'>
<organization /></author>
<date year='2009' month='December' />
<abstract>
<t>This memo defines the publication stream for RFCs from the Internet Research Task Force.  Most documents undergoing this process will come from IRTF Research Groups, and it is expected that they will be published as Informational or Experimental RFCs by the RFC Editor.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>
<seriesInfo name='RFC' value='5743' />
<format type='TXT' octets='19885' target='http://www.rfc-editor.org/rfc/rfc5743.txt' />
</reference>




<reference anchor='RFC0826' target='http://www.rfc-editor.org/info/rfc826'>

<front>
<title>Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware</title>
<author initials='D.' surname='Plummer' fullname='David C. Plummer'>
<organization>Symbolics, Inc.</organization>
<address>
<postal>
<street>243 Vassar Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02139</code>
<country>US</country></postal>
<email>DCP@MIT-MC</email></address></author>
<date year='1982' day='1' month='November' />
<abstract>
<t>The implementation of protocol P on a sending host S decides, through protocol P's routing mechanism, that it wants to transmit to a target host T located some place on a connected piece of 10Mbit Ethernet cable.  To actually transmit the Ethernet packet a 48.bit Ethernet address must be generated.  The addresses of hosts within protocol P are not always compatible with the corresponding Ethernet address (being different lengths or values).  Presented here is a protocol that allows dynamic distribution of the information needed to build tables to translate an address A in protocol P's address space into a 48.bit Ethernet address.</t>
<t>Generalizations have been made which allow the protocol to be used for non-10Mbit Ethernet hardware.  Some packet radio networks are examples of such hardware.</t>
<t>The protocol proposed here is the result of a great deal of discussion with several other people, most notably J. Noel Chiappa, Yogen Dalal, and James E. Kulp, and helpful comments from David Moon.</t>
<t>The purpose of this RFC is to present a method of Converting Protocol Addresses (e.g., IP addresses) to Local Network Addresses (e.g., Ethernet addresses).  This is a issue of general concern in the ARPA Internet community at this time.  The method proposed here is presented for your consideration and comment.  This is not the specification of a Internet Standard.</t></abstract></front>
<seriesInfo name='STD' value='37' />
<seriesInfo name='RFC' value='826' />
<format type='TXT' octets='22026' target='http://www.rfc-editor.org/rfc/rfc826.txt' />
</reference>




<reference anchor='RFC1953' target='http://www.rfc-editor.org/info/rfc1953'>

<front>
<title>Ipsilon Flow Management Protocol Specification for IPv4 Version 1.0</title>
<author initials='P.' surname='Newman' fullname='Peter Newman'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4603</phone>
<email>pn@ipsilon.com</email></address></author>
<author initials='W.' surname='Edwards' fullname='W. L. Edwards'>
<organization>Sprint Technology Services - Long Distance Division</organization>
<address>
<postal>
<street>9300 Metcalf Avenue</street>
<street>Mailstop KSOPKB0802</street>
<city>Overland Park</city>
<region>KS</region>
<code>66212-6333</code>
<country>US</country></postal>
<phone>+1 913 534 5334</phone>
<email>texas@sprintcorp.com</email></address></author>
<author initials='R.' surname='Hinden' fullname='Robert M. Hinden'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4604</phone>
<email>hinden@ipsilon.com</email></address></author>
<author initials='E.' surname='Hoffman' fullname='Eric Hoffman'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4610</phone>
<email>hoffman@ipsilon.com</email></address></author>
<author initials='F.' surname='Ching Liaw' fullname='Fong Ching Liaw'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4607</phone>
<email>fong@ipsilon.com</email></address></author>
<author initials='T.' surname='Lyon' fullname='Tom Lyon'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4601</phone>
<email>pugs@ipsilon.com</email></address></author>
<author initials='G.' surname='Minshall' fullname='Greg Minshall'>
<organization>Ipsilon Networks, Inc.</organization>
<address>
<postal>
<street>2191 East Bayshore Road</street>
<street>Suite 100</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 846 4605</phone>
<email>minshall@ipsilon.com</email></address></author>
<date year='1996' month='May' />
<abstract>
<t>The Ipsilon Flow Management Protocol (IFMP), is a protocol for allowing a node to instruct an adjacent node to attach a layer 2 label to a specified IP flow.  The label allows more efficient access to cached routing information for that flow.  The label can also enable a node to switch further packets belonging to the specified flow at layer 2 rather than forwarding them at layer 3.</t></abstract></front>

<seriesInfo name='RFC' value='1953' />
<format type='TXT' octets='43749' target='http://www.rfc-editor.org/rfc/rfc1953.txt' />
</reference>




<reference anchor='RFC2297' target='http://www.rfc-editor.org/info/rfc2297'>

<front>
<title abbrev='Ipsilon&apos;s General Switch Management'>Ipsilon's General Switch Management Protocol Specification Version 2.0</title>
<author initials='P.' surname='Newman' fullname='Peter Newman'>
<organization>Nokia</organization>
<address>
<postal>
<street>232 Java Drive</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94089</code>
<country>US</country></postal>
<phone>+1 408 990 2003</phone>
<email>pn@ipsilon.com</email></address></author>
<author initials='W.L.' surname='Edwards' fullname='W. L. Edwards'>
<organization>Sprint Technology Services - Long Distance Division</organization>
<address>
<postal>
<street>9300 Metcalf Avenue</street>
<street>Mailstop KSOPKB0802</street>
<city>Overland Park</city>
<region>KS</region>
<code>66212-6333</code>
<country>US</country></postal>
<phone>+1 913 534 5334</phone>
<email>texas@sprintcorp.com</email></address></author>
<author initials='R.M.' surname='Hinden' fullname='Robert M. Hinden'>
<organization>Nokia</organization>
<address>
<postal>
<street>232 Java Drive</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94089</code>
<country>US</country></postal>
<phone>+1 408 990 2004</phone>
<email>hinden@ipsilon.com</email></address></author>
<author initials='E.' surname='Hoffman' fullname='Eric Hoffman'>
<organization>Nokia</organization>
<address>
<postal>
<street>232 Java Drive</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94089</code>
<country>US</country></postal>
<phone>+1 408 990 2010</phone>
<email>hoffman@ipsilon.com</email></address></author>
<author initials='F.C.' surname='Liaw' fullname='Fong Ching Liaw'>
<organization>Coppercom</organization>
<address>
<postal>
<street /></postal>
<phone>+1 408 873 2688</phone>
<email>fong@coppercom.com</email></address></author>
<author initials='T.' surname='Lyon' fullname='Tom Lyon'>
<organization>Nokia</organization>
<address>
<postal>
<street>232 Java Drive</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94089</code>
<country>US</country></postal>
<phone>+1 408 990 2001</phone>
<email>pugs@ipsilon.com</email></address></author>
<author initials='G.' surname='Minshall' fullname='Greg Minshall'>
<organization>Fiberlane Communications</organization>
<address>
<postal>
<street>1399 Charleston Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<phone>+1 650 237 3164</phone>
<email>minshall@fiberlane.com</email></address></author>
<date year='1998' month='March' />
<abstract>
<t>This memo specifies enhancements to the  General Switch Management Protocol (GSMP). The major enhancement is the addition of Quality of Service (QoS) messages. Other improvements have been made to the protocol resulting from operational experience. GSMP is a general purpose protocol to control an ATM switch. It allows a controller to establish and release connections across the switch; add and delete leaves on a multicast connection; manage switch ports; request configuration information; and request statistics.</t></abstract></front>

<seriesInfo name='RFC' value='2297' />
<format type='TXT' octets='280484' target='http://www.rfc-editor.org/rfc/rfc2297.txt' />
</reference>




<reference anchor='RFC4271' target='http://www.rfc-editor.org/info/rfc4271'>

<front>
<title>A Border Gateway Protocol 4 (BGP-4)</title>
<author initials='Y.' surname='Rekhter' fullname='Y. Rekhter'>
<organization /></author>
<author initials='T.' surname='Li' fullname='T. Li'>
<organization /></author>
<author initials='S.' surname='Hares' fullname='S. Hares'>
<organization /></author>
<date year='2006' month='January' />
</front>

<seriesInfo name='RFC' value='4271' />
<format type='TXT' octets='222702' target='http://www.rfc-editor.org/rfc/rfc4271.txt' />
</reference>




<reference anchor='RFC5531' target='http://www.rfc-editor.org/info/rfc5531'>

<front>
<title>RPC: Remote Procedure Call Protocol Specification Version 2</title>
<author initials='R.' surname='Thurlow' fullname='R. Thurlow'>
<organization /></author>
<date year='2009' month='May' />
</front>
<seriesInfo name='RFC' value='5531' />
<format type='TXT' octets='161720' target='http://www.rfc-editor.org/rfc/rfc5531.txt' />
</reference>



<reference anchor='RFC2578' target='http://www.rfc-editor.org/info/rfc2578'>

<front>
<title abbrev='SMIv2'>Structure of Management Information Version 2 (SMIv2)</title>
<author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie' role='editor'>
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134-1706</code>
<country>US</country></postal>
<phone>+1 408 526 5260</phone>
<email>kzm@cisco.com</email></address></author>
<author initials='D.' surname='Perkins' fullname='David Perkins' role='editor'>
<organization>SNMPinfo</organization>
<address>
<postal>
<street>3763 Benton Street</street>
<city>Santa Clara</city>
<region>CA</region>
<code>95051</code>
<country>US</country></postal>
<phone>+1 408 221 8702</phone>
<email>dperkins@snmpinfo.com</email></address></author>
<author initials='J.' surname='Schoenwaelder' fullname='Juergen Schoenwaelder' role='editor'>
<organization>TU Braunschweig</organization>
<address>
<postal>
<street>Bueltenweg 74/75</street>
<street>38106 Braunschweig</street>
<country>DE</country></postal>
<phone>+49 531 3913283</phone>
<email>schoenw@ibr.cs.tu-bs.de</email></address></author>
<date year='1999' month='April' /></front>

<seriesInfo name='STD' value='58' />
<seriesInfo name='RFC' value='2578' />
<format type='TXT' octets='89712' target='http://www.rfc-editor.org/rfc/rfc2578.txt' />
</reference>



<reference anchor='RFC3417' target='http://www.rfc-editor.org/info/rfc3417'>

<front>
<title>Transport Mappings for the Simple Network Management Protocol (SNMP)</title>
<author initials='R.' surname='Presuhn' fullname='R. Presuhn'>
<organization /></author>
<date year='2002' month='December' />
</front>

<seriesInfo name='STD' value='62' />
<seriesInfo name='RFC' value='3417' />
<format type='TXT' octets='38650' target='http://www.rfc-editor.org/rfc/rfc3417.txt' />
</reference>




<reference anchor='RFC3412' target='http://www.rfc-editor.org/info/rfc3412'>

<front>
<title>Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)</title>
<author initials='J.' surname='Case' fullname='J. Case'>
<organization /></author>
<author initials='D.' surname='Harrington' fullname='D. Harrington'>
<organization /></author>
<author initials='R.' surname='Presuhn' fullname='R. Presuhn'>
<organization /></author>
<author initials='B.' surname='Wijnen' fullname='B. Wijnen'>
<organization /></author>
<date year='2002' month='December' />
</front>

<seriesInfo name='STD' value='62' />
<seriesInfo name='RFC' value='3412' />
<format type='TXT' octets='95710' target='http://www.rfc-editor.org/rfc/rfc3412.txt' />
</reference>



<reference anchor='RFC3414' target='http://www.rfc-editor.org/info/rfc3414'>

<front>
<title>User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)</title>
<author initials='U.' surname='Blumenthal' fullname='U. Blumenthal'>
<organization /></author>
<author initials='B.' surname='Wijnen' fullname='B. Wijnen'>
<organization /></author>
<date year='2002' month='December' />
</front>

<seriesInfo name='STD' value='62' />
<seriesInfo name='RFC' value='3414' />
<format type='TXT' octets='193558' target='http://www.rfc-editor.org/rfc/rfc3414.txt' />
</reference>




<reference anchor='RFC5440' target='http://www.rfc-editor.org/info/rfc5440'>

<front>
<title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
<author initials='JP.' surname='Vasseur' fullname='JP. Vasseur'>
<organization /></author>
<author initials='JL.' surname='Le Roux' fullname='JL. Le Roux'>
<organization /></author>
<date year='2009' month='March' />
</front>

<seriesInfo name='RFC' value='5440' />
<format type='TXT' octets='190529' target='http://www.rfc-editor.org/rfc/rfc5440.txt' />
</reference>



<reference anchor='RFC4655' target='http://www.rfc-editor.org/info/rfc4655'>

<front>
<title>A Path Computation Element (PCE)-Based Architecture</title>
<author initials='A.' surname='Farrel' fullname='A. Farrel'>
<organization /></author>
<author initials='J.-P.' surname='Vasseur' fullname='J.-P. Vasseur'>
<organization /></author>
<author initials='J.' surname='Ash' fullname='J. Ash'>
<organization /></author>
<date year='2006' month='August' />
<abstract>
<t>Constraint-based path computation is a fundamental building block for traffic engineering systems such as Multiprotocol Label Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) networks. Path computation in large, multi-domain, multi-region, or multi-layer networks is complex and may require special computational components and cooperation between the different network domains.&lt;/t>&lt;t> This document specifies the architecture for a Path Computation Element (PCE)-based model to address this problem space. This document does not attempt to provide a detailed description of all the architectural components, but rather it describes a set of building blocks for the PCE architecture from which solutions may be constructed. This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4655' />
<format type='TXT' octets='97561' target='http://www.rfc-editor.org/rfc/rfc4655.txt' />
</reference>




<reference anchor='RFC7276' target='http://www.rfc-editor.org/info/rfc7276'>

<front>
<title>An Overview of Operations, Administration, and Maintenance (OAM) Tools</title>
<author initials='T.' surname='Mizrahi' fullname='T. Mizrahi'>
<organization /></author>
<author initials='N.' surname='Sprecher' fullname='N. Sprecher'>
<organization /></author>
<author initials='E.' surname='Bellagamba' fullname='E. Bellagamba'>
<organization /></author>
<author initials='Y.' surname='Weingarten' fullname='Y. Weingarten'>
<organization /></author>
<date year='2014' month='June' />
<abstract>
<t>Operations, Administration, and Maintenance (OAM) is a general term that refers to a toolset for fault detection and isolation, and for performance measurement. Over the years, various OAM tools have been defined for various layers in the protocol stack.&lt;/t>&lt;t> This document summarizes some of the OAM tools defined in the IETF in the context of IP unicast, MPLS, MPLS Transport Profile (MPLS-TP), pseudowires, and Transparent Interconnection of Lots of Links (TRILL). This document focuses on tools for detecting and isolating failures in networks and for performance monitoring. Control and management aspects of OAM are outside the scope of this document. Network repair functions such as Fast Reroute (FRR) and protection switching, which are often triggered by OAM protocols, are also out of the scope of this document.&lt;/t>&lt;t> The target audience of this document includes network equipment vendors, network operators, and standards development organizations. This document can be used as an index to some of the main OAM tools defined in the IETF. At the end of the document, a list of the OAM toolsets and a list of the OAM functions are presented as a summary.</t></abstract></front>

<seriesInfo name='RFC' value='7276' />
<format type='TXT' octets='120925' target='http://www.rfc-editor.org/rfc/rfc7276.txt' />
</reference>



<reference anchor='RFC7011' target='http://www.rfc-editor.org/info/rfc7011'>

<front>
<title>Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information</title>
<author initials='B.' surname='Claise' fullname='B. Claise'>
<organization /></author>
<author initials='B.' surname='Trammell' fullname='B. Trammell'>
<organization /></author>
<author initials='P.' surname='Aitken' fullname='P. Aitken'>
<organization /></author>
<date year='2013' month='September' />
<abstract>
<t>This document specifies the IP Flow Information Export (IPFIX) protocol, which serves as a means for transmitting Traffic Flow information over the network.  In order to transmit Traffic Flow information from an Exporting Process to a Collecting Process, a common representation of flow data and a standard means of communicating them are required.  This document describes how the IPFIX Data and Template Records are carried over a number of transport protocols from an IPFIX Exporting Process to an IPFIX Collecting Process.  This document obsoletes RFC 5101.</t></abstract></front>

<seriesInfo name='STD' value='77' />
<seriesInfo name='RFC' value='7011' />
<format type='TXT' octets='170852' target='http://www.rfc-editor.org/rfc/rfc7011.txt' />
</reference>




<reference anchor='RFC5424' target='http://www.rfc-editor.org/info/rfc5424'>

<front>
<title>The Syslog Protocol</title>
<author initials='R.' surname='Gerhards' fullname='R. Gerhards'>
<organization /></author>
<date year='2009' month='March' />
</front>
<seriesInfo name='RFC' value='5424' />
<format type='TXT' octets='85162' target='http://www.rfc-editor.org/rfc/rfc5424.txt' />
</reference>




      <reference anchor="ALIEN">
        <front>
          <title>Design and Implementation of an OpenFlow Hardware Abstraction Layer</title>
<author initials='D.' surname='Parniewicz' fullname='Damian Parniewicz'>
<organization /></author>
<author initials='R.' surname='Corin' fullname='Roberto Doriguzzi Corin'>
<organization /></author>
<author initials='L.' surname='Ogrodowczyk' fullname='Lukasz Ogrodowczyk'>
<organization /></author>
<author initials='M.' surname='Fard' fullname='Mehdi Rashidi Fard'>
<organization /></author>
<author initials='J.' surname='Matias' fullname='Jon Matias'>
<organization /></author>
<author initials='M.' surname='Gerola' fullname='Matteo Gerola'>
<organization /></author>
<author initials='V.' surname='Fuentes' fullname='Victor Fuentes'>
<organization /></author>
<author initials='U.' surname='Toseef' fullname='Umar Toseef'>
<organization /></author>
<author initials='A.' surname='Zaalouk' fullname='Adel Zaalouk'>
<organization /></author>
<author initials='B.' surname='Belter' fullname='Bartosz Belter'>
<organization /></author>
<author initials='E.' surname='Jacob' fullname='Eduardo Jacob'>
<organization /></author>
<author initials='K.' surname='Pentikousis' fullname='Kostas Pentikousis'>
<organization /></author>

          <date month="August" year="2014"></date>
        </front>
        <seriesInfo name="In Proceedings of the ACM SIGCOMM Workshop on Distributed Cloud Computing (DCC), Chicago, Illinois, USA," value="pp. 71-76, doi 10.1145/2627566.2627577"></seriesInfo>
      </reference>

      <reference anchor="FCAPS" target="http://www.itu.int/rec/T-REC-X.700-199209-I/en">
        <front>
          <title>Management Framework For Open Systems Interconnection (OSI) For CCITT Applications</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date month="September" year="1992"></date>
        </front>
<seriesInfo name="ITU Recommendation"
	    value="X.700"></seriesInfo>

      </reference>
	  
      <reference anchor="PNSurvey99">
        <front>
          <title>A Survey of Programmable Networks</title>
<author initials='A.' surname='Campbell' fullname='Andrew T. Campbell'>
<organization /></author>
<author initials='H.' surname='De Meer' fullname='Herman G. De Meer'>
<organization /></author>
<author initials='M.' surname='Kounavis' fullname='Michael E. Kounavis'>
<organization /></author>
<author initials='K.' surname='Miki' fullname='Kazuho Miki'>
<organization /></author>
<author initials='J.' surname='Vicente' fullname='John B. Vicente'>
<organization /></author>
<author initials='D.' surname='Villela' fullname='Daniel Villela'>
<organization /></author>
          <date month="September" year="1992"></date>
        </front>
        <seriesInfo name="ACM SIGCOMM Computer Communication Review," value="Volume
			  29, Issue 2, pp. 7-23"></seriesInfo>
      </reference>
      
       <reference anchor="SDNHistory">
        <front>
          <title>The Road to SDN:  An Intellectual History
of Programmable Networks</title>
<author initials='N.' surname='Feamster' fullname='N. Feamster'>
<organization /></author>
<author initials='J.' surname='Rexford' fullname='Jennifer Rexford'>
<organization /></author>
<author initials='E.' surname='Zegura' fullname='Ellen Zegura'>
<organization /></author>
          <date year="2013"></date>
        </front>
        <seriesInfo name="ACM Queue," value="Volume 11, Issue 12"></seriesInfo>
      </reference>

      <reference anchor="OF08">
        <front>
          <title>OpenFlow: Enabling Innovation in Campus Networks</title>

<author initials='N.' surname='McKeown' fullname='Nick McKeown'>
<organization /></author>
<author initials='T.' surname='Anderson' fullname='Tom Anderson'>
<organization /></author>
<author initials='H.' surname='Balakrishnan' fullname='Hari Balakrishnan'>
<organization /></author>
<author initials='G.' surname='Parulkar' fullname='Guru Parulkar'>
<organization /></author>
<author initials='L.' surname='Peterson' fullname='Larry Peterson'>
<organization /></author>
<author initials='J.' surname='Rexford' fullname='Jennifer Rexford'>
<organization /></author>
<author initials='S.' surname='Shenker' fullname='Scott Shenker'>
<organization /></author>
<author initials='J.' surname='Turner' fullname='Jonathan Turner'>
<organization /></author>
          <date year="2008"></date>
        </front>
        <seriesInfo name="ACM SIGCOMM Computer Communication Review, Volume
			  38, Issue 2," value="pp. 69-74"></seriesInfo>
      </reference>

      <reference anchor="P1520">
        <front>
          <title>The IEEE P1520 standards initiative for programmable network interfaces</title>

<author initials='J.' surname='Biswas' fullname='J. Biswas'>
<organization /></author>
<author initials='A.' surname='Lazar' fullname='A. Lazar'>
<organization /></author>
<author initials='J.-F.' surname='Huard' fullname='J.-F. Huard'>
<organization /></author>
<author initials='K.' surname='Lim' fullname='K. Lim'>
<organization /></author>
<author initials='S.' surname='Mahjoub' fullname='S. Mahjoub'>
<organization /></author>
<author initials='L.-F.' surname='Pau' fullname='L.-F. Pau'>
<organization /></author>
<author initials='M.' surname='Suzuki' fullname='M. Suzuki'>
<organization /></author>
<author initials='S.' surname='Torstensson' fullname='S. Torstensson'>
<organization /></author>
<author initials='W.' surname='Wang' fullname='W. Wang'>
<organization /></author>
<author initials='S.' surname='Weinstein' fullname='S. Weinstein'>
<organization /></author>


          <date year="1998"></date>
        </front>
        <seriesInfo name="IEEE Communications Magazine," value="Volume 36, Issue 10, pp. 64-70"></seriesInfo>
      </reference>

      <reference anchor="NV09">
        <front>
          <title>Network Virtualization: State of the Art and Research Challenges</title>
<author initials='N.' surname='Chowdhury' fullname='N. Chowdhury'>
<organization /></author>
<author initials='R.' surname='Boutaba' fullname='R. Boutaba'>
<organization /></author>
          <date year="2009"></date>
        </front>
        <seriesInfo name="Communications Magazine, IEEE, Volume 47, Issue 7,"
		    value="pp. 20-26"></seriesInfo>
      </reference>

      <reference anchor="A4D05">
        <front>
          <title>A Clean Slate 4D Approach to Network Control and Management</title>
<author initials='A.' surname='Greenberg' fullname='Albert Greenberg'>
<organization /></author>
<author initials='G.' surname='Hjalmtysson' fullname='Gisli Hjalmtysson'>
<organization /></author>
<author initials='D.' surname='Maltz' fullname='David A. Maltz'>
<organization /></author>
<author initials='A.' surname='Myers' fullname='Andy Myers'>
<organization /></author>
<author initials='J.' surname='Rexford' fullname='Jennifer Rexford'>
<organization /></author>
<author initials='G.' surname='Xie' fullname='Geoffrey Xie'>
<organization /></author>
<author initials='H.' surname='Yan' fullname='Hong Yan'>
<organization /></author>
<author initials='J.' surname='Zhan' fullname='Jibin Zhan'>
<organization /></author>
<author initials='H.' surname='Zhang' fullname='Hui Zhang'>
<organization /></author>
          <date year="2005"></date>
        </front>
        <seriesInfo name="ACM SIGCOMM Computer Communication Review,"
 value="Volume 35, Issue 5, pp. 41-54"></seriesInfo>

      </reference>

      <reference anchor="RCP">
        <front>
          <title>Design and Implementation of a Routing Control Platform</title>
<author initials='M.' surname='Caesar' fullname='M. Caesar'>
<organization /></author>
<author initials='D.' surname='Caldwell' fullname='D. Caldwell'>
<organization /></author>
<author initials='N.' surname='Feamster' fullname='N. Feamster'>
<organization /></author>
<author initials='J.' surname='Rexford' fullname='J. Rexford'>
<organization /></author>
<author initials='A.' surname='Shaikh' fullname='A. Shaikh'>
<organization /></author>
<author initials='J.' surname='van der Merwe' fullname='J. van der Merwe'>
<organization /></author>

          <date year="2005"></date>
        </front>
        <seriesInfo name="In Proceedings of the 2nd conference on Symposium on
			  Networked Systems Design &amp; Implementation"
		    value="Volume 2, pp. 15-28"></seriesInfo>

      </reference>

      <reference anchor="Peregrine">
        <front>
          <title>Peregrine: An All-Layer-2 Container Computer Network</title>
	  <author initials='D.' surname='Chiueh' fullname='Tzi-cker Chiueh'>
<organization /></author>
<author initials='C.' surname='Tu' fullname='Cheng-Chun Tu'>
<organization /></author>
<author initials='Y.' surname='Wang' fullname='Yucheng Wang'>
<organization /></author>
<author initials='P.' surname='Wang' fullname='Pai-Wei Wang'>
<organization /></author>
<author initials='K.' surname='Li' fullname='Kai-Wen Li'>
<organization /></author>
<author initials='Y.' surname='Huang' fullname='Yu-Ming Huang'>
<organization /></author>
          <date year="2012"></date>
        </front>
        <seriesInfo name="In 
Proceedings of the 2012 IEEE 5th International Conference on Cloud Computing," value="pp. 686-693"></seriesInfo>
      </reference>

      <reference anchor="RouteFlow">
        <front>
          <title>Virtual Routers as a Service: The RouteFlow Approach Leveraging Software-Defined Networks</title>
<author initials='M.' surname='Nascimento' fullname='M. Nascimento'>
<organization /></author>
<author initials='C.' surname='Rothenberg' fullname='C. Rothenberg'>
<organization /></author>
<author initials='M.' surname='Salvador' fullname='M. Salvador'>
<organization /></author>
<author initials='C.' surname='Correa' fullname='C. Correa'>
<organization /></author>
<author initials='S.' surname='de Lucena' fullname='S. de Lucena'>
<organization /></author>
<author initials='M.' surname='Magalhaes' fullname='M. Magalhaes'>
<organization /></author>

          <date year="2011"></date>
        </front>
        <seriesInfo name="In Proceedings of the 6th International Conference on Future Internet Technologies," value="pp. 34-37"></seriesInfo>
      </reference>

      <reference anchor="SoftRouter">
        <front>
          <title>The SoftRouter Architecture</title>
<author initials='T.' surname='Lakshman' fullname='T. Lakshman'>
<organization /></author>
<author initials='T.' surname='Nandagopal' fullname='T. Nandagopal'>
<organization /></author>
<author initials='R.' surname='Ramjee' fullname='R. Ramjee'>
<organization /></author>
<author initials='K.' surname='Sabnani' fullname='K. Sabnani'>
<organization /></author>
<author initials='T.' surname='Woo' fullname='T. Woo'>
<organization /></author>
          <date year="2004"></date>
        </front>
        <seriesInfo name=" In Proceedings of the" value="ACM SIGCOMM Workshop on Hot Topics in Networking"></seriesInfo>
      </reference>

      <reference anchor="PENet">
        <front>
          <title>Protocol Efficiencies of NETCONF versus SNMP for
	  Configuration Management Functions</title>
<author initials='B.' surname='Hedstrom' fullname='Brian Hedstrom'>
<organization /></author>
<author initials='A.' surname='Watwe' fullname='Akshay Watwe'>
<organization /></author>
<author initials='S.' surname='Sakthidharan' fullname='Siddharth Sakthidharan'>
<organization /></author>

          <date year="2011"></date>
        </front>
        <seriesInfo name="Master's thesis," value="University of Colorado"></seriesInfo>
      </reference>

      <reference anchor="ESNet">
        <front>
          <title>An Empirical Study of the NETCONF Protocol</title>
<author initials='J.' surname='Yu' fullname='James Yu'>
<organization /></author>
<author initials='I.' surname='Al Ajarmeh' fullname='Imad Al Ajarmeh'>
<organization /></author>
          <date year="2010"></date>
        </front>
        <seriesInfo name="Sixth International Conference on Networking and Services," value="pp. 253-258"></seriesInfo>
      </reference>

      <reference anchor="Tempest">
        <front>
          <title>The Tempest: A Framework for Safe, Resource Assured, Programmable Networks</title>
<author initials='S.' surname='Rooney' fullname='S. Rooney'>
<organization /></author>
<author initials='J.' surname='van der Merwe' fullname='Jacobus E. van der Merwe'>
<organization /></author>
<author initials='S.' surname='Crosby' fullname='Simon A. Crosby'>
<organization /></author>
<author initials='I.' surname='Leslie' fullname='Ian M. Leslie'>
<organization /></author>
          <date year="1998"></date>
        </front>
        <seriesInfo name="Communications Magazine, IEEE," value="Volume 36, Issue 10, pp. 42-53"></seriesInfo>
      </reference>

      <reference anchor="DIOPR">
        <front>
          <title>Designing Interfaces for Open Programmable Routers</title>
<author initials='S.' surname='Denazis' fullname='Spyros Denazis'>
<organization /></author>
<author initials='K.' surname='Miki' fullname='Kazuho Miki'>
<organization /></author>
<author initials='J.' surname='Vicente' fullname='John Vicente'>
<organization /></author>
<author initials='A.' surname='Campbell' fullname='Andrew Campbell'>
<organization /></author>

          <date year="1999"></date>
        </front>
        <seriesInfo name="In &quot;Active Networks&quot;, Springer Berlin Heidelberg," value="pp. 13-24"></seriesInfo>
      </reference>


      <reference anchor="KANDOO">
        <front>
          <title>Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications</title>

<author initials='S.' surname='Yeganeh' fullname='Soheil Hassas Yeganeh'>
<organization /></author>
<author initials='Y.' surname='Ganjali' fullname='Yashar Ganjali'>
<organization /></author>
          <date year="2012"></date>
        </front>
        <seriesInfo name="In Proceedings of the first ACM SIGCOMM workshop on
			  Hot Topics in Software Defined Networks," value="pp. 19-24"></seriesInfo>
      </reference>

      <reference anchor="SDNNFV">
        <front>
          <title>Towards a Network Abstraction Model for SDN</title>

<author initials='E.' surname='Haleplidis' fullname='E. Haleplidis'>
<organization /></author>
<author initials='J.' surname='Hadi Salim' fullname='Jamal Hadi Salim'>
<organization /></author>
<author initials='S.' surname='Denazis' fullname='Spyros Denazis'>
<organization /></author>
<author initials='O.' surname='Koufopavlou' fullname='Odysseas Koufopavlou'>
<organization /></author>

          <date year="2014"></date>
        </front>
        <seriesInfo name="Journal of Network and Systems Management: Special
			  Issue on Management of Software Defined Networks,"
		    value="pp. 1-19"></seriesInfo>
      </reference>
      


      <reference anchor="OpenFlow" target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf">
        <front>
          <title>The OpenFlow Switch Specification, Version 1.4.0</title>
          <author>
            <organization>Open Networking Foundation</organization>
          </author>
          <date month="October" year="2013"></date>
        </front>
      </reference>

      <reference anchor="REST">
        <front>
          <title>Chapter 5: Representational State Transfer (REST)</title>

          <author>
            <organization>Fielding, Roy</organization>
          </author>
          <date year="2000"></date>
        </front>
<seriesInfo name="in Disseration" value="&quot;Architectural Styles and the
					 Design of Network-based Software
					 Architectures&quot;"></seriesInfo>
      </reference>

      <!-- CORBA -->

      <reference anchor="CORBA" target="http://www.omg.org/spec/CORBA/3.3/">
        <front>
          <title>CORBA Version 3.3</title>
          <author>
            <organization>Object Management Group</organization>
          </author>
          <date month="November" year="2012"></date>
        </front>
      </reference>
      
      <!-- ITU -->

      <reference anchor="ITUATM" target="http://www.itu.int/rec/T-REC-I.361-199902-I/en">
        <front>
          <title>B-ISDN ATM Layer Specification</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date year="1990"></date>
        </front>
<seriesInfo name="ITU Recommendation" value="I.361"></seriesInfo>
      </reference>

      <reference anchor="ITUSS7" target="http://www.itu.int/rec/T-REC-Q.700-199303-I/e">
        <front>
          <title>Introduction to CCITT Signalling System No. 7</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date year="1993"></date>
        </front>
<seriesInfo name="ITU Recommendation" value="Q.700"></seriesInfo>
      </reference>

      <reference anchor="ITUSG13" target="http://www.itu.int/en/ITU-T/studygroups/2013-2016/13/Pages/default.aspx">
        <front>
          <title>ITU-T Study Group 13: Future networks including cloud
	  computing, mobile and next-generation networks</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date></date>
        </front>
      </reference>

      <reference anchor="ITUSG11" target="http://www.itu.int/en/ITU-T/studygroups/2013-2016/11/Pages/default.aspx">
        <front>
          <title>ITU-T Study Group 11: Protocols and test specifications</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date></date>
        </front>
      </reference>

      <reference anchor="ITUY3300" target="http://www.itu.int/rec/T-REC-Y.3300-201406-I/en">
        <front>
          <title>Framework of software-defined networking</title>
          <author>
            <organization>ITU</organization>
          </author>
          <date month="June" year="2014"></date>
        </front>
<seriesInfo name="ITU Recommendation" value="Y.3300"></seriesInfo>
      </reference>

    <!-- ONF -->

      <reference anchor="ONFArch" target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/TR_SDN_ARCH_1.0_06062014.pdf">
        <front>
          <title>SDN Architecture, Version 1</title>
          <author>
            <organization>Open Networking Foundation</organization>
          </author>
          <date month="June" year="2014"></date>
        </front>
      </reference>

      <reference anchor="OF-CONFIG" target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow-config/of-config-1-1-1.pdf">
        <front>
          <title>OpenFlow Management and Configuration Protocol (OF-Config 1.1.1)</title>
          <author>
            <organization>Open Networking Foundation</organization>
          </author>
          <date day="23" month="March" year="2013"></date>
        </front>
      </reference>
      
      <!-- SDN Surveys -->
      <reference anchor="SLTSDN">
        <front>
          <title>A Survey and a Layered Taxonomy of Software-Defined Networking</title>
<author initials='Y.' surname='Jarraya' fullname='Yosr Jarraya'>
<organization /></author>
<author initials='T.' surname='Madi' fullname='Taous Madi'>
<organization /></author>
<author initials='M.' surname='Debbabi' fullname='Mourad Debbabi'>
<organization /></author>
          <date year="2014"></date>
        </front>
        <seriesInfo name="IEEE Communications Surveys and Tutorials,"
		    value="Volume 16, Issue 4, pp. 1955-1980"></seriesInfo>
      </reference>

      <reference anchor="SDNACS">
        <front>
          <title>Software-Defined Networking: A Comprehensive Survey</title>
<author initials='D.' surname='Kreutz' fullname='Diego Kreutz'>
<organization /></author>
<author initials='F.' surname='Ramos' fullname='Fernando M. V. Ramos'>
<organization /></author>
<author initials='P.' surname='Verissimo' fullname='Paulo Verissimo'>
<organization /></author>
<author initials='C.' surname='Rothenberg' fullname='Christian Esteve Rothenberg'>
<organization /></author>
<author initials='S.' surname='Azodolmolky' fullname='Siamak Azodolmolky'>
<organization /></author>
<author initials='S.' surname='Uhlig' fullname='Steve Uhlig'>
<organization /></author>
          <date year="2014"></date>
        </front>
        <seriesInfo name="Networking and Internet Architecture (cs.NI)," value="arXiv:1406.0440"></seriesInfo>
      </reference>
      
      <reference anchor="SDNSurvey">
        <front>
          <title>A Survey of Software-Defined Networking: Past, Present, and
	  Future of Programmable Networks</title>
<author initials='B.' surname='Nunes' fullname='Bruno Astuto A. Nunes'>
<organization /></author>
<author initials='M.' surname='Mendonca' fullname='Marc Mendonca'>
<organization /></author>
<author initials='X.' surname='Nguyen' fullname='Xuan-Nam Nguyen'>
<organization /></author>
<author initials='K.' surname='Obraczka' fullname='Katia Obraczka'>
<organization /></author>
<author initials='T.' surname='Turletti' fullname='Thierry Turletti'>
<organization /></author>
          <date year="2014"></date>
        </front>
        <seriesInfo name="IEEE Communications Surveys and Tutorials," value="DOI:10.1109/SURV.2014.012214.00180"></seriesInfo>
      </reference>

      <!-- Security -->

      <reference anchor="SDNSecurity">
        <front>
          <title>Towards Secure and Dependable Software-Defined Networks</title>
<author initials='D.' surname='Kreutz' fullname='Diego Kreutz'>
<organization /></author>
<author initials='F.' surname='Ramos' fullname='Fernando Ramos'>
<organization /></author>
<author initials='P.' surname='Verissimo' fullname='Paulo Verissimo'>
<organization /></author>
          <date year="2013"></date>
        </front>
        <seriesInfo name="In Proceedings of the second ACM SIGCOMM workshop on Hot Topics in Software Defined Networking," value="pp. 55-60"></seriesInfo>
      </reference>

      <reference anchor="SDNSecServ">
        <front>
          <title>SDN Security: A Survey</title>

<author initials='S.' surname='Scott-Hayward' fullname='Sandra Scott-Hayward'>
<organization /></author>
<author initials='G.' surname='O&lsquo;Callaghan' fullname='Gemma O&lsquo;Callaghan'>
<organization /></author>
<author initials='S.' surname='Sezer' fullname='Sakir Sezer'>
<organization /></author>

          <date year="2013"></date>
        </front>
        <seriesInfo name="In IEEE SDN for Future Networks and Services (SDN4FNS)," value="pp. 1-7"></seriesInfo>
      </reference>

      <reference anchor="SDNSecOF">
        <front>
          <title>OpenFlow: A Security Analysis</title>
<author initials='R.' surname='Kloti' fullname='R. Kloti'>
<organization /></author>
<author initials='V.' surname='Kotronis' fullname='Vasileios Kotronis'>
<organization /></author>
<author initials='P.' surname='Smith' fullname='Paul Smith'>
<organization /></author>
          <date month="October" year="2013"></date>
        </front>
        <seriesInfo name="21st IEEE International Conference on Network
			  Protocols (ICNP)" value="pp. 1-6"></seriesInfo>
      </reference>

      <!-- CAP Theorem -->
      <reference anchor="CAPGL">
        <front>
          <title>Brewer's Conjecture and the Feasibility of Consistent,
	  Available, Partition-Tolerant Web Services</title>
<author initials='S.' surname='Gilbert' fullname='Seth Gilbert'>
<organization /></author>
<author initials='N.' surname='Lynch' fullname='Nancy Ann Lynch'>
<organization /></author>
          <date year="2002"></date>
        </front>
        <seriesInfo name="ACM SIGACT News, Volume 33, Issue 2," value="pp. 51-59"></seriesInfo>
      </reference>

      <reference anchor="CAPBR">
        <front>
          <title>Towards Robust Distributed Systems</title>
<author initials='E.' surname='Brewer' fullname='Eric Brewer'>
<organization /></author>
          <date year="2000"></date>
        </front>
        <seriesInfo name="In Proceedings of the Symposium on Principles of Distributed Computing" value="(PODC)"></seriesInfo>
      </reference>

      <reference anchor="CAPFN">
        <front>
          <title>CAP for Networks</title>

<author initials='A.' surname='Panda' fullname='Aurojit Panda'>
<organization /></author>
<author initials='C.' surname='Scott' fullname='Colin Scott'>
<organization /></author>
<author initials='A.' surname='Ghodsi' fullname='Ali Ghodsi'>
<organization /></author>
<author initials='T.' surname='Koponen' fullname='Teemu Koponen'>
<organization /></author>
<author initials='S.' surname='Shenker' fullname='Scott Shenker'>
<organization /></author>

          <date year="2013"></date>
        </front>
        <seriesInfo name="In Proceedings of the second ACM SIGCOMM workshop on
			  Hot Topics in Software Defined Networking,"
		    value="pp. 91-96"></seriesInfo>
      </reference>
      
      <!-- NFV -->
      <reference anchor="NFVArch" 
target="http://www.etsi.org/deliver/etsi_gs/nfv/001_099/002/01.01.01_60/gs_nfv002v010101p.pdf">
        <front>
          <title>Network Functions Virtualisation (NFV): Architectural Framework</title>
          <author>
            <organization>ETSI</organization>
          </author>
          <date month="October" year="2013"></date>
        </front>
        <seriesInfo name="ETSI GS"
                    value="NFV 002"></seriesInfo>
      </reference>
      

      <reference anchor="RINA">
        <front>
          <title>Networking is IPC: A Guiding Principle to a Better Internet</title>
<author initials='J.' surname='Day' fullname='J. Day'>
<organization /></author>
<author initials='I.' surname='Matta' fullname='I. Matta'>
<organization /></author>
<author initials='K.' surname='Mattar' fullname='K. Mattar'>
<organization /></author>
          <date year="2008"></date>
        </front>
        <seriesInfo name="In Proceedings of the 2008 ACM CoNEXT Conference,"
		    value="Article No. 67"></seriesInfo>
      </reference>

      <reference anchor="PiNA">
        <front>
          <title>Patterns in Network Architecture: A Return to Fundamentals</title>
<author initials='J.' surname='Day' fullname='John Day'>
<organization /></author>
          <date year="2008"></date>
        </front>
        <seriesInfo name="Prentice Hall," value="ISBN 0132252422"></seriesInfo>
      </reference>
      
      <!-- SDN Controllers -->

      <reference anchor="Beacon">
        <front>
          <title>The Beacon OpenFlow Controller</title>
<author initials='D.' surname='Erickson' fullname='David Erickson'>
<organization /></author>

          <date year="2013"></date>
        </front>
        <seriesInfo name="In Proceedings of the second ACM SIGCOMM workshop on Hot Topics in Software Defined Networking," value="pp. 13-18"></seriesInfo>
      </reference>

      <reference anchor="NOX">
        <front>
          <title>NOX: Towards an Operating System for Networks</title>
<author initials='N.' surname='Gude' fullname='Natasha Gude'>
<organization /></author>
<author initials='T.' surname='Koponen' fullname='Teemu Koponen'>
<organization /></author>
<author initials='J.' surname='Pettit' fullname='Justin Pettit'>
<organization /></author>
<author initials='B.' surname='Pfaff' fullname='Ben Pfaff'>
<organization /></author>
<author initials='M.' surname='Casado' fullname='Martin Casado'>
<organization /></author>
<author initials='N.' surname='McKeown' fullname='Nick McKeown'>
<organization /></author>
<author initials='S.' surname='Shenker' fullname='Scott Shenker'>
<organization /></author>
          <date month="July" year="2008"></date>
        </front>
        <seriesInfo name="ACM SIGCOMM Computer Communication Review, Volume
			  38, Issue 3," value="pp. 105-110"></seriesInfo>
      </reference>
            
    </references>

<!--[rfced] FYI - the following updates will be applied in
post-xml2rfc processing in accordance with RFC 7322.

- Removal of the "Appendix" designation from the heading of a
Contributors or Acknowledgements section.

- Addition of the Author(s) Address(es) section to the ToC.

-->


  <section anchor="Acknowledgements" title="Acknowledgements">
    <t>The authors would like to acknowledge Salvatore Loreto and Sudhir
    Modali for their contributions in the initial discussion on the SDNRG
    mailing list as well as their document-specific comments; they helped put
    this document in a better shape.</t>
	
    <t>Additionally, we would like to thank (in alphabetical order) Shivleela
    Arlimatti, Roland Bless, Scott Brim, Alan Clark, Luis Miguel Contreras
    Murillo, Tim Copley, Linda Dunbar, Ken Gray, Deniz Gurkan, Dave Hood,
    Georgios Karagiannis, Bhumip Khasnabish, Sriganesh Kini, Ramki Krishnan,
    Dirk Kutscher, Diego Lopez, Scott Mansfield, Pedro Martinez-Julia, 
    David E.&nbsp;Mcdysan, Erik Nordmark, Carlos Pignataro, Robert Raszuk, Bless Roland,
    Francisco Javier Ros Munoz, Dimitri Staessens, Yaakov Stein, Eve Varma,
    Stuart Venters, Russ White, and Lee Young for their critical comments and
    discussions at IETF 88, IETF 89, and IETF 90 and on the SDNRG
    mailing list, which we took into consideration while revising this
    document.</t>

    
    <t>We would also like to thank (in alphabetical order) Spencer Dawkins and Eliot Lear for their IRSG reviews, which further refined this document.</t>

    <t>Finally, we thank Nobo Akiya for his review of the section on BFD,
    Julien Meuric for his review of the section on PCE, and Adrian Farrel and
    Benoit Claise for their IESG reviews of this document.</t>

    
    <t>Kostas Pentikousis is supported by <xref target="ALIEN"/>, a research project partially funded by the European Community under the Seventh Framework Program (grant agreement no. 317880). The views expressed here are those of the author only. The European Commission is not liable for any use that may be made of the information in this document.</t>
  </section>


  <section anchor="Contributors" title="Contributors">
    <t>The authors would like to acknowledge (in alphabetical order) the
    following persons as contributors to this document. They all provided
    text, pointers, and comments that made this document more complete:

<list style="symbols">
    <t>Daniel King for providing text related to PCEP.</t>
    <t>Scott Mansfield for information regarding current ITU work on SDN.</t>
    <t>Yaakov Stein for providing text related to the CAP theorem and SDO-related information.</t>
    <t>Russ White for text suggestions on the definitions of control,
    management, and application.</t>
</list>
</t>
  </section>

  </back>
</rfc>
