Internet DRAFT - draft-shin-sdnrg-formal-verification

draft-shin-sdnrg-formal-verification



 



Network Working Group                                           M-K. Shin
Internet-Draft                                                     S. Lee
Intended status: Informational                                       ETRI  
Expires: October 2014                                            


                                                        February 12, 2014

        Formal Verification for Software-Defined Networks (SDN)
                draft-shin-sdnrg-formal-verification-00

Abstract         

   To design and implement networks that conform to the design goals of
   SDN network topology, the structure and behavior of the networks need
   to be formally verified to prevent from misinterpreting of the
   intended meanings and to avoid inconsistency in the networks. This
   document discusses basic requirements, framework, and case studies of
   formal verification for SDN. 


Requirements Language

   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].

Status of this Memo

   This Internet-Draft is submitted to IETF 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.

 


Shin et al.,              Expires October 2014                  [Page 1]

Internet-Draft        Formal Specification for SDN     February 12, 2014


   This Internet-Draft will expire on September 1, 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.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1. Introduction ....................................................3 
   2. SDN Discussion and Assumption ...................................3
   3. Basic Requirements of SDN Application Verification ..............4
   4. Formal Verification Framework for SDN ...........................5
   5. Case Study : Formal Language - pACSR  ...........................5
   6. Case Study : Case Study : Symbolic Verification and Properties ..7
   6. Security Considerations .........................................8 
   7. Acknowledgements ................................................8
   8. References ......................................................8
     8.1 Normative References .........................................8
     8.2 Informative References .......................................8
   Authors' Addresses ................................................10
















 


Shin et al.,              Expires October 2014                  [Page 2]

Internet-Draft        Formal Specification for SDN     February 12, 2014


1. Introduction

   Software-defined networking (SDN) is defined as a technology to
   enable network operators to directly control and manage their
   networks and resources to best serve their needs by writing simple
   software. In SDN world, it becomes important to verify the safety
   properties of SDN using formal method before the deployment of SDN
   applications. This document discusses basic requirements, framework,
   and case studies of formal verification for SDN. 


2. SDN Discussion and Assumption

   SDN architectural issues are not fully investigated yet, because it
   is very hard to build a single SDN architecture to accommodate and
   harmonize various requirements from network operators,
   application/service providers and vendors' perspectives. In this
   document, it is assumed that SDN has three-tier architecture as
   illustrated in Figure 1.  


                +----+ +----+ +----+
         Tier-3 |SDN | |SDN | |SDN | 
                |Apps| |Apps| |Apps| ....
                |    | |    | |    |
                +----+ +----+ +----+
         - - - - - - - - - - - - - - Open Interface
         Tier-2 +------------------------------+
                |     SDN Control Software     |  
                +------------------------------+
         - - - - - - - - - - - - - - Open Interface   
                +--------+ +--------+ +--------+  
         Tier-1 |  SDN   | |  SDN   | |  SDN   | ...
                | Devices| | Devices| | Devices|
                +--------+ +--------+ +--------+

            Figure 1 Three-Tier Architecture for SDN

    o Tier-1 : Forwarding entities and any software/hardware components 
               comprising of them
    o Tier-2 : Control and management entities for the Tier-1
    o Tier-3 : Applications and services that take advantage of the 
               infrastructures based on Tier-1 and Tier-2.





 


Shin et al.,              Expires October 2014                  [Page 3]

Internet-Draft        Formal Specification for SDN     February 12, 2014


3. Basic Requirements of SDN Application Verification

   Formal methods for SDN can fit in any of those Tiers or in between
   two Tiers as shown in Figure 1. Key requirements of applying formal
   methods to SDN can be identified as follows:

    R1. Programmable network devices can be customized in software or 
        hardware, or combination of them, depending on the requirements 
        from network operators to produce optimal solution for their uses. 
        Formal methods for SDN can help guarantee that the design and the 
        implementation of programmable network devices conform to the 
        standards, correctness and safety properties.

    R2. Network operators in SDN can check consistency and safety of their
        network configurations and virtual/physical topologies by formally
        verifying their configuration against any properties to be satisfied 
        with such as:
         - No loops and/or blackholes in the network.
         - No rule or behavior conflicts between multiple applications in 
           a controller software
         - Logically different networks cannot interfere with each other 
           (e.g., traffic isolation).
         - New or update configurations conforms to properties of the 
           network and do not break consistency of existing networks 
          (e.g., dynamic network update).

    R3. Support of formal semantics in languages, APIs, and underlying 
        protocols for SDN
         - Languages that interface with control and management entities 
           should have formal semantics to avoid any confusion in the
           interpretation of underlying mechanism and/or network 
           configuration.
         - Description of programmable network devices' behavior such as
           switches, and protocols for controlling those devices, need to be
           proved safe and consistent to provide stable foundation of the 
           SDN application and services.

    R4. Support of conceptual models to reason about networks defined, 
        configured, implemented by software and hardware for SDN more 
        precisely.        
         - Timing models that capture essential properties and behaviors 
           of packet flows and data traffic in SDN-based networks.
         - Formalisms that reflect networks and systems behaviors. 
         - High-level programming languages and tools (e.g., compiler,
           debugger, etc.) based on the conceptual model can be developed.



 


