Internet DRAFT - draft-hares-forces-vs-openflow

draft-hares-forces-vs-openflow



Internet Draft                                                  S.Hares 
Intended status: Informational                                   Huawei  
Expires: January 6, 2013                                                
                                                           July 6, 2012 
 
                                    
          Analysis of Comparisons between OpenFlow and ForCES 
                 draft-hares-forces-vs-openflow-00.txt 


Status of this Memo 

   This Internet-Draft is submitted in full conformance with the 
   provisions of BCP 78 and BCP 79.  

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 

   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other 
   documents at any time.  It is inappropriate to use Internet-
   Drafts as reference material or to cite them other than as "work 
   in progress." 

   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt 

   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 

   This Internet-Draft will expire on January 6, 2013. 

Copyright Notice 

   Copyright (c) 2012 IETF Trust and the persons identified as the 
   document authors. All rights reserved. 

   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document.  Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document. 

Abstract 


 
 
 
Hares                   Expires March 12, 2013                 [Page 1] 
 
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   While both ForCES and OpenFlow follow the basic idea of 
   separations of forwarding plane and control plane in network 
   elements, they are technically different. ForCES specification 
   contains both a modeling language [RFC5812] which allows flexible 
   definition of the Flow tables and flow logic. ForCES flow logic 
   include Logical Functional Blocks (LFBs) connected in flow logic 
   that is described in logic of direct graphs augmented by passage 
   of Metadata and grouping concepts. 

   OpenFlow's specifications contain a specific instantiation of 
   Flow tables and flow logic which has emerged from the research 
   community theories.  OpenFlow's logic varies based on the 
   revision of the specification (OpenFlow-Paper [McKeown2008], 
   OpenFlow Switch Specification 1.0 [OpenFlow1-0], OpenFlow 1.1 
   [OpenFlow-1.1] Open Configuration 1.0 [OpenFlowConfig-1.0]).  

Table of Contents 

    
   1. Introduction...................................................3 
      1.1. ForcES Introduction.......................................4 
      1.2. OpenFlow Introduction.....................................4 
   2. Definitions....................................................5 
      2.1. New Common Configurations.................................6 
      2.2. Forces Definitions........................................8 
      2.3. Open Flow Definitions....................................10 
   3. Comparisons between ForCES and OpenFlow.......................12 
      3.1. Difference in Historical setting.........................12 
      3.2. Difference in Goals......................................14 
      3.3. Difference in Architectural Requirements.................14 
         3.3.1. ForCES System Building Blocks.......................15 
         3.3.2. OpenFlow Building blocks............................17 
            3.3.2.1. Match Fields in OFS............................18 
            3.3.2.2. Flow Logic - Flow Table and Group tables.......18 
         3.3.3. ForCES FE types.....................................22 
         ForCES and OpenFlow FEs can operate either new switching 
         entities or integrated with existing processing as a hybrid. 
         In OFS-1.2, the Ships-in-the-Night (SIN) mode divides 
         existing ports into groups controlled by specific ports 
         (see figure x) or VLANs (figure-x).........................22 
         3.3.4. ForCES Pre-Association..............................23 
         3.3.5. Architectural requirements..........................25 
         3.3.6. ForCES versus OpenFlow - A Central Controller.......33 
      3.4. Difference in Forwarding Model...........................33 
         3.4.1. Looping.............................................34 
         3.4.2. Handling unicast and multicast......................35 
      3.5. Difference in Logical Forwarding Block Libraries.........36 
 
 
Hares, et al.          Expires November, 6 2012                [Page 2] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

      3.6. Difference in Protocol Interface.........................36 
         3.6.1    Secure Transport..................................37 
   4. Use of ForCES and OFS in Applications.........................41 
   5. The use of ForCES or OpenFlow in S(D)N or CSO/SOP.............41 
   6. Security Considerations.......................................42 
   7. IANA Considerations...........................................42 
   8. Conclusions...................................................42 
   9. References....................................................43 
      9.1. Normative References.....................................43 
      9.2. Informative References...................................43 
   10. Acknowledgments..............................................44 
    
1. Introduction 

   This document analyzes the differences between OpenFlow and 
   ForCES technically from the aspects of goals, architecture, 
   forwarding models, forwarding policy, control plane interaction, 
   configuration of nodes, and applications (firewalls, load-
   balancers, High-availability nodes). This informational document 
   compares OpenFlow and Forces as of March, 2012 seeking to provide 
   clarity for other discussions of controller/forwarding split, 
   Software Defined Networking, Software Driven Networking, Cloud 
   Service Oriented networking (CSO), and a host of orchestrators 
   for virtualized network devices.  

   A fellow Engineer provided inspiration for this deeper comparison 
   by saying: "OpenFlow-0 is the Diff-Serv Tspec, OpenFlow-1.0 is 
   Forces--, and OpenFlow 1.1 is Forces++." Jamal Salim suggests 
   Open Flow 1.1 does not have the same functionality[Jamal-01].  

   While this summary brings the expert listener quickly into heart 
   of the issues, this document examines:  

   -  Is OpenFlow Switch 1.1.0 really "ForCES++", and "is the group 
     table safe ++ logic? What direction does Open Flow Switch 1.2 
     and 1.3 take us?  

   -  Where does Open Flow's Config fit in the picture?  

   -  How does this help us get to Clouds Service Oriented Networks 
     (CSO) enable by Software defined networks (SDN) or software 
     driven networks (SDN)?   

   And that, as the saying goes is the "rest of the story" of this 
   draft.  Here's hoping the readers of this document will decide 
   and argue with the author to refine the next-generation of 
   hardware devices.   
 
 
Hares, et al.          Expires November, 6 2012                [Page 3] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

1.1. ForcES Introduction  

   ForCES (Forwarding and Control Element Separation) work in IETF 
   has defined a new environment to build network devices that split 
   the network devices into control plane and forwarding plane into 
   units. For example, a router could be considered a network 
   element (NE) with a control plane running router protocol and a 
   data plane forwarding IP traffic.  

   The drive to have ForCES NE device split arose from the desire to 
   build hardware forwarding blades out of flexible hardware 
   components. These hardware devices included Network Processors 
   and network specific ASICs.  

   The ForCES environment defines requirements [RFC3654], goals 
   [RFC3565], architecture and protocol requirements [RFC3654], a 
   controller-forwarder communication protocol [RFC 5810]. ForCES 
   also describes a policy on how to building the forwarding engine 
   out of a set of logical functional blocks (LFBs)which are 
   connected as a directed graph [RFC5812]. ForCES allows many 
   different Forwarding Engines (FE) to linked to Controller Engines 
   (CE) via the protocols. ForCES provides a modeling language [RFC-
   5812] to describe these FE devices so that controllers can load 
   control the devices, load forwarding tables, and keep track of 
   statistics. ForCES RFCs also define how the ForCES protocol runs 
   over SCTP [RFC5811.     

1.2. OpenFlow Introduction  

   OpenFlow[McKeown2001, p. 1]] arose out of the frustration that 
   network research projects felt at not being able to experiment 
   with new protocols on large-scale networks. Experimentation on 
   research networks did not have a large enough scale to provide a 
   reasonable test-bed for new research ideas for the Internet. Pure 
   commercial networks would not allow experimental protocols, and 
   commercial router vendors took 3-5 years to create a new protocol 
   features. The OpenFlow researchers suggested an alternative to 
   allow the research to creating a slice out of commercial network 
   to try out new ideas for network.    

   OpenFlow's initial paper grew into OpenFlow Switch Specification 
   versions 1.0 [OFS-1.0], 1.1 [OFS-1.1], 1.2[OFS-1.2], 1.3[OFS-1.3], 
   and (likely) 1.4 [OFS-1.4]. Additionally a Config and Management 
   Protocol version 1.0[OFC-1.0] and version 1.1 [OFC-1.1], and a 
   set of papers and application notes on implementations.  A hybrid 
   Specification [OFHy-1.0] suggests how Open Flow may be combined 
   with existing network OpenFlow switches which mix existing 
 
 
Hares, et al.          Expires November, 6 2012                [Page 4] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   network devices (routers/switches) with OpenFlow controlled 
   switches in either a Ships-in-the Night (SIN) or a hybrid model    

   OpenFlow's host of specifications and ForCES flexible 
   reprogramming of the network element architecture can be 
   considered the first wave of Software-Defined Networking (SDfN) 
   where software can alter how the forwarding engine's logic 
   operates. This work arises out of the GENI research 
   [GENI][McKeown2008]. The current industry discussion regarding 
   Software-Defined Networking (SDfN) or Software-Driven Networking 
   (SDrN), Network Virtualized Overlays [NVO3], Service-Oriented 
   Protocols (SoP)[SoP] or network orchestrators of Cloud Service 
   Oriented Network (CSO)forwarding [CSO-Arch] have a great deal 
   confusions as they apply the terms to ForCES and OpenFlow. Rather 
   than carefully define each of these terms explicitly at the 
   outset, we will give brief expansions of the abbreviations and 
   return to the definitions later in the draft after examining the 
   FORCES draft.   

   This document will examine ForCES and OpenFlow goals, 
   architecture, forwarding conceptual models, Controller-forwarder 
   communication mechanisms and protocols, the policies in the 
   loading of forwarding state, configurations of nodes, and sanity 
   checking of the forwarding.  

   These basic concepts will be then examined in terms of specific 
   implementations (switch, hybrid router/switch, wireless, load-
   balancer, firewall) as described by ForCES and OpenFlow reports.  

   Finally, the document will return to defining S[*]N, SOP, and 
   Cloud-Oriented Services (CSO).  

