SDN Networks Programming Languages

Flavio Vit
Flavio VitSoftware Development Tech Coordinator um Ericsson
Network
Programming Languages
Author: Flavio Vit
Course: UNICAMP –MO611
Teleprocessamento e Redes
Professor: Nelson da Fonseca
June 18, 2014
Agenda
• Introduction
• Flog
• Nettle
• FatTire
• Comparisons
Introduction
• Flog: Logic Programming for Software-Defined
Networks
• Nettle: Taking the Sting Out of Programming
Network Routers
• FatTire: Fault Tolerating Regular Expressions
Networks Management
In the past …
• Networks managed through a set of complex,
low-level, and heterogeneous interfaces
• Firewalls + network address translators + load
balancers + routers + switches == Configured
separately
• Thousands of lines low-level code in different
domain-specific languages
• Complex routing mechanisms (error-prone tasks)
Software Defined Networks
Recently …
• SDN – Software Defined Networks
• Logically centralized Controller:
– Managing distributed switches
– General purpose machines
– Working on routing decisions
– Instruct the switches to install the necessary
packet-forwarding rules.
Flog - An SDN Logic Programming
Language
• SDN packet-forwarding rule
 Predicate + Action + Priority
• Example:
 Predicate: match packets based on the IP header
(MAC, IP, etc.)
 Action: Drop, forward or flood the packet to ports
 Priority: rules are executed according with priorities
Flog
• Combines two programing languages:
– FML:
• set of high-level built-in policy operators (SDN abstractions)
• allow/deny certain flows
• provide quality of service
• Programing model Not flexible
– Frenetic:
• declarative query language - SQL-like syntax
• functional stream-processing language
• language for describing packet forwarding
Flog
• From FML:
– Programming for controlling software-defined
networks
• From Frenetic:
Controller programs split into :
1. Mechanism for querying network state
2. Mechanism for processing data extracted from
queries
3. Component for generating packet-forwarding policies
(automatically push to the switches)
Flog
• Event driven => execution of logic programs
1. Generates a packet-forwarding policy
compiled and deployed on switches
2. Generates states : drive the logic program when
the next network event is processed
Flog
• Network Events:
– Switches online / offline
– Ports on switches active / inactive
– Statistics gathered by switches
– Packets arrive at the controller and require
handling
Flog
• Flow rule syntax example:
flow(srcip=IP,vlan=V), V > 0 --> myvlans(IP,V)
• When vlan tag is greater than 0, generate a
network event every time a packet with a new
srcip - vlan tag pair is detected
• When this event generated, the rest of the
logic program will be executed.
• The initial data for the logic program will
include the tuple myvlans(IP,V)
Flog
Police Generation:
• generating a routing policy for network switches:
h1(F1), h2(F2), ... |> action, level(i)
left of the |> : kinds of packets that match the forwarding
rule. Specifies the packet fields (and switch and ports) that
match the rule.
right of the |> :
action where to forward or flood the packets or how
to modify them.
level specifies the priority of the rule.
Flog
• Example:
# Network Events
flow(dstip=IP), inport=2 --> seen(IP)
# Information Processing
seen(IP) +-> allow(IP)
allow(IP) +-> allow(IP)
# Policy Generation
inport(2) |> fwd(1), level(0)
allow(IP) -->
srcip(IP), inport(1) |> fwd(2), level(0).
Nettle - Taking the Sting Out of
Programming Network Routers
• Networks of OpenFlow switches controlled using
a high-level, declarative and expressive language
• Based on the principles of functional reactive
programming (FRP)
• Embedded in Haskell => general-purpose purely
functional programming language.
• Domain Specific Language
Nettle
• Layered architecture
Family of DSLs - each member
capturing a different network
abstraction
Haskell host language
OpenFlow switches
Nettle / OpenFlow lib
instantiation of the Functional Reactive
Programming
Nettle
• Nettle/FRP  as a language for expressing
electrical circuits
• Haskell’s arrow syntax:
y ← sigfun −≺ x
Nettle
• Focus on the stream of control messages
among OpenFlow switches
• Nettle => powerful collection of
– Signal functions
– Event operators
Nettle
OpenFlow switches maintains flow table with
flow entries:
match IPs, header fields
• Forwarding actions to specific ports, flooding,
dropping packets
are updated
• Expirations settings expires a flow entry after
prescribed time
Nettle
• Nettle Controller transforms:
stream of messages from switches
stream of commands for switches
Nettle
• Example: install the flow rule, whenever a
switch joins the network
FatTire: Fault Tolerating Regular
Expressions
• Programs for fault tolerant Networks
• Based on regular expressions
• Main features:
Expressive: easy to describe forwarding and fault
tolerant policies
Efficient: based on fast failover from OpenFlow
Correct: reasoning about the behavior of the
system during failure recovery
FatTire
• Central feature: Regular expressions for sets
of legal paths through the network
• FatTire programs are translated to OpenFlow
switch configurations
• Automatic response to link failures with no
controller intervention
FatTire
• Example :OpenFlow Group and Route Tables
FatTire
• Group and Rule Tables for previous slide
FatTire
• Syntax:
FatTire
• FatTire program for this example
Security policy: All
SSH traffic must traverse the IDS
- regular expressions
over switches to describe legal
paths
Fault-tolerance policy: “with”
annotation
Forwarding must be resilient to
a single link failure.
Routing policy:
Traffic from the gateway (GW)
must be forwarded to the
access switch (A), along any
path
Comparisons
Prog Lang Main Characteristic Advantages Disadvantages
Flog - Network Event
driven
- Focused on packets
flow
- Simple
- Combines Frenetic
and FML
Too simple and
limited to flow
control
FatTire Targets fast failover
mechanisms provided
by OpenFlow standard
- High level
- Regular expression
powered
- Turns failover
scenarios easier to
understand
Only focused over
solving link failures
configuration
Nettle - allow fine-grained
control over switch
behavior
- event-based
programming model
- Strong typed
- Extensible
Good question!!!
I buy it!
References
1. Naga Praveen Katta, Jennifer Rexford, and David Walker. Logic
Programming for Software-Defined Networks
1. Mark Reitblatt, Marco Canini, Arjun Guha, and Nate Foster.
Fattire: Declarative fault tolerance for software defined
networks
1. Andreas Voellmy and Paul Hudak. Nettle: Taking the Sting Out
of Programming Network Routers
1 von 28