Shin et al.,              Expires October 2014                  [Page 4]

Internet-Draft        Formal Specification for SDN     February 12, 2014


4. Formal Verification Framework for SDN 

   In this clause, we present a formal verification framework for SDN.
   in this framework, a set of toolset including SDN language compiler
   and verifier, etc. on top of SDN control software. Figure 2
   illustrates formal verification framework for SDN applications.


                +----+ +----+ +----+
         Tier-3 |SDN | |SDN | |SDN | 
                |Apps| |Apps| |Apps| ....
                |    | |    | |    |
                +----+ +----+ +----+
         - - - - - - - - - - - - - - Open Interface
                +------------------------------+
                | +-------------+ +----------+ |         
                | |SDN languages| | Verifier | |
                | +-------------+ +----------+ |
                | +--------------------------+ | 
                | |      SDN compilers       | |
                | +--------------------------+ |
         Tier-2 +------------------------------+
                |     SDN Control Software     |  
                +------------------------------+
         - - - - - - - - - - - - - - Open Interface   
                +--------+ +--------+ +--------+  
         Tier-1 |  SDN   | |  SDN   | |  SDN   | ...
                | Devices| | Devices| | Devices|
                +--------+ +--------+ +--------+

        Figure 2 SDN formal language and verification tools 


5. Case Study : Formal Language - pACSR 

   There have been continuous efforts and progresses regarding the
   research on the formal verification for SDN. However, we observe that
   there are still issues to make these works practical. First,
   semantics to abstract consistent network updates should be embedded
   into SDN protocols. Also, the notion of SDN resource (e.g.,
   OpenFlow's flow table) in a formal language should be suited to model
   time consumed concurrently by the each SDN devices. Lastly, its
   verification method should be enough to be scalable with a number of
   large and complex SDN resources and devices. The novel aspect of our
   approach is to add semantics transparently into SDN operations with
   timed process algebra. In case of OpenFlow protocol, with the global
   flow table and DBs maintained by a logically-centralized controller,
   the flow table's behaviors and its status can be dynamically
 


Shin et al.,              Expires October 2014                  [Page 5]

Internet-Draft        Formal Specification for SDN     February 12, 2014


   translated with minimum semantics in our Packet Algebra of
   Communicating Shared Resources (pACSR) language and analyzed
   automatically, all within a process-algebraic and symbolic
   verification framework. Our work is a step toward such an
   integration, which helps to verify and debug SDN applications by
   making the timed process algebra - pACSR a useful formalism for
   supporting the development of reliable SDN applications. In addition,
   the newly-added semantics is transparent to both SDN application
   (e.g., C, Java, etc.) programmers and operators so the underlying
   verification process is hidden to them and there is no burden to
   understand the details of formal verification method by them.

   ACSR is a formal language for behavior modeling using concepts of
   processes, resources, events, and priorities, which was originally
   developed for the formal verification of real-time embedded systems
   and CPS (Cyber Physical Systems). In both CPS and SDN, software is
   the key because it's the software that determines system and network
   complexity. So, there are the same issues on how to model and
   abstract their real-time, concurrent behaviors and feedback controls.
   ACSR, like other process algebras, consists of a set of operators and
   syntactic rules for constructing process; a semantic mapping which
   assigns meaning or interpretation to processes; a notion of
   equivalence or partial order between process; and a set of algebraic
   laws that allows syntactic manipulation of processes. ACSR uses two
   distinct action types to model computation: time and resource-
   consuming actions, and instantaneous events. 

   In this document, pACSR (Packet ACSR, pronounced as "pacser") extends
   the process algebra ACSR by allowing network packets to be
   communicated along network ports to describe SDN protocols'
   behaviors. In pACSR, values passed through ports are network packets
   (packet passing) and packets can also be passed as parameters for
   process. The following pACSR description shows a simple example of
   semantics with packet passing and parameterized process with packet,
   which could be seamlessly added in the global flow table's behaviors
   managed by OpenFlow controller. 

      P(x) := matchSrcPacket(x,field) -> port!x.nil
      S := port?y.nil
      Sys := (P(x) || S)/{port}

   P(x) represents a process that has packet x as a parameter. Once
   process P gets a packet x, it checks with a predefined predicate
   matchSrcPacket(). If the condition in a match field of packet x is
   satisfied, process P sends packet x through port which is represented
   as port!x. After the egress of packet x, process P becomes nil.
   Otherwise, it becomes nil also in this example. In case of process S,
   it gets packet through port and names it as y and becomes nil.
 


Shin et al.,              Expires October 2014                  [Page 6]

Internet-Draft        Formal Specification for SDN     February 12, 2014


   Process Sys represents parallel composition of P(x) and S, that is
   process P(x) and S are running in parallel. pACSR has other features
   such as predefined predicates (PP) and predefined functions (PF). The
   term matchSrcPacket in example above is the PP. There could be many
   predicates predefined as need as long as they don't have side
   effects.


6. Case Study : Symbolic Verification and Properties 

   Since pACSR is the fundamental formal language for the verification
   framework, it needs to be analyzed symbolically during symbolic
   verification stage. So, pACSR language compiler and symbolic
   verification toolset are placed between a SDN controller and set of
   devices. The global flow table managed by a centralized controller is
   dynamically translated into pACSR description in an event-driven way,
   by the pACSR generator to capture the semantics of OpenFlow's flow
   table. The property verifier reads pACSR description and internally
   generates symbolic transition graph (STG) from pACSR description.
   Then symbolic verification algorithm for a given property will be
   applied onto STG and the Boolean expression is generated as a
   verification result that should be satisfied for the verified
   property to be valid.

   The verification properties could be classified as follows : 

     o Basic network properties
        - No loop
        - No blackhole (e.g., packet loss)
        - Performance checking
        - Security holes, etc.

     o SDN-specific properties
        - OF rule consistency between multiple applications 
        - Dynamic info/statistics consistency (e.g., flow, port, QoS, etc.) 
        - Consistency with legacy protocols (e.g., STP)

   This verification framework is naturally suited to model SDN, since
   pACSR is expressive enough to represent timed process and real-time
   software behaviors. So it can model packet passing between switches
   concurrently so that it allows to model flow tables naturally. The
   notion of resource in pACSR is also well suited to model time
   consumed by the each switches. Furthermore, the PP and PF allows
   pACSR to model the relatively complex behavior of SDN switches. Due
   to the fact that the complexity caused by complex behavior of
   switches are described using PP and PF, the state explosion problem
   occurring during resolution of parallel composition and the notion of
   choice operation tends to be reduced. With our proposed approach, the
 


Shin et al.,              Expires October 2014                  [Page 7]

Internet-Draft        Formal Specification for SDN     February 12, 2014


   complexity of parallelism and the complexity of verification
   algorithm are separated in the sense that the parallelism is handled
   by process algebraic formal language, pACSR, and verification only
   need to be based on graph theoretic algorithms. We have developed an
   early prototype to support the pACSR description and its symbolic
   verification as a kind of application/toolset on top of FloodLight
   controller. We believe that this toolset will allow us to
   experimentally evaluate the effectiveness of our approach with a
   number of large scale SDN systems. We also think other SDN and NFV
   protocols, such as I2RS, segment routing, NFV forwarding graph and
   service functions chains, could be also similarly represented and
   verified by abstracting and adding these-like semantics according to
   their protocol behaviors.

6.  Security Considerations

   TBD


7. Acknowledgements 

   The authors would like to thank theory and formal methods lab members
   in Korea University for their process algebraic specification
   support.


8.  References

8.1.  Normative References

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


8.2.  Informative References

   [b-Nate11] N. Foster, R. Harrison, M. L. Meola, M. J. Freedman, J.
              Rexford, and D. Walker, Frenetic:A High-Level Language for
              OpenFlow Networks, ICFP, 2011.

   [Frenetic] Frenetic project http://frenetic-lang.org/index.php

   [b-Kang12] M. Kang et al., Formal Specification for Software-Defined
              Networks (SDN), CFI'12, 2012.

   [b-Yi13] J. Yi, et al., Draft Recommendation of Y.FNsdn-fm
              "Requirements of formal specification and verification
              methods for software-defined networking, ITU-T (work in
 


Shin et al.,              Expires October 2014                  [Page 8]

Internet-Draft        Formal Specification for SDN     February 12, 2014


              progress), 2013.

   [b-Kwak98a] H. Kwak, J. Choi, I. Lee, and A. Philippou. Symbolic weak
              bisimulation for value-passing calculi. Technical Report,
              MS-CIS-98-22, Department of Computer and Information
              Science, University of Pennsylvania, 1998.

              [b-Kwak98b] H. Kwak, I. Lee, A. Philippou, and J. Choi,
              Symbolic Schedulability Analysis of Real-time Systems, In
              IEEE Real-Time Systems Symposium, December 1998.

   [b-ACSR95] J. Choi, I. Lee, and H. Xie, The Specificatoin and
              Schedulability Analysis of Real-Time Systems Using ACSR,
              16th IEEE Real-Time Systems Symp.(RTSS'95), Dec. 1995.


































 


Shin et al.,              Expires October 2014                  [Page 9]

Internet-Draft        Formal Specification for SDN     February 12, 2014


Authors' Addresses

      Myung-Ki Shin
      ETRI
      161 Gajeong-dong Yuseng-gu
      Daejeon, 305-700
      Korea

      Phone: +82 42 860 4847
      Email: mkshin@etri.re.kr


      Seungik Lee
      ETRI
      161 Gajeong-dong Yuseng-gu
      Daejeon, 305-700
      Korea

      Phone: +82 42 860 1483
      Email: seungiklee@etri.re.kr































Shin et al.,              Expires October 2014                 [Page 10]