2.  Definitions  

   Definitions used in this document 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and 
   "OPTIONAL" in this document are to be interpreted as described in 
   RFC-2119 [RFC2119 

   The following RFC2119 definitions used in this document are:  

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and 
   "OPTIONAL" in this document are to be interpreted as described in 
   RFC-2119 [RFC2119].  
 
 
Hares, et al.          Expires November, 6 2012                [Page 5] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   ForCES definitions relevant to this documents discussion are 
   taken from [RFC3654][RFC3746][RFC5810] as noted below. The quoted 
   italized definitions come from the ForCES RFC, and the non-quoted 
   text applies ForCES RFC text to this document.  

2.1. New Common Configurations 

   Controlling Entity (CE): is defined as an entity which remote 
   controls the forwarding engine. This Entity can be either a 
   ForCES CE or a Open Flow Controller.  

   Controlling Entity Manager (CE-MGR): This documents loosens the 
   ForCES CE-Manager definition to allow Open Flow and ForCES to be 
   compared. This document defines the CE manager as a logical 
   entity (distributed or located in physical or virtual device) 
   which controls which controllers attach to which logical 
   Forwarding Entities.  The Controllers can be in the same physical 
   switch/device in the control plane or other logical software. A 
   CE-Mgr may also be within a VM hypervisor, a VM hypervisor 
   manager, or other virtual software. The CE-Mgr logical function 
   may be distributed across many CE as a defined function. This 
   definitional Allows both ForCES CE-Mgrs and Open Flow Controller 
   collaboration/management via coordinated remote configuration of 
   OF Capable Switches.  

   Controlled Router-Switch (CRSW): A Controlled Switch is a network 
   entity performing switching capability that is controlled by 
   remotely by either the ForCES protocol (FP) or the Open Flow 
   Protocol (OFP). This switch can perform IP routing, MPLS 
   switching, Trill Switching or Layer 2 Switching.   

   Forwarding Entity (FE): is defined as an entity which forwarding 
   packets or frames under the control of the CE.  This entity can 
   be an ForCES FE (F-FE) or an Open Flow Capable Switch (OF-CS). An 
   Open Flow Capable switch can either be a hybrid switch or a Open-
   Flow Only switch.   

   FE Manager (FE-MGR): The FE-Manager controls the FEs assignments. 
   This document defines FE-Manager's logical entity may be a 
   logical software process residing within local switch/device in 
   the control plane or management plane. The FE-Mgr can also within 
   a VM hypervisor, or a VM hypervisor manager, or other virtual 
   software. The FE-Mgr can be a remote service managing the 
   forwarding engine.  The Open Flow Configuration [OFC-1.0] 
   Configuration Service point with its logical configuration 
   function may also have a FE-MGR function. This FE-Mgr capability 
   is an capability outside the [OFC-1.0] specification.     
 
 
Hares, et al.          Expires November, 6 2012                [Page 6] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Pre-Association Phase (Pre-A): This document defines a Pre-
   Association Phase (Pre-A) as the period during which a CE-
   Management(Forces CE-Mgr or OF controller groups) and FE-Managers 
   (Forces FE-MGR (F-FE-MGR)or OF-CS management) determines which 
   Controlling entity (CE)controls which Forwarding Entity (FE). 
 
 
Hares, et al.          Expires November, 6 2012                [Page 7] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

2.2.  Forces Definitions 

   Force Forwarding Element (F-FE) - "A logical entity that 
   implements the ForCES Protocol.  FEs use the underlying hardware 
   to provide per-packet processing and handling as directed by a 
   CE via the ForCES Protocol." [RFC3654] ForCES forwarding FE 
   supports forwarding rules insertion.   

   ForCES Control Element (F-CE) - "A logical entity that implements 
   the ForCES Protocol and uses it to instruct one or more FEs on 
   how to process packets. CEs handle functionality such as the 
   execution of control and signaling protocols." [RFC3654] The 
   ForCES CE controller may be located within the same hardware box 
   on a different blade or across an Ethernet connection, or across 
   a L3 Link (if security used).   

   ForCES Network Element(F-NE)- "An entity composed of one or more 
   CEs and one or more FEs. To entities outside a NE, the NE 
   represents a single point of management. An NE usually hides its 
   internal organization from external entities and represents a 
   single point of management to entities outside the NE." [RFC3654]  
   The NE's single point of management can be at the IP layer, the 
   Ethernet layer, and at a virtual layer. In this document, the 
   network element is examined as being the set of network functions 
   in the hardware that collaborates to act like a switch.  This 
   less strict definition allows ForCES to be compared with the Open 
   Flow work. 

   ForCES Pre-Association Phase (F-Pre-A): ForCES defines the Pre-
   Association Phase (F-Pre-A) as "the period of time during which a 
   FE Manager(see below)and a CE Manager (see below) are determining 
   which FE is a part of the network element" [RFC3654].  

   FE Manager(F-FE-Mgr)- ForCES (F-FE-Mgr)is "A logical entity that 
   operates in the Pre-Association Phase and is responsible for 
   determining to which CE(s) a FE should communicate. This process 
   is called CE Discovery and may involve the FE manager learning 
   capabilities of available CEs." [RFC3654]  

   CE Manager (CE-Mgr) - Forces CE-MGR[F-CE-Mgr] is "A logical 
   entity that operates in the pre-associaation phase and is 
   responsible for determining to which FE(s) a CE should 
   communicate. This process is called FE discovery and may involve 
   the CE manager learning the capabilities of available FEs. The CE 
   manager may use anything from statics configuration to a pre-
   association phase protocol." [RFC3654]  

 
 
Hares, et al.          Expires November, 6 2012                [Page 8] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   ForCES Protocol (ForCES-Proto) - "While there may be multiple 
   protocols used within the overall ForCES architecture, the term 
   "ForCES protocol" refers to only the post-association phase 
   protocol." [RFC3654] The ForCES protocol operates between the "Fp 
   reference points" of the ForCES architecture (as shown in figure 
   1) [RFC5810]. "Basically, the ForCES protocol works in a master-
   slave mode in which the FEs are slaves and the CEs are 
   masters." [RFC5810] The location and exact instantiation of the 
   CE logical entities associated with the FE logical entity is 
   flexible. The CE entities could reside on a process on a local 
   switch communicating to other process off the local switch.  

   ForCES Protocol Layer (ForCES PL) - "A layer in the ForCES 
   protocol architecture that defines the ForCES protocol messages, 
   the protocol state transfer scheme, and the ForCES protocol 
   architecture itself (including requirements of ForCES TML)" 
   [RFC5810] This layer is defined in RFC5810.  

   ForCES Protocol Transport Mapping Layer (ForCES TML) - "A layer 
   in ForCES protocol architecture that uses the capabilities of 
   existing transport protocols to specifically address protocol 
   message transportation issues, such as how the protocol 
   messages are mapped to different transport media (like TCP, IP, 
   ATM, Ethernet, etc.), and how to achieve and implement 
   reliability, multicast, ordering, etc.   The ForCES TML 
   specifications are detailed in separate ForCES   documents, one 
   for each TML." [RFC5810, p. x]. The ForCES TMLs focused on are 
   STCP [STCP] and SSL[SSL].  TM handles transport of messages 
   [reliable or non-reliable], "congestion control", "multicast", 
   ordering, and other things [RFC5810, p. 14].  

   LFB (Logical Function Block) - The basic building block that is 
   operated on by the ForCES protocol. The LFB is a well-defined, 
   logically separable functional block that resides in an FE and is 
   controlled by the CE via the ForCES protocol. The LFB may reside 
   at the FE's data path and process packets or may be purely an FE 
   control or configuration entity that is operated on by the CE. 
   Note that the LFB is a functionally accurate abstraction of the 
   FE's processing capabilities, but not a hardware-accurate 
   representation of the FE implementation. 

   LFB Class and LFB Instance - LFBs are categorized by LFB classes. 
   An LFB instance represents an LFB class (or type) existence.  
   There may be multiple instances of the same LFB class (or type) 
   in an FE.  An LFB class is represented by an LFB class ID, and an 
   LFB instance is represented by an LFB instance ID.  As a result, 

 
 
Hares, et al.          Expires November, 6 2012                [Page 9] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   an LFB class ID associated with an LFB instance ID uniquely 
   specifies an LFB existence. 

   Physical Forwarding Element - The physical element that forwards 
   the packets.  

