formal modeling of an openflow switch using alloy n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Formal Modeling of an Openflow Switch using Alloy PowerPoint Presentation
Download Presentation
Formal Modeling of an Openflow Switch using Alloy

Loading in 2 Seconds...

play fullscreen
1 / 16

Formal Modeling of an Openflow Switch using Alloy - PowerPoint PPT Presentation


  • 166 Views
  • Uploaded on

Formal Modeling of an Openflow Switch using Alloy. Natali Ruchansky and Davide Proserpio. Outline. Background Openflow Alloy Our model Inside the switch Functionalities Properties (some of them) Extensions and future work. SDN and Openflow. Software Defined Network (SDN)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Formal Modeling of an Openflow Switch using Alloy' - calvin


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
formal modeling of an openflow switch using alloy

Formal Modeling of an Openflow Switch using Alloy

NataliRuchansky and DavideProserpio

outline
Outline
  • Background
    • Openflow
    • Alloy
  • Our model
    • Inside the switch
    • Functionalities
    • Properties (some of them)
  • Extensions and future work
sdn and openflow
SDN and Openflow
  • Software Defined Network (SDN)
    • decoupling between data and control plane access 
  • Openflow
    • a standard interface for controlling computer network switches
  • Simplify networks administration
  • Very useful for research
alloy
Alloy
  • Language and tool for relational models
  • Mixture of first order logic and relational algebra
  • Applications
    • Find security holes
    • Verify specifications (e.g. switching networks)
our switch model
Our switch model
  • We model a Snapshot
    • Not a working system!
    • Possible events at any specific instance
  • We provide a context network
    • Network
    • Controller
    • End Hosts
    • Switches
    • Packets
  • Simplest network: 2 hosts, a switch and a controller

Extend Nodes

inside the switch
Inside the Switch
  • Tables
    • Pipeline line implementation
      • Exists first/last table, no loops
  • Entries (flows)
    • Match fields
      • Compare to packet headers
    • Instructions
      • indicate what to do with packets
    • Counters
      • Keep track of statistics
  • Ports
    • Connect nodes
    • Every port has an owner
functionalities
Functionalities
  • Packet handling
    • Checking for a match and act accordingly
  • Table modification
    • Add and delete
  • Messaging
    • Openflow
      • Controller-to-switch, asynchronous, symmetric
    • Data
example add and d elete
Example: Add and Delete
  • Flow table modification messages
    • Add
      • If overlap flag & overlap: drop
      • No overlap flag: insert (replace if identical) entry
    • Delete
      • Strict (delete identical entries)
      • ..and not strict version (delete all overlapped entries)

//Add entry to a table

predadd[t,t':Table,e:Entry]{(t'.entries=t.entries+e)}

preddelete[t,t':Table,e:Entry]

{e instrictEntry =>t'.entries=t.entries-e  

elset'.entries=t.entries-findOverlap[e,t]}

properties implemented some
Properties implemented (some)
  • NoForwardingLoop
    • This is ensured by checking that a packet entering a switch has not previously entered the switch.
  • NoBlackHoles
    • No packet mysteriously disappears from the system.
  • EchoAwareness
    • In our model, the Switch can be in two states – either it has received an echo reply, or it is awaiting one.
  • NoForgottenPackets
    • Any packet the Switch receives is eventually processed
  • CorrectInstall
    • Upon receipt of a new flow rule, the installation is correct.
noforwardingloop
NoForwardingLoop
  • We check for every packet if it has already been received/sent by any port of the switch

prednoForwardingLoop[s:Switch, p:Packet]

{noport:s.ports | port in(p.seen)}

echoawareness
EchoAwareness
  • the Switch can be in two states – either it has received an

echo reply, or it is awaiting one.

//send echo

predSwitch.echoTest[] {this.s2c_sendPacket[s2cPacket,s2cPacket,EchoT3] &&this.connectionStatus=waiting}

//change status

predSwitch.Echo[type: Type,]{type=EchoT1 => this.s2c_sendPacket[s2cPacket,s2cPacket,HelloT]

&& type=EchoT2 =>this.connectionStatus=acked}

more properties
More properties
  • FIFOprocessing
    • the model does not have a queue – we chose to set any queueingaside and have Packets processed on a first-come first-serve basis.
  • InstantOFRespones
    • When a Switch receives an Openflowmessage from the Controller, it answers right away
  • NoForgottenPackets
    • Any packet the Switch receives is eventually processed
extensions
Extensions
  • Notion of “time” (Done)
    • Implemented using module Ordering
  • Group tables and group types
  • Test specific applications/protocols