Recomendados

Mac protocols von
Mac protocolsMac protocols
Mac protocolsjuno susi
15.9K views14 Folien
Link adaptation and Adaptive coding,modulation system von
Link adaptation and Adaptive coding,modulation systemLink adaptation and Adaptive coding,modulation system
Link adaptation and Adaptive coding,modulation systemDILSHAD AHMAD
302 views20 Folien
Leach von
Leach Leach
Leach Shiva Bhardwaj
2.7K views15 Folien
Handoff management von
Handoff managementHandoff management
Handoff managementMounika Uade
14.7K views47 Folien
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ... von
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ...Arun Chokkalingam
6K views25 Folien
802 15-4 tutorial von
802 15-4 tutorial802 15-4 tutorial
802 15-4 tutorialSHUBHAM MORGAONKAR
6.1K views21 Folien

Más contenido relacionado

Was ist angesagt?

WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi... von
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...Arun Chokkalingam
5.3K views25 Folien
Iot rpl von
Iot rplIot rpl
Iot rplDESHPANDE M
1.3K views13 Folien
Intro to wireless sensor network von
Intro to wireless sensor networkIntro to wireless sensor network
Intro to wireless sensor networkVrince Vimal
1.3K views63 Folien
Optical Transport Network von
Optical Transport NetworkOptical Transport Network
Optical Transport NetworkAnuradha Udunuwara
19.3K views20 Folien
6lowpan von
6lowpan6lowpan
6lowpanDwarakanath Tulasi
10.5K views27 Folien
Traffic-adaptive Medium Access Protocol von
Traffic-adaptive Medium Access ProtocolTraffic-adaptive Medium Access Protocol
Traffic-adaptive Medium Access ProtocolGaurav Chauhan
5.5K views10 Folien

Was ist angesagt?(20)

WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi... von Arun Chokkalingam
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
Arun Chokkalingam5.3K views
Intro to wireless sensor network von Vrince Vimal
Intro to wireless sensor networkIntro to wireless sensor network
Intro to wireless sensor network
Vrince Vimal1.3K views
Traffic-adaptive Medium Access Protocol von Gaurav Chauhan
Traffic-adaptive Medium Access ProtocolTraffic-adaptive Medium Access Protocol
Traffic-adaptive Medium Access Protocol
Gaurav Chauhan5.5K views
Wireless Sensor Networks von juno susi
Wireless Sensor NetworksWireless Sensor Networks
Wireless Sensor Networks
juno susi6.5K views
Understanding olt, onu, ont and odn full von S M Tipu
Understanding olt, onu, ont and odn fullUnderstanding olt, onu, ont and odn full
Understanding olt, onu, ont and odn full
S M Tipu1.2K views
5G Network Architecture and Design von 3G4G
5G Network Architecture and Design5G Network Architecture and Design
5G Network Architecture and Design
3G4G69.4K views
Overview 3GPP NR Physical Layer von Eiko Seidel
Overview 3GPP NR Physical LayerOverview 3GPP NR Physical Layer
Overview 3GPP NR Physical Layer
Eiko Seidel27.2K views
Design Issues and Challenges in Wireless Sensor Networks von KhushbooGupta145
Design Issues and Challenges in Wireless Sensor NetworksDesign Issues and Challenges in Wireless Sensor Networks
Design Issues and Challenges in Wireless Sensor Networks
KhushbooGupta1452.8K views
RPL - Routing Protocol for Low Power and Lossy Networks von Pradeep Kumar TS
RPL - Routing Protocol for Low Power and Lossy NetworksRPL - Routing Protocol for Low Power and Lossy Networks
RPL - Routing Protocol for Low Power and Lossy Networks
Pradeep Kumar TS7.6K views
Basics of Wireless sensor networks von Rushin Shah
Basics of Wireless sensor networksBasics of Wireless sensor networks
Basics of Wireless sensor networks
Rushin Shah26K views
A Comparison of Fuzzy ARTMAP von ESCOM
A Comparison of Fuzzy ARTMAPA Comparison of Fuzzy ARTMAP
A Comparison of Fuzzy ARTMAP
ESCOM2.6K views

Similar a SDN Networks Programming Languages

lect4_SDNbasic_openflow.pptx von
lect4_SDNbasic_openflow.pptxlect4_SDNbasic_openflow.pptx
lect4_SDNbasic_openflow.pptxJesicaDcruz1
1 view37 Folien
Frenetic: A Programming Language for OpenFlow Networks von
Frenetic: A Programming Language for OpenFlow NetworksFrenetic: A Programming Language for OpenFlow Networks
Frenetic: A Programming Language for OpenFlow NetworksOpen Networking Summits
327 views20 Folien
FlowER Erlang Openflow Controller von
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerHolger Winkelmann
3.5K views39 Folien
SDN Architecture & Ecosystem von
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & EcosystemKingston Smiler
1.9K views75 Folien
OpenFlow Tutorial von
OpenFlow TutorialOpenFlow Tutorial
OpenFlow TutorialJa-seop Kwak
391 views41 Folien
Introduction to OpenFlow von
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
10K views92 Folien

Similar a SDN Networks Programming Languages(20)

Introduction to OpenFlow von Joel W. King
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
Joel W. King10K views
Security defined routing_cybergamut_v1_1 von Joel W. King
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1
Joel W. King1.7K views
Open vSwitch Introduction von HungWei Chiu
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
HungWei Chiu813 views
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN von nvirters
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters2.2K views
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network von Open Networking Summits
The Challenges of SDN/OpenFlow in an Operational and Large-scale NetworkThe Challenges of SDN/OpenFlow in an Operational and Large-scale Network
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
OpenFlow tutorial von openflow
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
openflow33.5K views
Software Defined Networking(SDN) and practical implementation_trupti von trups7778
Software Defined Networking(SDN) and practical implementation_truptiSoftware Defined Networking(SDN) and practical implementation_trupti
Software Defined Networking(SDN) and practical implementation_trupti
trups777890 views

Último

Electrical Crimping von
Electrical CrimpingElectrical Crimping
Electrical CrimpingIwiss Tools Co.,Ltd
20 views22 Folien
NEW SUPPLIERS SUPPLIES (copie).pdf von
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdfgeorgesradjou
7 views30 Folien
CHI-SQUARE ( χ2) TESTS.pptx von
CHI-SQUARE ( χ2) TESTS.pptxCHI-SQUARE ( χ2) TESTS.pptx
CHI-SQUARE ( χ2) TESTS.pptxssusera597c5
20 views33 Folien
Electronic Devices - Integrated Circuit.pdf von
Electronic Devices - Integrated Circuit.pdfElectronic Devices - Integrated Circuit.pdf
Electronic Devices - Integrated Circuit.pdfbooksarpita
11 views46 Folien
Solar PV von
Solar PVSolar PV
Solar PVIwiss Tools Co.,Ltd
12 views4 Folien
Art of Writing Research article slide share.pptx von
Art of Writing Research article slide share.pptxArt of Writing Research article slide share.pptx
Art of Writing Research article slide share.pptxsureshc91
14 views42 Folien