2.3.  Open Flow Definitions  

   Open Flow (OF): [McKeown-xx] defines OF as a "way for researchers 
   to run experiments in networks they use every day"[McKeown-2008, 
   p.1].  

   Open Flow Action [OF-Act]: [OF-1.1.0] defines an OF-Act as an 
   action that may: "forward the packet to a port", or modifies the 
   packet".  Actions may be specified in "Open Flow Instruction" 
   [OF-Inst] in Flow Table Entry or "action buckets in Group Table 
   Entry"[OF-1.1.0,p.4]. 

   Open Flow Action Set [OF-ActSet]: [OF-1.1] defines an OF-ActSet 
   as "a set of actions associated with the packet that are 
   accumulated while the packet is processed by each table, and are 
   executed when the packet exits the processing Pipeline."[OF-1.1.0, 
   p. 5]. 

   Open Flow Capable switch [OF-CS]: [One or more physical or 
   virtual switch device which can act as an operational context for 
   an Open Flow Logical Switch [OF-LS]. A OF-CS hosts an Open Flow 
   Data Path [OF-DP].  

   Open Flow Configuration and Management Protocol [OFCMP]: [OFC-1.0] 
   states the [OFCMP-1.0]enables the remote configuration of Open 
   Flow Data Path (OF-DP). The OFCMP allows a controller to 
   configure the OF-DP on the Open Flow Logical Switch (OF-LS) "so 
   that the controller can communicate and contro" the OF-LS via 
   Open Flow Protocol (OFP). The OFCMP allows dynamic association of 
   resources with OF-LS in an OF-CS. [OFC-1.0] defines the protocol, 
   but not the resource allocation mechanisms.  

   Open Flow Configuration Point (OFCPT): [OFC-1.0] defines an OFCPT 
   as "a service" which sends OFCMP messages to a OF-CS with an OF-
   LS inside.  

   Open Flow Controller [OF-CTLER]: [McKeown-2008] defines the OF-
   CTLER as a "controller that adds and deletes Flow entries on 
   behalf of experiments" [McKeown-2008, p. 3].  


 
 
Hares, et al.          Expires November, 6 2012               [Page 10] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Open Flow Datapath [OF-DP]: [OFC-1.0] defines OF-DP as an 
   abstraction called Open Flow Logical Switch [OF-LS].  

   Open Flow Dedicated Switches [OF-DS]: [McKeown-2008] defines OF-
   DS as a "dumb datapath element that forwards packets between 
   ports as defined by a remote process" [McKeown-2008, p3.] The 
   Open Flow process programs the forwarding engine for this dumb 
   datapath switch. 

   Open Flow Enable Switches [OF-ES]: [McKeown-2008] defines OF-ES 
   as "commercial switches, routers or access points" enhanced by 
   adding the OF feature 

   Open Flow Feature [OF-Feature]: Open Flow[McKeown2008] and [OF-
   1.0.0] defines the OF-Feature as adding the features of an Open 
   Flow Logical Switch [OF-LS]. These features are the Open Flow 
   "Flow Tables", "Secure Channel that connects the switch to the 
   controller", and "the Open Flow Protocol" [McKeown-2008, p. 
   3][OF-1.0.0, p.2].  

   Open Flow's Flow Table (OF-FT): [McKeown-2008] defines a Flow 
   table in OF as having "an action with every flow table entry to 
   tell the switch how to process the flow" [McKeown-2008, p. 2]  

   Open Flow's Flow Table Entry (OF-FTE): [McKeown-2008], [OF-1.0.0], 
   [OF-1.1.1], [OF-1.1.2], and [OF-1.1.3] define the specific of an 
   single entry in a flow table. See Section x.x for a detailed 
   comparison of this entry.  

   Open Flow Group (OF-G): [OF-1.2] defines an OF group (OF-G) as a 
   list of Open Flow "action buckets" and "a means to choose one or 
   more buckets to apply on a per-packet basis" [OF-1.2, p. 5].   

   Open Flow Group Table (OF-GT):  

   Open Flow Logical Switch[OF-LS]: OFC-1.0 defines the OF-LS as an 
   abstraction of the "open flow datapath".  

   Open Flow Packet (OF-Pkt): [OF-1.1.0] defines OF-Pkt as "ethernet 
   frame including header and payload" [OF-1.1.0, p. 4].  

   Open Flow Pipeline [OF-PipeLine]: [OF-1.2] defines OF-Pipeline as 
   "a set of linked tables that matching, forwarding, and  

   Open Flow Port [OF-Port]: [OF-1.2] defines an Open Flow port as a 
   place where packets enter and exit the Open Flow Pipeline.  

 
 
Hares, et al.          Expires November, 6 2012               [Page 11] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Open Flow Protocol (OFP): OF 1.0 defines "an open protocol to 
   program the flow table in switches and routers" in which "a 
   controller communicates with a switch"[McKeown-2008,p. 2-3].  

   Open Flow Switch (OFS): [McKeown-2008] defines an Open Flow 
   Switch as a ethernet switch with "at least" the following three 
   functions: "(1) a Flow Table","(2) "a secure channel that 
   connects the" controller with the switch over which the open flow 
   protocol runs, and (3)an "open flow protocol" [McKeown-2008,p 
   2.][OF-1.0.0,p.2].  

   [OF-1.1.0] defines an OFS as "one or more flow tables and a group 
   table which perform packet look-ups and forwarding", and an open 
   flow channel to an external controller"[OF-1.1.0,p.3]. The 
   external controller controls the switch via the Open Flow 
   protocol (OF-Proto)[OF-1.1.0, p.3]. [OF-1.3.0] adds that the 
   "switch communicates with the controller, and the controller 
   controls the switch"[OF-1.3.0, Section 2, paragraph 1.]         

3. Comparisons between ForCES and OpenFlow 

   ForCES and OpenFlow are very similar in the following aspects: 

   o  Both ForCES and OpenFlow are efforts to separate control plane 
      from forwarding plane; 

   o  Both ForCES and OpenFlow protocols standardize information 
      exchange between the control and forwarding plane. 

   Although both ForCES and OpenFlow can be considered as the 
   solutions for forwarding and control plane separation, they are 
   different in many aspects. This section compares them in their 
   history, goals, architecture, forwarding model and protocol 
   interface. 

3.1. Difference in Historical setting   

   ForCES work began during the 1995-2000 timeframe with the 
   development of netlink [RFC3549]. The linux netlink began its 
   linux driver history as first a "character device /dev/netlink 
   for Linux kernel 1.3.31" but was superceded by "Alexey 
   Kunzetsov's socket-based af_netlink.c in Linux v 2.1.15" 
   [Englehardt-2010].  The rtnetlink brought configuration and 
   router queries to links.  The netlink socket allowed messages 
   between kernel and user space regarding routes, firewalls, and 
   monitoring.   

 
 
Hares, et al.          Expires November, 6 2012               [Page 12] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   The historical context of the 1995-2002 timeframe saw the initial 
   growth of the US Internet and spread into non-US sites. The 
   historical changes included changes that began the split of tight 
   binding of control plane to data plane.  Forwarding plane 
   elements (ASICs, TCAMs, Network processors) and backplanes began 
   the growth of non-stop forwarding with high-availability. ForCES 
   notes that the data processors have "forwarding tables", "per-
   flow Qos Tables and access control lists" [RFC365]. ForCES had 
   control processors were general-purpose processors that support 
   route calculations.  

   ForCES began in quasi-commercial realm of linux development where 
   linux developers used routing software with netlink to build 
   early Internet networks. Alexey's early work was deployed in 
   Russian and European networks to turn linux boxes into Routers. 
   By early 2000, this work had migrated to router boxes seeking to 
   harden routers to provide non-stop forwarding.  Netlink 
   implementations were provided with many commercial OEM standards 
   for switches and routers.   

   ForCES work came out of the desire to expand the basic netlink 
   protocol into an architecture that allow quick modeling of new 
   forwarding hardware and an extensible control-plane to forwarding 
   plane communication. Early discussions in ForCES look to allow 
   coordination of multiple control planes as well as control plane 
   to forwarding plane functionality. However, the IETF decision was 
   to restrict the first versions of ForCES to architecture, CE-FE 
   communication and FE modeling.   

   OpenFlow arises out of the academic's communities realization 
   that the hardening of commercial of network infrastructure [1995-
   2006] to support businesses, caused a "reluctance to experiment 
   with production traffic"[McKeown-2008, p. 1]. The GENI (Global 
   Environments for Network Research)[2006-2007] suggested that: 
   a)Internet's infrastructure faced "serious problems" in "security, 
   reliability, manageability, and evolvability" and "possible 
   solutions" existed in research, but there were "severe 
   experimental barriers" to test new ideas in wide-spread 
   deployments [GENI-2007, p. vii].  A new US research network would 
   allow slices of routers to be used for researcher's experiments 
   in network protocols. McKeown and colleagues work examined how 
   these experiments could be extended to run [McKeown-2008] on 
   local campuses. McKeown and colleagues examined persuading 
   commercial routers to provide an open interface for 
   experimentation or using existing open source solutions (linux, 
   XORP[XORP-2008]). Their conclusion was that "commercial solutions 
   are too closed", and "research solutions have insufficient 
 
 
Hares, et al.          Expires November, 6 2012               [Page 13] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   performance or fanout, and are too expensive." [McKeown-2008, p. 
   2].  

3.2. Difference in Goals   

   RFC3654 lists the the architectural goals of ForCES. OpenFlow 
   Switch (OFS) Specification version 1.0.0[OFS-1.0.0] and OFS 
   version 1.1.0 [OF-1.1.0] refer to [McKeown-2008] as the basis of 
   these specifications. This document's goal comparison compares 
   the four goals [McKeown-2008] sets against [RFC3654].   

   The goal ForCES is to define the "architecture", "architectural 
   modeling" and protocols to "logically separate control and data 
   forwarding plans of an IP (IPv4, IPv6, etc.) networking device" 
   [RFC3654, p. 1]. ForCES network device (aka. network element (NE)) 
   can be a router, IP switch, firewall, switch. ForCES redefines 
   network elements to be logical relationships placed on physical 
   devices.     

   McKeown et al. state the goals of the OpenFlow approach was to 
   find "high-performance and lost-cost implementations" of new 
   network algorithms, capable of being used in "broad range of 
   research", adaptable to commercial "close platforms", and able to 
   "isolate experimental traffic from production traffic [McKeown-
   2008, p. 2]. 

   Difference in goals underscores the original commercial focus of 
   ForCES and the experimental focus of OpenFlow.   

3.3. Difference in Architectural Requirements  

   Architecture sets the building blocks for system, and 
   architectural requirements sets rules for interconnecting the 
   building blocks.  

   Building blocks for ForCES include the CE(s), FE(s), ForCES 
   protocol (CE to/from FE), FE-Manager, CE-Manager, and logical 
   input flows. Within the FEs there are Logical Forwarding Blocks 
   connected together in a directed graph. The flow processing 
   passes along input port, (modified)frame, metadata (which may 
   include actions). The flow stream may be output to interfaces 
   (logical or physical).  

   Building blocks for OpenFlow include Controllers (~CEs) and 
   Forwarding Units (~FEs) with OpenFlow processing. OpenFlow logic 
   is designed in terms of Flow Processing controlled by Flow Tables 
   (McKeown-2008][OFS-1.0][OFS-1.1], and Group tables [OFS-1.1]which 
 
 
Hares, et al.          Expires November, 6 2012               [Page 14] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   operate on the modified frame, metadata, or group of actions via 
   actions or instructions (a group of actions and forwarding 
   commands).  

   Both flow streams Flow processing may cause the flow to multiple 
   into several streams or combine multiple streams into one.   

