SlideShare a Scribd company logo
1 of 28
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

More Related Content

What's hot

Selective repeat protocol
Selective repeat protocolSelective repeat protocol
Selective repeat protocolManusha Dilan
 
The History and Evolution of SDN
The History and Evolution of SDNThe History and Evolution of SDN
The History and Evolution of SDNNapier University
 
Interconnection Network
Interconnection NetworkInterconnection Network
Interconnection NetworkHeman Pathak
 
MPLS L3 VPN Deployment
MPLS L3 VPN DeploymentMPLS L3 VPN Deployment
MPLS L3 VPN DeploymentAPNIC
 
Osi reference model and the tcp
Osi reference model and the tcpOsi reference model and the tcp
Osi reference model and the tcpAgrippa Mungazi
 
Segment routing tutorial
Segment routing tutorialSegment routing tutorial
Segment routing tutorialYi-Sung Chiu
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptxINTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptxLECO9
 
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process CommunicationAdeel Rasheed
 
A very good introduction to IPv6
A very good introduction to IPv6A very good introduction to IPv6
A very good introduction to IPv6Syed Arshad
 
Distance Vector Multicast Routing Protocol (DVMRP) : Combined Presentation
Distance Vector Multicast Routing Protocol (DVMRP) : Combined PresentationDistance Vector Multicast Routing Protocol (DVMRP) : Combined Presentation
Distance Vector Multicast Routing Protocol (DVMRP) : Combined PresentationSubhajit Sahu
 
Network Address Translation (NAT)
Network Address Translation (NAT)Network Address Translation (NAT)
Network Address Translation (NAT)Joud Khattab
 
Using BGP To Manage Dual Internet Connections
Using BGP To Manage Dual Internet ConnectionsUsing BGP To Manage Dual Internet Connections
Using BGP To Manage Dual Internet ConnectionsRowell Dionicio
 

What's hot (20)

Selective repeat protocol
Selective repeat protocolSelective repeat protocol
Selective repeat protocol
 
The History and Evolution of SDN
The History and Evolution of SDNThe History and Evolution of SDN
The History and Evolution of SDN
 
Interconnection Network
Interconnection NetworkInterconnection Network
Interconnection Network
 
MPLS L3 VPN Deployment
MPLS L3 VPN DeploymentMPLS L3 VPN Deployment
MPLS L3 VPN Deployment
 
Route Redistribution
Route RedistributionRoute Redistribution
Route Redistribution
 
Osi reference model and the tcp
Osi reference model and the tcpOsi reference model and the tcp
Osi reference model and the tcp
 
Thin client
Thin clientThin client
Thin client
 
Segment routing tutorial
Segment routing tutorialSegment routing tutorial
Segment routing tutorial
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptxINTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptx
 
Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)
 
Routing ppt
Routing pptRouting ppt
Routing ppt
 
Tcp IP Model
Tcp IP ModelTcp IP Model
Tcp IP Model
 
HDLC
HDLCHDLC
HDLC
 
Application Layer
Application Layer Application Layer
Application Layer
 
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process Communication
 
A very good introduction to IPv6
A very good introduction to IPv6A very good introduction to IPv6
A very good introduction to IPv6
 
Xen & virtualization
Xen & virtualizationXen & virtualization
Xen & virtualization
 
Distance Vector Multicast Routing Protocol (DVMRP) : Combined Presentation
Distance Vector Multicast Routing Protocol (DVMRP) : Combined PresentationDistance Vector Multicast Routing Protocol (DVMRP) : Combined Presentation
Distance Vector Multicast Routing Protocol (DVMRP) : Combined Presentation
 
Network Address Translation (NAT)
Network Address Translation (NAT)Network Address Translation (NAT)
Network Address Translation (NAT)
 
Using BGP To Manage Dual Internet Connections
Using BGP To Manage Dual Internet ConnectionsUsing BGP To Manage Dual Internet Connections
Using BGP To Manage Dual Internet Connections
 

Similar to SDN Networks Programming Languages

lect4_SDNbasic_openflow.pptx
lect4_SDNbasic_openflow.pptxlect4_SDNbasic_openflow.pptx
lect4_SDNbasic_openflow.pptxJesicaDcruz1
 
Frenetic: A Programming Language for OpenFlow Networks
Frenetic: A Programming Language for OpenFlow NetworksFrenetic: A Programming Language for OpenFlow Networks
Frenetic: A Programming Language for OpenFlow NetworksOpen Networking Summits
 
FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerHolger Winkelmann
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & EcosystemKingston Smiler
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
 
Open Flow Protocol
Open Flow ProtocolOpen Flow Protocol
Open Flow ProtocolVishal S M B
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Joel W. King
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
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 SDNnvirters
 
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
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 NetworkOpen Networking Summits
 
F14_Class1.pptx
F14_Class1.pptxF14_Class1.pptx
F14_Class1.pptxSameer Ali
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
Software Defined Networking(SDN) and practical implementation_trupti
Software Defined Networking(SDN) and practical implementation_truptiSoftware Defined Networking(SDN) and practical implementation_trupti
Software Defined Networking(SDN) and practical implementation_truptitrups7778
 

Similar to SDN Networks Programming Languages (20)

lect4_SDNbasic_openflow.pptx
lect4_SDNbasic_openflow.pptxlect4_SDNbasic_openflow.pptx
lect4_SDNbasic_openflow.pptx
 
Frenetic: A Programming Language for OpenFlow Networks
Frenetic: A Programming Language for OpenFlow NetworksFrenetic: A Programming Language for OpenFlow Networks
Frenetic: A Programming Language for OpenFlow Networks
 
FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow Controller
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & Ecosystem
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Open Flow Protocol
Open Flow ProtocolOpen Flow Protocol
Open Flow Protocol
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1
 
10 sdn-vir-6up
10 sdn-vir-6up10 sdn-vir-6up
10 sdn-vir-6up
 
Software Defined Networking: Primer
Software Defined Networking: Primer Software Defined Networking: Primer
Software Defined Networking: Primer
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
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
 
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
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
OpenFlowOpenFlow
OpenFlow
 
F14_Class1.pptx
F14_Class1.pptxF14_Class1.pptx
F14_Class1.pptx
 
4_SDN.pdf
4_SDN.pdf4_SDN.pdf
4_SDN.pdf
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
SDN approach.pptx
SDN approach.pptxSDN approach.pptx
SDN approach.pptx
 
Raga_SDN_NSX_1
Raga_SDN_NSX_1Raga_SDN_NSX_1
Raga_SDN_NSX_1
 
Software Defined Networking(SDN) and practical implementation_trupti
Software Defined Networking(SDN) and practical implementation_truptiSoftware Defined Networking(SDN) and practical implementation_trupti
Software Defined Networking(SDN) and practical implementation_trupti
 

Recently uploaded

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 

Recently uploaded (20)

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 

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