Último(20)

NEW SUPPLIERS SUPPLIES (copie).pdf von georgesradjou
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdf
georgesradjou7 views
CHI-SQUARE ( χ2) TESTS.pptx von ssusera597c5
CHI-SQUARE ( χ2) TESTS.pptxCHI-SQUARE ( χ2) TESTS.pptx
CHI-SQUARE ( χ2) TESTS.pptx
ssusera597c520 views
Electronic Devices - Integrated Circuit.pdf von booksarpita
Electronic Devices - Integrated Circuit.pdfElectronic Devices - Integrated Circuit.pdf
Electronic Devices - Integrated Circuit.pdf
booksarpita11 views
Art of Writing Research article slide share.pptx von sureshc91
Art of Writing Research article slide share.pptxArt of Writing Research article slide share.pptx
Art of Writing Research article slide share.pptx
sureshc9114 views
Extensions of Time - Contract Management von brainquisitive
Extensions of Time - Contract ManagementExtensions of Time - Contract Management
Extensions of Time - Contract Management
brainquisitive15 views
performance uploading.pptx von SanthiS10
performance uploading.pptxperformance uploading.pptx
performance uploading.pptx
SanthiS107 views
9_DVD_Dynamic_logic_circuits.pdf von Usha Mehta
9_DVD_Dynamic_logic_circuits.pdf9_DVD_Dynamic_logic_circuits.pdf
9_DVD_Dynamic_logic_circuits.pdf
Usha Mehta21 views
7_DVD_Combinational_MOS_Logic_Circuits.pdf von Usha Mehta
7_DVD_Combinational_MOS_Logic_Circuits.pdf7_DVD_Combinational_MOS_Logic_Circuits.pdf
7_DVD_Combinational_MOS_Logic_Circuits.pdf
Usha Mehta50 views
A multi-microcontroller-based hardware for deploying Tiny machine learning mo... von IJECEIAES
A multi-microcontroller-based hardware for deploying Tiny machine learning mo...A multi-microcontroller-based hardware for deploying Tiny machine learning mo...
A multi-microcontroller-based hardware for deploying Tiny machine learning mo...
IJECEIAES10 views
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,... von AakashShakya12
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
AakashShakya1245 views