3.3.1. ForCES System Building Blocks   

   The building blocks within the ForCES architecture are the CEs 
   (controller elements), FEs (forwarding elements), and an 
   interconnect protocol between CE(s) and FE(s). ForCES also 
   recognized the logical functions of a FE-Manager and a CE-
   Manager.  Figure 1 shows a diagram from RFC5810 that details 
   interaction between all these components.  

   The ForCES CE controls switching, signaling, routing, and 
   management protocols. Each CE is a logical unit which may be 
   located within the same box, different boxes, or across the 
   network. ForCES architecture [RFC3746] allows CEs to control 
   forwarding in multiple FEs.  

   ForCES defines logical Forwarding Elements (FEs) that reside on a 
   variety of physical forwarding elements (PFE) such as a "single 
   blade (PFE)", partition within blade, or multiple PFEs in a 
   single box, or among multiple boxes [RFC3746, p. 2]. The ForCES 
   logical FEs could also be run within Virtual Machines (VMs) 
   within a single box or a set of boxes or a cloud. A single FE may 
   be connected to multiple CEs providing strong redundancy. FE 
   internal processing is described in terms of Logical Forwarding 
   Blocks (LFBs) connected together in a directed graph that 
   "receive, process, modify and transmit packets along with 
   metadata"[RFC5810, p. 6]. The FE model determines the LFBs, the 
   topological description, the operational characteristics, and the 
   configuration parameters of each FE.   

   The Forces Logical Forwarding Block (LFBs) Library [FORCES-LFB] 
   provides the class descriptions for Ethernet, IP Packet 
   Validation, IP Forwarding LFBs, and Redirection, MetaData, and 
   Scheduling. Forces-LFB document demonstrates how these logical 
   blocks can be placed within a machine to support IP Forwarding 
   (IPv4/IPv6)for unicast & multicast and ARP processing[Forces-LFB, 
   p. 17].  

   ForCES architecture [RFC3746] allows CEs to control forwarding in 
   multiple FEs. ForCES also recognized the logical functions of a 
   FE-Manager and a CE-Manager. The FE manager determines the CE(s) 
 
 
Hares, et al.          Expires November, 6 2012               [Page 15] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   each FE should communicate with. The CE manager determines which 
   FEs each CE should communicate with. The ForCES defines the FE-
   Manager and CE-Manager to operate in a "pre-association" phase of 
   the communication to set-up the FORCES communication path. 
   Similarities between the functions of the CE-Mangers and FE 
   managers of ForCES and modern hypervisors may come from the 
   creative interplay of early open source communities [1995-2005].  
   Applications directly interacting with ForCES components (CEs or 
   CE-Managers or FE-Manager) could be described as interactions 
   with the CEs or CE-Managers.  

   Figure 1 shows ForCES Architectural Diagram [RFC5810]. 

                            --------------------------------------- 
                            | ForCES Network Element              | 
     --------------   Fc    | --------------      --------------  | 
     | CE Manager |---------+-|     CE 1   |------|    CE 2    |  | 
     --------------         | |            |  Fr  |            |  | 
           |                | --------------      --------------  | 
           | Fl             |         |  |    Fp       /          | 
           |                |       Fp|  |----------| /           | 
           |                |         |             |/            | 
           |                |         |             |             | 
           |                |         |     Fp     /|----|        | 
           |                |         |  /--------/      |        | 
     --------------     Ff  | --------------      --------------  | 
     | FE Manager |---------+-|     FE 1   |  Fi  |     FE 2   |  | 
     --------------         | |            |------|            |  | 
                            | --------------      --------------  | 
                            |   |  |  |  |          |  |  |  |    | 
                            ----+--+--+--+----------+--+--+--+----- 
                                |  |  |  |          |  |  |  | 
                                |  |  |  |          |  |  |  | 
                                  Fi/f                   Fi/f 

        Fp: CE-FE interface 
        Fi: FE-FE interface 
        Fr: CE-CE interface 
        Fc: Interface between the CE manager and a CE 
        Ff: Interface between the FE manager and an FE 
        Fl: Interface between the CE manager and the FE manager 
        Fi/f: FE external interface 

            Figure 1: ForCES Architectural Diagram [RFC5810] 

    

 
 
Hares, et al.          Expires November, 6 2012               [Page 16] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

3.3.2. OpenFlow Building blocks  

   OpenFlow architecture consists of set of OpenFlow Switches with a 
   Flow Table, a Secure Channel between controller and switch, and 
   an Open flow protocol.  OpenFlow switches can either be only 
   controlled by OpenFlow, enabled by Open Flow [OFS 1.0] (shared), 
   or hybrid Switches (OFS 1.2).  

               ----------------  ---------------- 
                | Application1 |  | Application2 |  ...... 
                ----------------  ---------------- 
                        |     APIs       | 
                 ---------------------------------------- 
              CE | ---------------      --------------- | 
                 | |  OpenFlow   |------|  OpenFlow   | | 
                 | | Controller  |      | Controller  | | 
                 | ---------------      --------------- | 
                 ---------------------------------------- 
                      |              |             | 
                      |      OpenFlow Protocol     | 
                      |              |             | 
               NE&FE  |              |             |     NE&FE 
               --------------        |         -------------- 
               |  OpenFlow  |        |         |  OpenFlow  | 
               |   Switch   |        |         |   Switch   | 
               --------------        |         -------------- 
                 |  |  |  |          |           |  |  |  |   
                 |  |  |  |          |           |  |  |  | 
                 |  |  |  |          |           |  |  |  | 
                   Fi/f   |    NE&FE |           |   Fi/f 
                          |    --------------    | 
                          |    |  OpenFlow  |    | 
                          |    |   Switch   |    | 
                          |    --------------    | 
                          |      |  |  |  |      | 
                          |      |  |  |  |      | 
                          --------  |  |  -------- 
                                    Fi/f  

           Fi/f: FE external interface 

                Figure 2: OpenFlow Architectural Diagram  
                       by Using the terms NEs, FEs, CEs 

   The Flow table provides entries on how to process a flow whose 
   header fields match a pattern in the header field [OFS-1.0.0] or 

 
 
Hares, et al.          Expires November, 6 2012               [Page 17] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   a set of meta data generated from pipeline processing of a 
   header[OFS-1.1.0, figure 4][OFS-1.3].  

   The matching of a packet in OFS-1.0.0 based on first exact match 
   of header and/or meta data, and secondly wild-card entries.  The 
   wild-card entries contain a priority field to order the process 
   of matching. For example, a priority of "1" will be the first 
   wild card processed.  

3.3.2.1. Match Fields in OFS  

   The match field has been expanding as the ONF specifications 
   evolve - from a 10-tuple [McKowen-2008], to 12-tuple [OFS-1.0], 
   and to a OFS-1.1.0 a 15-tuple, to 39-tuple in OFS-1.3[OFS-1.3] 
   (14 required and 25 optional). 

   The original 10-tuple includes ingress port, VLAN ID, Ethernet 
   source address, destination address and type, the IPv4 
   source/destination address, and IP protocol, TCP/UDP source & 
   destination port.  The 12-tuple adds VLAN priority, and IP Tos 
   bits.  The 15-tuple adds: metadata, MPLS label, MPLS traffic 
   class.  The TCP/UDP source & destination port have redefined for 
   ICMP packets to have instead he the ICMP Type and ICMP code.  
   [OFS-1.3-pre]required matches include the 10-tuple plus IPv6 
   source and destination addresses and UDP source and destination 
   ports.     

3.3.2.2. Flow Logic - Flow Table and Group tables  

   The flow table operation and data structures vary based on the 
   version of OpenFlow Switch specification.  

   OFS in versions [McKeown-2008] and [OFS-1.0.0] operate on logic 
   in flow tables which are executed in ascending order. Each Flow 
   Table ID must be greater than the current Flow table id.  [OFS-
   1.1.0][OFS-1.3] flow logic operates on flow tables and group 
   tables which allow jumps based on "Goto table" logic or 
   combinations of flows. 

    

   |=============|    |==============|      |=============| 

   |Flow table 0 |---.|Flow Table 1 | _ -. |Flow Table n | 

   |=============|    |==============|      |=============|  

 
 
Hares, et al.          Expires November, 6 2012               [Page 18] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Figure 3: Flow Table [OFS-0.9][OFS-1.0]  

    

   All OFS Flow tables match on data and perform actions [OFS-
   0.8][OFS-0.9][OFS-1.0][OFS-1.1][OFS-1.2][OFS-1.3]. Later versions 
   [OFS-1.1.0][OFS-1.2][OFS-1.3] use instructions to immediately 
   perform actions or to queue specific actions for later 
   processing. These same later versions also allow metadata to be 
   stored to be passed along to additional processing.  

                    

                   |----------------| 

                   | Group table 1  | 

          |------. |action-bucket1 |----. egress-port-1  

          |        | action-bucket2 ] 

          |        |----------------| 

          | 

   |=============|    |==============|      |=============| 

   |Flow table 0 |---.|Flow Table 1 | _ -. |Flow Table n | 

   |=============|    |==============|      |=============|  

   Figure 3: Flow Table [OFS-1.1]  

   1) Action Specifics  

   [McKeown-2008] has three actions in the flow tables: forwarding 
   of a matched packet to a specific port or ports, sending the 
   packet to the controller, or dropping the packet. This simply 
   processing is why some engineers suggest that OFS-2008 is similar 
   to the RSVP T-Spec [RFC2870].   

   [OFS 1.0.0] actions direct switch processing to forward packet, 
   drop packet, enqueue packet (optional), and modify-field in 
   packet (optional).  Forwarding packets can be sent to all ports, 
   the controller, local switches forwarding stack, send out input 
   port, and specific ports after performing table actions & send 
   out specified port, send via normal (L2/L3/VLAN) processing, and 
 
 
Hares, et al.          Expires November, 6 2012               [Page 19] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   flood (via minimum spanning tree) ports. This causes some 
   engineers to consider OFS 1.0 equivalent to be Forces--.   

   [OFS-1.1.0] uses instructions within each flow entry to determine 
   how a packet and associated data is processed. These associated 
   data includes: ingress port packet came in on, the generated 
   meta-data and an action set. The action set is a set of commands 
   to execute prior to sending the packet out.  The [OFS-1.1.0] 
   instructions are: "Apply-Actions", "Clear-Actions", "Write-
   Actions", "Write-metadata", "Goto Table" [OFS-1.1.0, p. 14]. 
   Actions are either applied immediately with apply action command, 
   or stored (via an Write-Action)in action sets for later 
   processing in the action-set via a Write-Action.  The existing 
   actions can be cleared with a "Clear-Action". [OFS-1.1.0] actions 
   are output packet, set queue, drop packet, process via group 
   table, push/pop tags, and set-field. [OFS-1.1.0] action sets 
   include single entries for any of the following: copy TTL inward 
   in packet, pop/push actions to packet, copy TTL outwards, 
   decrement TTL, set fields in packet, apply QoS Actions (e.g. set 
   queue), and apply group actions, and output packet.  

   2) Flow Logic Encoding  

   [OFS-1.0.0] encodes the ForCES LFB in table sequences. The LFB 
   directed graph of ForCES modeling is encoded in sequences of Flow 
   Table.  OFS 1.0 specifies that the Ethernet header (similar to 
   ForCES Ethernet II) is the basic frame for all input. A fixed 
   processing ARP, IPv4, TCP/UDP, and ICMP packets are specified 
   based matches beyond the Ethernet header. The Forces LFB library 
   provides building blocks for matches beyond the Ethernet to ARP, 
   IPv4 and IPv6 packets, and Meta data. The OFS-1.0.0 does not have 
   Metadata.  

   [OFS-1.1.0] match of a flow goes against specific table 15-tuple 
   header. If the frame/packet matches, the flow table can alter the 
   packet (via immediate actions), add metadata (for later 
   handling), set an actions in action set, pass the processing to a 
   specific table (Flow Table or Group Table), or pass the 
   processing to the next table in the sequence.  The information 
   passed on to the next processing is [ingress port, (post-
   modification) frame/packet, metadata, and action set.    

   [OFS-1.1.0] allows processing between tables to carry the ingress 
   port, the packet, generated metadata, and an action set. An 
   action set is a set of commands to execute prior to sending the 
   packet out. [OFS-1.1.0] uses Flow table with instruction. The 
   instructions can be which can be "Apply-Actions", "Clear-
 
 
Hares, et al.          Expires November, 6 2012               [Page 20] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Actions", "Write-Actions",  
   "Write-metadata", "Goto Table" [OFS-1.1.0, p. 14]. Actions are 
   either applied immediately with apply action command, or stored 
   (via an Write-Action) for later processing in the action-set via 
   a Write-Action.  The existing actions can be cleared with a 
   Clear-Action.  

   [OFS-1.1.0] supports two types of tables: flow tables, and group 
   tables. The group table structure has a group identifier, group 
   type, counters, and an order list action buckets. Action buckets 
   contain a set of actions with parameters. If the group table has 
   "zero" action buckets, then no processing occurs.   

   [OFS-1.1.0] group type field specifies how the action buckets 
   operate on the packet.  The group can be "all", "select", 
   "indirect", and "fast-failover" [p.7]. The "all" bucket provides 
   multicast and/or broadcast support execute all buckets. The 
   packet is effectively cloned and sent out.  The select, indirect, 
   and fast-failover execute one bucket. In select, the switch 
   determines which port via internal algorithm (e.g. round-robin). 
   In "indirect", the group table logic selects the bucket.  The 
   "fast-failover", the first live bucket is chosen. The single-
   bucket choses may restrict flows if the specified buckets and/or 
   output ports are down.  

   This new sequential logic is the basis of some engineers comment 
   that OpenFlow 1.1 is ForCES++.  

   ForCES people indicate that that the group table logic plus "Go 
   to" logic is simply a LFB model of a specific type.  [Haleplidis-
   2012] demonstrates on the LFB library concept can be used to 
   capture all of the OFS-1.1.0 specification.  

    

    
      
 
Hares, et al.          Expires November, 6 2012               [Page 21] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

3.3.3. ForCES FE types  

   ForCES and OpenFlow FEs can operate either new switching entities 
   or integrated with existing processing as a hybrid. In OFS-1.2, 
   the Ships-in-the-Night (SIN) mode divides existing ports into 
   groups controlled by specific ports (see figure x) or VLANs 
   (figure-x)   

    

   |=============|    |==============|      |=============| 

   | standard    |    | Open Flow    |      |  Forces     | 

   |   CE        |    | controller   |      |    CE       | 

   |=============|    |==============|      |=============|  

        ||                 ||                    || 

        ||                 ||                    ||  (forwarding) 

   |----------------------------------------------------------- 

   |  |==========|    |==============|      |=============|    | 

   |  | standard |    | Open Flow    |      |  Forces FE  |    | 

   |  | FE board |    |  FE          |      |             |    | 

   |  |==|==|====|    |====|==|======|      |====|===|====|    | 

   |-----|--|--------------|--|------------------|---|---------- 

   Standard ports         OFS ports         ForCES ports  

   Figure x - Hybrid mode per port   




 
 
Hares, et al.          Expires November, 6 2012               [Page 22] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

    

   |=============|    |==============|      |=============| 

   | standard    |    | Open Flow    |      |  Forces     | 

   |   CE        |    | controller   |      |    CE       | 

   |=============|    |==============|      |=============|  

        ||                 ||                     || 

        ||                 ||    (forwarding)     || 

   |-----------------------------------------------------------| 

   |  |==========|    |==============|      |=============|    | 

   |  | standard |    | Open Flow    |      |  Forces FE  |    | 

   |  | FE board |    |  FE          |      |             |    | 

   |  |==|==|====|    |====|==|======|      |====|===|====|    | 

   |     |  |              |  |                 |       |      |             

   |  vlan1 vlan10     vlan2  vlan15          vlan3   vlan7    | 

   |   | |   | |         | |   | |             | |   | |       | 

   |---|-|---|-|---------|-|---|-|-------------|-|---|-|-------| 

   S      OFS ports         ForCES ports  

   Figure x - Hybrid mode per port   

 

3.3.4. ForCES Pre-Association   

   Neither the ForCES protocol nor the OFS protocols [McKeown-
   2008/OFS-0, OFS-1.0.0, OFS-1.1.1] specify how the CEs/controllers 
   and FEs/forwarding switch meet.  

   Do CEs go to the FEs meeting place and CEs pick up the FE that 
   delights their forwarding fancy? How do they found out where 

 
 
Hares, et al.          Expires November, 6 2012               [Page 23] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   eligible FEs are meeting? Do FEs have choice on which CEs select 
   them, and if so what are the criteria?           

   The forming of intimate relationships between CEs and FEs remains 
   to the readers of the specification as mysterious as the pre-
   association stages of human group dating or clique forming.  

   ForCES specifications specifically call this phase a pre-
   association phase. The ForCES architecture names the entity that 
   coordinates the forming of associations (like a Jewish match-
   maker) for CEs and for FEs. The CE-Manager determines which FEs 
   each CE should talk to.  The FE-Manager determines which CEs each 
   FE should talk to.  Only when the associations between each CE 
   and its FEs, and each FE and its CEs are complete, does the 
   system complete pass from pre-association phase to association 
   phase.  

   It is assumed that some protocol interactions within the logical 
   ForCES network entity (or entities) determine how CEs will 
   coordinate their work. However, the IETF work specifically 
   denoted this CE-CE coordination work as a second phase of work.  

   OpenFlow Switch specifications ([McKeown-200][OFS-0.8][OFS-
   0.9][OFS- 1.0] OFS-1.1] ignore the concept of this dynamic 
   meeting processing.  

   Either OFS specification missed this concept. Perhaps the OFS 
   specifications assumed a static configuration as part of a boot 
   process of the hybrid switch will set-up some basics. It is 
   possible that the lack specification may come from the sponsors 
   of the specification wanting proprietary pre-association 
   interactions. If so, this provides an interesting line of 
   demarcation between standards and OFS standard.  

   In any case, this oddity from the OFS proponents leaves one to 
   ask "What is the rest of the story on the pre-association phase?" 
      
 
Hares, et al.          Expires November, 6 2012               [Page 24] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

3.3.5. Architectural requirements  

   RFC3654 specifies 15 architectural requirements. Table 15 
   provides summary of this requirements and possible OFS (McKeown-
   2008/OFS 0, OFS 1.0, OFS 1.1). 

   ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 

  1. CE/FEs connect via variety of     Controllers/switch 
     communicate 
     interconnect technologies.        over a secure connection  
     [RFC3654, p. 5]                   [McKeown-2008][OFS-1.0][OFS-1.1]
     
     FE can use different technology   not specified   
     than CE/FE topologies.           
    
  2. "FEs MUST support a minimal       [McKeown-2008][OFS-1.0][OFS-1.1]
     set of capabilities necessary     specify a set of required  
     for establishing network          actions, instructions, Flow 
     connectivity (e.g. interface      actions, and an implied set of
     discovery, port up/down           port functions(e.g.interface 
     functions.)                       discovery, port up/down). 
     Beyond this minimal set, the      These OFS specifications  
     ForCES architecture MUST          also declare some set of 
     NOT restrict the types of         features optional. 
     numbers of capabiliti8es  
     that FEs may contain. 
     [RF3654, p.5]  
      
  3. "Packets MUST be able to arrive   [OFS-1.0][OFS-1.1]specifies  
     at the NE by one FE and leave     in ofp_port the OFPP_IN_PORT  
     the NE via different FE."         flag which allows the port to
     [RFC3654, p.5]                    explicitly send it back out the 
                                       input port [OFS-1.0, p. 18] 
                                       [OFS-1.1, p. 26]  

 
 