SDN Networks Programming Languages

  • 1. Network Programming Languages Author: Flavio Vit Course: UNICAMP –MO611 Teleprocessamento e Redes Professor: Nelson da Fonseca June 18, 2014
  • 2. Agenda • Introduction • Flog • Nettle • FatTire • Comparisons
  • 3. Introduction • Flog: Logic Programming for Software-Defined Networks • Nettle: Taking the Sting Out of Programming Network Routers • FatTire: Fault Tolerating Regular Expressions
  • 4. Networks Management In the past … • Networks managed through a set of complex, low-level, and heterogeneous interfaces • Firewalls + network address translators + load balancers + routers + switches == Configured separately • Thousands of lines low-level code in different domain-specific languages • Complex routing mechanisms (error-prone tasks)
  • 5. Software Defined Networks Recently … • SDN – Software Defined Networks • Logically centralized Controller: – Managing distributed switches – General purpose machines – Working on routing decisions – Instruct the switches to install the necessary packet-forwarding rules.
  • 6. Flog - An SDN Logic Programming Language • SDN packet-forwarding rule  Predicate + Action + Priority • Example:  Predicate: match packets based on the IP header (MAC, IP, etc.)  Action: Drop, forward or flood the packet to ports  Priority: rules are executed according with priorities
  • 7. Flog • Combines two programing languages: – FML: • set of high-level built-in policy operators (SDN abstractions) • allow/deny certain flows • provide quality of service • Programing model Not flexible – Frenetic: • declarative query language - SQL-like syntax • functional stream-processing language • language for describing packet forwarding
  • 8. Flog • From FML: – Programming for controlling software-defined networks • From Frenetic: Controller programs split into : 1. Mechanism for querying network state 2. Mechanism for processing data extracted from queries 3. Component for generating packet-forwarding policies (automatically push to the switches)
  • 9. Flog • Event driven => execution of logic programs 1. Generates a packet-forwarding policy compiled and deployed on switches 2. Generates states : drive the logic program when the next network event is processed
  • 10. Flog • Network Events: – Switches online / offline – Ports on switches active / inactive – Statistics gathered by switches – Packets arrive at the controller and require handling
  • 11. Flog • Flow rule syntax example: flow(srcip=IP,vlan=V), V > 0 --> myvlans(IP,V) • When vlan tag is greater than 0, generate a network event every time a packet with a new srcip - vlan tag pair is detected • When this event generated, the rest of the logic program will be executed. • The initial data for the logic program will include the tuple myvlans(IP,V)
  • 12. Flog Police Generation: • generating a routing policy for network switches: h1(F1), h2(F2), ... |> action, level(i) left of the |> : kinds of packets that match the forwarding rule. Specifies the packet fields (and switch and ports) that match the rule. right of the |> : action where to forward or flood the packets or how to modify them. level specifies the priority of the rule.
  • 13. Flog • Example: # Network Events flow(dstip=IP), inport=2 --> seen(IP) # Information Processing seen(IP) +-> allow(IP) allow(IP) +-> allow(IP) # Policy Generation inport(2) |> fwd(1), level(0) allow(IP) --> srcip(IP), inport(1) |> fwd(2), level(0).
  • 14. Nettle - Taking the Sting Out of Programming Network Routers • Networks of OpenFlow switches controlled using a high-level, declarative and expressive language • Based on the principles of functional reactive programming (FRP) • Embedded in Haskell => general-purpose purely functional programming language. • Domain Specific Language
  • 15. Nettle • Layered architecture Family of DSLs - each member capturing a different network abstraction Haskell host language OpenFlow switches Nettle / OpenFlow lib instantiation of the Functional Reactive Programming
  • 16. Nettle • Nettle/FRP  as a language for expressing electrical circuits • Haskell’s arrow syntax: y ← sigfun −≺ x
  • 17. Nettle • Focus on the stream of control messages among OpenFlow switches • Nettle => powerful collection of – Signal functions – Event operators
  • 18. Nettle OpenFlow switches maintains flow table with flow entries: match IPs, header fields • Forwarding actions to specific ports, flooding, dropping packets are updated • Expirations settings expires a flow entry after prescribed time
  • 19. Nettle • Nettle Controller transforms: stream of messages from switches stream of commands for switches
  • 20. Nettle • Example: install the flow rule, whenever a switch joins the network
  • 21. FatTire: Fault Tolerating Regular Expressions • Programs for fault tolerant Networks • Based on regular expressions • Main features: Expressive: easy to describe forwarding and fault tolerant policies Efficient: based on fast failover from OpenFlow Correct: reasoning about the behavior of the system during failure recovery
  • 22. FatTire • Central feature: Regular expressions for sets of legal paths through the network • FatTire programs are translated to OpenFlow switch configurations • Automatic response to link failures with no controller intervention
  • 23. FatTire • Example :OpenFlow Group and Route Tables
  • 24. FatTire • Group and Rule Tables for previous slide
  • 26. FatTire • FatTire program for this example Security policy: All SSH traffic must traverse the IDS - regular expressions over switches to describe legal paths Fault-tolerance policy: “with” annotation Forwarding must be resilient to a single link failure. Routing policy: Traffic from the gateway (GW) must be forwarded to the access switch (A), along any path
  • 27. Comparisons Prog Lang Main Characteristic Advantages Disadvantages Flog - Network Event driven - Focused on packets flow - Simple - Combines Frenetic and FML Too simple and limited to flow control FatTire Targets fast failover mechanisms provided by OpenFlow standard - High level - Regular expression powered - Turns failover scenarios easier to understand Only focused over solving link failures configuration Nettle - allow fine-grained control over switch behavior - event-based programming model - Strong typed - Extensible Good question!!! I buy it!
  • 28. References 1. Naga Praveen Katta, Jennifer Rexford, and David Walker. Logic Programming for Software-Defined Networks 1. Mark Reitblatt, Marco Canini, Arjun Guha, and Nate Foster. Fattire: Declarative fault tolerance for software defined networks 1. Andreas Voellmy and Paul Hudak. Nettle: Taking the Sting Out of Programming Network Routers