Hares, et al.          Expires November, 6 2012               [Page 25] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   
 
   ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 
  4. "A NE must support the            [OFS-1.0][OFS-1.1] describes   
      appearance of a single           the devices as an individual 
      functional device."              switch, and provides   
      (e.g. single IP TTL reduction.)  the capability to reduce TTL 
      [RFC3654,p. 5]                   [OFS-1.1,section 4.7, p. 12] 

      
                                       such as push/pop of VLAN IDs   
                                       and/or MPLS headers [OFS-1.1, 
                                       p. 12] 
                  
     
   4b. However, external entities      4b. No pre-association logic has 
   (e.g. FE managers and                been defined.     
    CE managers) MAY have direct           
    Access to individual ForCES           
    protocol elements for providing 
    information to transition  
    [RFC3654, p. 5]         
    

  5."The architecture MUST provide    Beyond a secure channel 
     a way to prevent unauthorized    between some "controller  
     FORCES protocol elements         entity and switch" 
     from joining an NE."             no prevention of unauthorized
     [RFC3654, p. 5]                  access has been encoded.  
    
  6. A FE must be able to               [OFS-1.0][OFS-1.1] have  
     asynchronously inform the CE      "three message types:  
     of a failure or                   controller-to-switch,  
     increase/decrease in available asynchronous,  
     resources or capabilities         symmetric [OFS-1.0, p. 10] 
     on the FE.                        [OFS-1.1, p. 16]. 
                                       Asynchronous messages  
 
 
Hares, et al.          Expires November, 6 2012               [Page 26] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 
                                       Switches send a controller (CE)
                                       Messages with  a  received 
                                       packet
                                       (packet-in), notification of  
                                       a removed flow table entry 
                                       (flow-removed), changes in 
                                       port 
                                       status  (port-status),  and 
                                       error  
                                       conditions (error) [OFS-1.0, 
                                       pp-10-12)][OFS-1.1, p. 16-
                                       17] 
                                        
      

     "Thus, the FE MUST support        The change in port status 
     error monitoring and reporting"   is covered,but memory status 
     (e.g.  "number of physical ports  is not covered 
      Or "memory changes").  
     [RFC3654,p. 5] 
      
  7. "The Architecture MUST support    [McKeown-2008], [OFS-1.0] 
     mechanisms for CE redundancy      [OFS-1.1]do not specifically 
      or CE failover.                  provide CE Redundancy or  
                                       CE failover.  
      
       1. This includes the            The OFS protocol supports 
          ability for CE and FEs       echo request/reply  
          to determine when there      message [OFS-1.0, p. 41] 
          is a loss of association     [OFS-1.1, p. 55-56].  
          between them, ability 
          to restore the association   The OFS-1.1 provides a  
          and efficient state          barrier message that  
          (re)synchronization          provides synchronization  
          mechanisms.                  [OFS-1.1, p. 50].  

 
 
Hares, et al.          Expires November, 6 2012               [Page 27] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

  ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 
                                       The OFS-1.1 protocol supports
                                       query by the controller of the 
                                       switch features, capabilities, 
                                       configuration, flow table 
                                       configuration, flow table 
                                       entries, group table  entries, 
                                       port configuration (pp. 36-42). 
                                       FS-1.1 also provides 
                                       Statistics on description of  
                                       Switch (OFPST_DESC),  
                                       Flow table status 
                                       (OFPST_FLOW),aggregate flow 
                                       statistics (OFPST_AGGREGATE), 
                                       port statistics (OFPST_PORT), 
                                       queue statistics (OFSPST_QUEUE),  
                                       group statistics (OFSPST_GROUP), 
                                       and experimenter extension 
                                       (OFPST_EXPERIMENTER) (p.43-49). 
                                                        
           
   7. (CE redundancy - continued).     
       2. This also includes the        OFS-1.1 states:  
          ability to preset the        "In the case the switch loses 


 
 
Hares, et al.          Expires November, 6 2012               [Page 28] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
          actions an FE will take      contact with the current 
          in reaction to loss of       controller, as a result of an
          association to its CE        echo request timeout,  
          (e.g., whether the FE        TLS  session timeout, or other 
          will continue to forward     disconnection, it should 
          packets or whether it        attempt to contact one or more 
          will halt operations."       backup controllers.  
          [RFC3654, p.  6.]            The ordering of the backup  
                                       Controllers is not specified by  
                                       the protocol." 
           
                                       "The switch should immediately 
                                       enter either "fail secure mode", 
                                       or "fail standalone mode" if it 
                                       loses connection to the 
                                       controller, depending on the  
                                       switch implementation and  
                                       configuration." [OFS-1.1, p.18] 
                                        
                                       In "fail secure mode", the  
                                       FE behavior remains the same 
                                       except FE drops "packets and  
                                       messages" destined for CE. 
                                       In "fail-standalone mode", 
                                       FE processes all packets 
                                       acts as a "legacy switch 
                                       or router." [OFS-1.1, p. 18]  
 
               
           
                                   
   ForCES Architectural Requirement    OpenFlow Switch Architecture 
 
 
Hares, et al.          Expires November, 6 2012               [Page 29] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   --------------------------------    ---------------------------- 

      
                                        Flow entries persist over  
                                        Failure in either fail secure 
                                        Mode or fail standalone mode. 
                                     
 
  8. "FEs must be able to redirect     [McKeown-2008][OFS-1.0][OFS-1.1] 
     control packets addressed to      allow packets to forward to  
     their interfaces to the CE.       Controller for processing.  
     The (FE) MUST also redirect 
     other relevant packets  
     (E.g., such as those  
     with Router Alert Option set) 
     to their CE. 
     The CEs MUST be able              [OFS-1.0][OFS-1.1] Flow tables 
     to configure the packet           allow packet redirection filters 
     redirections information/filters  on the FEs with action Forward 
     on the FEs.                       controller (OFS-1.0, p. 6), 
                                       (OFS-1.1, p. 13). 
      
     The CEs MUST also be able         [OFS-1.0][OFS-1.1] allow a 
     to create packets and have        CE to FE message (packet-out) 
     its FEs deliver them.             to send frames/packets out  
                                       a specific port  
                                       [OFS-1.0, p. 10], [OFS-1.1,p.17]  
       
  9."Any proposed ForCES               [OFS-1.0][OFS-1.1] do not 
     architecture MUST explain         consider this requirement.  
     how that architecture supports    Future OFS work may consider 
     all the router functions as       this set of features.  
     defined in [RFC1812]." 
       1. Includes: IPv4 Forwarding Options 

       2. Should include: IPv6 forwarding options 
 

 
 
Hares, et al.          Expires November, 6 2012               [Page 30] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    
  
   ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 

      
  10.    "In a ForCES NE, the CE(s)    [OFS-1.0][OFS-1.1] do not  
     MUST be able to learn the         consider this requirement. 
     topology by which the FEs 
     in the NE are connected." 
      
      
    

  11.    The ForCES NE architecture    [McKeown-2008], [OFS-1.0] 
     MUST be capable of supporting      [OFS-1.1] do not consider 
     (i.e. must scale to) at least      scale        of        CE/FE 
     communications.  
      hundred of FEs and tens of 
      thousands of ports.  
      
      
  12.    "The ForCES NE architecture   [McKeown-2008], [OFS-1.0],  
      MUST allow FEs and CEs to join   [OFS-1.1] do not consider  
      and leave NEs dynamically."      issues relating to  
                                        active join/leaving of  
                                        CEs and FEs in communication. 
                                          
                    
  13.    "The ForCES architecture      [McKeown-2008],[OFS-1.0], 
     MUST support multiple CEs         [OFS-1.1] do not directly  
     and FEs. However, coordination    discuss how multiple CEs 
     between CEs is out of scope       will attach to FE. Or FEs 
     of ForCES.                        attach to a CE.  
      
     [Historical note:  
      The restriction of CE 
      coordination was a desired 
      phase 2 work of the ForCES group.] 
 
 
 
Hares, et al.          Expires November, 6 2012               [Page 31] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    
      

   ForCES Architectural Requirement    OpenFlow Switch Architecture 

   --------------------------------    ---------------------------- 

  14.    For pre-association phase     [McKeown-2008], [OFS-1.0], 
     set-up, monitoring,               [OFS-1.1] do not consider 
     configuration issues, it MAY      issues relating setting up 
     be useful to use standard         the links between CEs and 
     management mechanisms for         FEs. Some "magic" occurs  
     CEs and FEs.                      and the CE is talking to  
                                       a particular FE.  
     The ForCES architecture and  
     requirements do not preclude  
     this.  
      
                                       [OFS-1.0][OFS-1.1] give  
     In general, for                   no discussion on other  
     post-association phase,           management process (SNMP) 
     most management tasks SHOULD      outside the [OFC-1.0] 
     be done through interactions      using netconf and beep 
     with the CE.  
     In certain conditions 
     (e.g., CE/FE disconnection), 
     it may be useful to allow 
     management tools (E.g., SNMP) 
     to diagnose and repair problems.  
      
     The following guidelines MUST 
     be observed:  
       1. The ability for a  
          management tool (e.g., SNMP) 
          to be used to read 
          (but not change) the state 
          of FE SHOULD NOT be precluded. 
       2. IT MUST NOT be possible  

 
 
Hares, et al.          Expires November, 6 2012               [Page 32] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

          for management tools 
          (e.g., SNMP, etc) to  
          change the state of an  
          FE in a manner that  
          affects overall NE behavior 
          without the CE being notified.  
    

3.3.6. ForCES versus OpenFlow - A Central Controller  

   ForCES and OpenFlow seek to split the control plane and the 
   forwarding engine.  Both protocols using a secure connection can 
   be used to interact with a central controller.  ForCES has spent 
   more time determining how CEs and FEs might find one or more 
   central controllers.  OpenFlow Specifications are just beginning 
   to rediscover the need for this work.  

   Both Forces an OpenFlow can provide the ability of a logically 
   centralized controller to:    

   o  Collect the network view and make decisions according to 
      control logics (or applications); 

   o  Interact with forwarding hardware (FE) to install forwarding 
      policy and state,  

   o  Provide open APIs to users to add new features. 

   ForCES has considered security issues (such as Denial of Service 
   (DOS)) and the mechanisms for grouping CEs with an FE, or FEs 
   with a CE, Forwarding Models, and Forwarding Libraries.   

   OFS specifications have focused on defining one simple 
   functionality that can be implemented in specific networks. For 
   example, many discussions point to code deployed in Google.  

3.4. Difference in Forwarding Model  

   ForCES and OFS pipeline processing of frames/packets include the 
   basic steps of matching framing, processing frame, and 
   outputting/dropping frame.  The processing of a frame occurs in a 
   pipeline of processes where initially processing adds the 
   metadata and actions that subsequent processing will use to 
   create the final packet that will be sent via output port or 
   dropped.   

 
 
Hares, et al.          Expires November, 6 2012               [Page 33] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Key ingredients of a good pipeline process are:  

   1)    a deterministic logic based that doesn't loop, 

   2)    handles both unicast and multicast traffic,  

   3)    Flexible matching that can growth with new features, 

   4)    Metadata to allow passing of results to subsequent stages,  

   5)    Logic that allows some stages to be skipped, and 

   6)    Allows for no match (Table Miss).  

3.4.1. Looping  

   In ForCES, [RFC5812] defines the FE (Forwarding Element) model 
   based on an abstraction of Logical Functional Blocks (LFBs). In 
   this model, each FE is composed of multiple LFBs that are 
   interconnected in a directed graph, which is represented by the 
   LFB topology model. The directed graph model prevents the recycle 
   of processing in a loop. Each LFB defines a set of processing on 
   handling frames/packets. For example, typical LFBs include 
   IPv4/IPv6 Longest Prefix Matching, etc. XML is used to describe 
   LFB model formally. 

   In [OFS-0.8][OFS-0.9][OFS-1.0] the forwarding model has been 
   static defining specific functions for early experimentation of 
   the switch. Loops have been prevent  

   [OFS-1.0] defines the Flow tables identified by a sequential 
   number [0,1,2_n]. Processing loops are prevent by defining that a 
   flow table can only transfer to a higher flow table.  

   [OFS-1.1] provides a Group table to augment the Flow Table logic 
   described above.  If a flow matches, instructions in the flow 
   table may direct the packet toward specific table (group table or 
   flow table).  This jumping provides skips in sequential process 
   unlike [OFS-1.0].  In addition, the "goto" action allows skips 
   between tables.  

          
 
Hares, et al.          Expires November, 6 2012               [Page 34] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

3.4.2.  Handling unicast and multicast   

   [OFS-0.9][OFS-1.0] do not provide an easy to provide cloning for 
   multicast. The group table in [OFS-1.1] provides the necessary 
   cloning for multiple outputs of a single packet.  

   A ForCES IPv4MultiLPB and IPv6MultiLPB could be defined beyond 
   today's ForCES standards.  These LFBs would use an LPM to match 
   the multicast address, and generate a list of "L3PortID" metadata 
   to identify a set of ports the cloned packet could be sent out. 
   This metadata could be passed to the EthernetEncap LFB.   

    

3.4.3. Flexible matching  

   All OFS specifications ([OFS-0.8][OFS-0.9][OFS-
   1.0][OFS1.1][OFS1.3-pre] seeks to match the header data against 
   the flow table's match field. Ranging from a 10-29 possible 
   matches in the header and metadata, the OFS provides flexible 
   matching within the data packet (Ethernet, MPLS, IP, TCP, UDP).  

   [Heleplidis-Forces-LFB] shows the matching capability in OFS-1.1 
   can be implemented in ForCES LFBs.  

3.4.4. Metadata to allow passing of results to subsequent stages,  

   Both ForCES and OFS ([OFS-1.1][OFS-1.3-pre]) allow metadata to be 
   passed to subsequent spaces.  

3.4.5. Optionally skipping logic 

   [OFS-1.1] provides a Group table to augment the Flow Table logic 
   described above.  If a flow matches, instructions in the flow 
   table may direct the packet toward specific table (group table or 
   flow table).  This jumping provides skips in sequential process 
   unlike [OFS-1.0]. The Group Table concepts provides the ability 
   to group flows for execution, single out a single flow for 
   additional processing, and use port liveness mechanisms for fast-
   failover. [OFS-1.1,p, 7]. 

   The ForCES directed graph model can also allow the skips in 
   processing by having multiple exits from.  

3.4.6. Table Miss  

   A frame may not match any table in the forwarding pipeline.  
 
 
Hares, et al.          Expires November, 6 2012               [Page 35] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   [OFS-0.9] states "if no matching entry can be found for a packet, 
   the packet will be sent to the controller over the secure 
   channel"[p. 8].   

   Experience has taught the OpenFlow community this can be 
   problematic.  

   [OFS-1.0.0-errta] states the following exceptions: "Sending the 
   packet to the controller on table-miss may overload the switch or 
   the controller, and some of those packets may have to be dropped, 
   and this may be an issue in some deployments" [p., 3]. 

   The OFS-1.0.0-errta suggests that the vendor extension may allow 
   the packet to be dropped or forwarded via pipeline. However, due 
   to many application use of table-miss to do topology discovery or 
   watch traffic - this feature is continued. 

   ForCES does not define a global Table-Miss, but allows the LFB 
   model to define these issues.  

    

3.5. Difference in Logical Forwarding Block Libraries  

   The Open-Flow group is beginning to consider flexible description 
   of the next OFS switches using a modeling language. No modeling 
   language has been approved as yet.  

   The Force LFB Library [ForCES-LFB-Lib] has been defined and 
   implemented. [Heleplidis-Forces-LFB] shows the modeling language 
   can support OFS-1.1 definitions.  

3.6. Difference in Protocol Interface 

   The OFS protocol and the ForCES protocol both use:   

     .  Secure transport protocols over which they operate (3.6.1) 

     .  Messages to establish the Controller/CE - FE connections,  

     .  Messages to Loading of forwarding logic (3.6.3)  

     .  Messages to Configuration the box (3.6.4),  

     .  Error handling messages (3.6.5),   

     .  Liveness protocols (3.6.6), and  
 
 
Hares, et al.          Expires November, 6 2012               [Page 36] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

     .  Sending packets for processing to/from controller (3.6.8). 

3.6.1 Secure Transport 

   ForCES defines two layers of protocols: ForCES Protocol Layer 
   (ForCES PL) and ForCES Protocol Transport Mapping Layer (ForCES 
   TML).  

   ForCES PL defines Protocol between FEs and CEs (Fp Reference 
   Point). ForCES Protocol Transport Mapping Layer (ForCES TML) is 
   defined to transport the PL messages. It is expected that more 
   than one TML will be standardized and interoperability is 
   guaranteed as long as both endpoints support the same TML. 
   [RFC5811] has defined a SCTP-based TML for ForCES. 

   OpenFlow defines the protocol between controller and OpenFlow 
   switches, i.e. OpenFlow protocol.  OFS-1.1 states that the data 
   channel is "usually encrypted using TLS, but may be run over 
   TCP"[OFS-1.1.0,p. 16]  

3.6.2 Types of Messages  

   As Table-x shows, ForCES and OFS protocol are remarkably similar. 
   Many OFS authors indicate the influence of the ForCES protocol on 
   the OFS work.  Due to the IETF review, ForCES protocol's top 
   level is carefully designed with orthogonal features of 
   association setup, association teardown, config, query, events, 
   packet redirect, and heartbeat.  

   The OFS protocols [OFS-0.8][OFS-0.9][OFS-1.0][OFS-1.1] provide 
   similar features, but have some overlapping functions. Similarly, 
   the OFS protocol has  

        o Hello (initial association),  

        o Reading of switch Features (read/response),  

        o config of switch and flow pipeline's via Flow tables 
          [OFPT_FLOW_MOD), group tables [OFPT_GROUP_MOD], ports 
          [OFPT_PORT_MOD].    

        o Flow Removed [OFPT_FLOW_REMOVED] - Flow entry is removed 
          due to either an idle timer or a hard timeout.  

        o Query of statistics (OFPT_STATS_REQUEST, 
          OFPT_STATS_RESPONSE), 

 
 
Hares, et al.          Expires November, 6 2012               [Page 37] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

        o Packet-OUT- redirect of packet from controller out a port, 

        o PACKET-IN - redirect packet inbound port to controller,  

        o Echo request/reply - heartbeat from OFS switches. 

   In addition, the OFS protocol has a Barrier Request/reply message 
   that allows the controller to synchronize message processing. 
   This general (but lose) definitional has allowed experimentation 
   with OFS switches.  

   Due to IETF review, the similar ForCES protocol has a clear 
   orthogonal set of actions described in terms of execution and 
   transaction models.  The CE can set execution flags on sets on 
   transactions (groups of functions).  The execution of 
   transactions can be: execute-all-or-none, continue-execute-on-
   failure, and execute-until failure.  A transaction set is must me 
   the ACDity test (atomicity, consistency, isolation, and 
   durability)[RFC5810,section 4.3.1.2]. Transaction sets have an 
   start, middle, and end. The transaction can also signal an abort.   

   The notification messages for Error and Port status are uniquely 
   specified in the OFS as a notification. In ForCES this is 
   included with the general notification category.   

   Table-x  ForCES vs. OFS messages   

   Message:           ForCES   OFS-0.9  OFS-1.0  OFS-1.1  

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

   Associate                   ----------Hello----------     

    CE/FE (Req/Rsp)     X        X        X         X      

   Association                 -----Feature Request/Response--- 

   Stop (Req/Rsp)       X        X        X         X 

   Query/               X      ----Feature or STATS(Req/Rsp)--- 

   Query Response       X        X        X         X 

   Config [Switch]             ---Config (non-flow table)-----  

     (Req/Rsp)          X        X        X         X  

 
 
Hares, et al.          Expires November, 6 2012               [Page 38] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   Config (Req/Rsp)     X        ------ FLOW_MOD-------        

                        X        X        X         X  

              

   Table-x  ForCES vs. OFS messages   

   Message:           ForCES   OFS-0.9 OFS-1.0  OFS-1.1  

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

   Heartbeat(Forces)    X        ---Echo-Request/Response--- 

   /Echo-Request(OFS)   X          X      X         X 

   Redirect                      ---Packet_in  & Packet-Out)  

                        X                 X         X 

   Execution flags      X               ----Barrier-Set-Queue 

                                          X         X 

   Notification         x                 X         X 

3.6.3 Loading of forwarding logic  

   ForCES and OFS both use TLVS to add, modify, and delete the flow 
   entry. In addition, ForCES has a concept of "commit" to a set of 
   changes to allow multiple stages of set.  

   OFS has the concept of modifying or deleting only strictly 
   matching flows (OFPFC_MODIFY_STRICT, OFPFC_DELETE_STRICT). This 
   is different that the OFS default of modifying all flows with 
   that match (with wildcard).   

3.6.4  Configuration   

   ForCES defines changing configuration of the switching Forwarding 
   pipeline within the protocol.  OF-Config-1.0 has provided a 
   protocol to use an OpenFlow Configuration Point (logical mode) 
   that can configure one or more OFS via the OpenFlow configuration 
   protocol.  The configuration protocol runs on top of TLS or TCP. 
   The configuration protocol sets the following information: 

     o  Failure standby mode (fail secure or fail standalone) 
 
 
Hares, et al.          Expires November, 6 2012               [Page 39] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

     o  Encryption mode (TLS or not), 

     o  Queue configurations (min-rate, max-rate, experimenter), 

     o  Ports (speed, no-receive, no forward, no packet-in, link-
        down, blocked, life) and optionally (duplex-mode, copper-
        medium, fiber-medium auto-negotiation, pause, asymmetric-
        pause), 

     o  Data path id of switch.  

3.6.5 Error handling and sanity checking    

     The error handling indicates errors that occur within the 
     protocol. The Error handling includes message form and action 
     failure. For OFS the action failure includes all interactions 
     such as: hello failure, bad request, bad flow action, bad flow 
     instruction, bad match, cannot modify entry in flow table, 
     cannot modify entry in group table, cannot modify port.  

     Due to IETF review, the ForCES errors and notifications are 
     define to contain all cases within the protocol. The error 
     processing contains sanity checking.   

3.6.6 Failure of CE/FE connection 

   Heart beat messages in both ForCES and OFS insure "liveness" of 
   the CE/FE connection.  The ForCES heartbeats are traffic 
   sensitive, and are only sent if no traffic has occurred.  

   OFS predefines that switches should enter the following based on 
   losing connections with controller: "Fail secure mode" or "fail 
   standalone mode" [OFS-1.1.0,section 5.3]. In Fail secure mode, 
   forwarding continues as previous with the only change that no 
   packets can be uploaded to the processor. 

   In fail standalone mode, the OSF switch drops into the Ethernet 
   legacy mode [OFPP_NORMAL].  

   If the ForCES protocol is supporting the high-availability 
   function, the begins the engage the high-availability statement 
   machine. OpenFlow specifications have not yet described how High-
   availability will work in Open-Flow.  




 
 
Hares, et al.          Expires November, 6 2012               [Page 40] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

4. Use of ForCES and OFS in Applications  

   ForCES and OFS [OFS-1.0][OFS-1.1] have been encoding in a variety 
   of applications. These application include: 

     .  Firewalls,  

     .  Loads balancers,  

     .  Switches 

     .  High-availability routers, 

     .  Wireless devices.  

     .  Table-x  ForCES vs. OFS messages   

5. The use of ForCES or OpenFlow in S(D)N or CSO/SOP    

   This section will contain a summary of the common capabilities of 
   ForCES and OpenFLow in environments of centralized controllers, 
   distributed controllers, and hybrid (centralized/distributed 
   control) suggested by open flow.  

   5.1 - Centralized controller logic 

   ForCES and OFS have been designed for centralized controller 
   logic. ForCES has considered the pre-association and association 
   phase of the CE-FE relationship with all the timing issues. The 
   execution and transaction model provide a strongly reviewed model 
   to provide roll-forward and roll-back of transactions. The high-
   availability drafts for ForCES provide a clear case on how to 
   keep high-availability of forwarding and CE processing while 
   distributing the flows.  

   ForCES has a clear body of work developed over years of 
   implementation experience.  

   OFS specifications do not deal with how controllers find FEs. 
   However, numerous companies are developing centralized 
   controllers. The standardization efforts for Hybrid (OFS-1.2) and 
   the next generation OFS switch (OFS-1.3) indicate an effort to 
   capture this growing body of wisdom.  

   5.2 - Distributed controller logic 


 
 
Hares, et al.          Expires November, 6 2012               [Page 41] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   ForCES was built to distribute the controller logic to 
   automonomous network elements that operate either as ForCES 
   controlled or as integrated hybrid controller.  

   OFS has created distributed logic per switch, but considers 
   grouping of these switches outside the OFS specifications. The 
   Hybrid [OFS-1.2] provides use cases for Ships-in-the-Night and 
   integrated. The Ships-in-the-Night provide per port allocation to 
   either OFS or standard processing. The Integrated seeks to run 
   both on a set of ports.  

    

   5.3 - Hybrid controllers 

   ForCES was built for the hybrid environment where routing and 
   switching protocol.   

   OFS is now entering the processing of standardizing for hybrid 
   controllers [OFS-1.2]. 

6. Security Considerations 

   No security considerations.  

   This is an informational comparison used to inform clarify ForCES 
   work.   

7. IANA Considerations 

   No IANA considerations. 

8. Conclusions 

   Both ForCES and OpenFlow follow the basic idea of separations of 
   forwarding plane and control plane in network elements. Both are 
   capable of operating for centralized control, distributed control, 
   and hybrid control.  

   [OFS-1.1] Flow Table Logic with the instructions and Group Tables 
   is the major difference between the ForCES RFCs.  As this paper 
   has shown, the full ramifications of this difference need to be 
   considered in terms of differences in capability of 
   implementation. The author welcomes any additional implementation 
   experience.   


 
 
Hares, et al.          Expires November, 6 2012               [Page 42] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   [OFS-1.0][OFS-1.1] lacks a forwarding model, a standardized LFB 
   library and the concepts of FE-CE associations (FE-Manger, CE-
   Manager, pre/post association phase). It appears the OpenFlow 
   work is starting to invent the equivalent of existing ForCES work 
   as OpenFlow work. The guide of this reinventing seems to be the 
   Google code snippets passed to the OpenFlow Forum as examples of 
   "running code" to provide rough consensus.  

9. References 

9.1. Normative References 

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 
             Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [RFC5810] Doria, A., Hadi Salim, J., Haas, R., Khosravi, H., Wang, 
             W., Dong, L., Gopal, R., and J. Halpern, "Forwarding 
             and Control Element Separation (ForCES) Protocol 
             Specification", RFC 5810, March 2010.  

   [RFC5812] Halpern, J. and J. Hadi Salim, "Forwarding and Control 
             Element Separation (ForCES) Forwarding Element Model", 
             RFC 5812, March 2010. 

   [RFC5811] Hadi Salim, J. and K. Ogawa, "SCTP-Based Transport 
             Mapping Layer (TML) for the Forwarding and Control 
             Element Separation (ForCES) Protocol", RFC 5811, March 
             2010  

9.2. Informative References 

   [McKeown2008]   
             McKeown, N., Anderson, T., Balakrishnan, H., et al, 
             "Openflow: enabling innovation in campus networks", ACM 
             SIGCOMM Computer Communication Review. 2008, 38(2):69-
             74. 

   [OFS-1.0.0] 

             OpenFlow Switch Specification - Version 1.0.0 (Wire 
             Protocol 0x01), December 31, 2009.  

   [OFS-1.0.1-rc3] OpenFlow Switch Errata - Version 1.0.1-r3, June 
             12, 2012. 



 
 
Hares, et al.          Expires November, 6 2012               [Page 43] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   [OFS-1.1.0]  
             OpenFlow Switch Specification Version 1.1.0 (Wire 
             Protocol 0x02). February 2011. 
             (http://www.openflow.org/documents/openflow-spec-
             v1.1.0.pdf) 

   [OpenFlow-1.2] Open Flow 1.2 - Hybrid Switch (Terminology, Use 
             cases, etc), April-May notes, work-in-progress.   

   [OFS-1.3-rc4[ OpenFlow Switch Specification 1.3 (version 1.3-rc4) 
             (Wire Protocol 0x04)  April4, 2012.  [OpenFlow members 
             only]  

   [OFS-1.1.0]  
             OpenFlow Switch Specification Version 1.1.0 (Wire 
             Protocol 0x02). February 2011. 
             (http://www.openflow.org/documents/openflow-spec-
             v1.1.0.pdf) 

    

   [OFC-1.0] OpenFlow Configuration and Management Protocol OF-
             CONFIG 1.0 (January 15, 2012).  

   [RFC3654] Khosravi, H. and T. Anderson, "Requirements for 
             Separation of IP Control and Forwarding", RFC 3654, 
             November 2003. 

   [RFC3746] Yang, L., Dantu, R., Anderson, T., and R. Gopal,              
             "Forwarding and Control Element Separation (ForCES)              
             Framework", RFC 3746, April 2004. 

   [LFB-Lib] Wang W., Haleplidis E., Ogawa K., Li C., J. Halpern, 
             "ForCES Logical Function Block (LFB) Library", draft-
             ietf-forces-lfb-lib-06, Work in Progress. 

    

10. Acknowledgments 

   The author would like to thank Tina Tsou, Zhiliang Wang,Jing 
   Huang, Xingang Shi, and Xia Yin. Their earlier draft comparing 
   the FORCES and ONF Technology inspired this draft providing an 
   opposing viewpoint.  It is said that "iron sharpens iron" so that 
   in our debates we sharpen our understandings.   


 
 
Hares, et al.          Expires November, 6 2012               [Page 44] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

   The author also acknowledges Edward Crabbe's succinct comments 
   which also inspired the in-depth comparison found in this draft. 
   I only hope that this "wordy" draft proves worth of his pithy and 
   concise insights.  

    

    



 
 
Hares, et al.          Expires November, 6 2012               [Page 45] 
    
Internet-Draft           OpenFlow vs. ForCES              July 12, 2012 
    

Authors' Addresses 

   Susan Hares  
   Huawei Technologies (USA) 
   2330 Central Expressway 
   Santa Clara, CA  95050 
   USA 
      
   Email: Susan Hares Susan.Hares@huawei.com 
    
 
Hares, et al.          Expires November, 6 2012               [Page 46]