SlideShare a Scribd company logo
1 of 49
Download to read offline
Looking at SDN 
with DDS Glasses 
Angelo 
Corsaro, 
PhD 
Chief 
Technology 
Officer 
angelo.corsaro@prismtech.com
Copyright PrismTech, 2014 
Software Defined Networking 
SDN decouples the forwarding 
hardware from control decisions so 
to make the latter programmable 
The controller, implementing the 
control plane, communicates with 
the switching device through, what is 
commonly referred as, the 
southbound API 
Network applications communicate 
with the controller via the 
northbound-API
Copyright PrismTech, 2014 
Northbound API 
The northbound API interface enables applications and the overall management 
system to program the network and request services from it 
No standards have been ratified for northbound APIs, with several dozen open 
and proprietary protocols being developed using different northbound APIs.
Copyright PrismTech, 2014 
Southbound API 
The southbound API defines the programming interface between the controller 
and the network switches 
OpenFlow is one of the most widely accepted standard for the Southbound API
OpenFlow
Copyright PrismTech, 2014 
OpenFlow Overview 
The OpenFlow specification defines the 
components and the basic functions of an 
“OpenFlow” switch along with the protocol it 
uses to communicate with a remote controller
Copyright PrismTech, 2014 
OpenFlow Switch 
An OpenFlow Switch consists of one or more 
flow tables and a group table, which perform 
packet lookups and forwarding, and an 
OpenFlow channel to an external controller 
The controller manages the switch via the 
OpenFlow protocol 
Using this protocol, the controller can add, 
update, and delete flow entries, both 
reactively (in response to packets) and 
proactively
Copyright PrismTech, 2014 
OpenFlow Switch 
Each flow table in the switch contains a set 
of flow entries. Each flow entry consists of 
match fields, counters, and a set of 
instructions to apply to matching packets 
If no match is found in a flow table, the 
outcome depends on switch configuration: 
- the packet may be forwarded to the 
controller over the OpenFlow channel 
- dropped 
- or may continue to the next flow table
Copyright PrismTech, 2014 
OpenFlow Channel 
The OpenFlow channel is the interface that 
connects each OpenFlow switches to a controller 
Through this interface, the controller configures 
and manages the switch, receives events from the 
switch, and sends packets out the switch
Copyright PrismTech, 2014 
OpenFlow Messages 
The OpenFlow protocol supports three message types, controller-to-switch, 
asynchronous, and symmetric 
Controller-to-switch messages are initiated by the controller and used to 
directly manage or inspect the state of the switch 
Asynchronous messages are initiated by the switch and used to update the 
controller of network events and changes to the switch state 
Symmetric messages are initiated by either the switch or the controller and sent 
without solicitation
Copyright PrismTech, 2014 
Controller-to-Switch Messages 
Features: The controller may request the capabilities of a switch by sending a 
features request; the switch must respond with a features reply that specifies the 
capabilities of the switch. This is commonly performed upon establishment of 
the OpenFlow channel. 
Configuration: The controller can set and query configuration parameters in 
the switch 
Modify-State: Modify-State messages are sent by the controller to manage state 
on the switches. Their primary purpose is to add/delete and modify flows/ 
groups in the OpenFlow tables and to set switch port properties
Copyright PrismTech, 2014 
Controller-to-Switch Messages 
Read-State: Read-State messages are used by the controller to collect statistics 
from the switch. 
Packet-out: Used by the controller to send packets out of a specified port on the 
switch, and to forward packets received via Packet-in messages 
Barrier: Barrier request/reply messages are used by the controller to ensure 
message dependencies have been met or to receive notifications for completed 
operations
Copyright PrismTech, 2014 
Asynchronous Messages 
Packet-in: For all packets that do not have a matching flow entry, a packet-in event 
may be sent to the controller (depending on the table configuration) 
Flow-Removed: When a flow entry is added to the switch by a flow modify message, 
an idle timeout value indicates when the entry should be removed due to a lack of 
activity, as well as a hard timeout value that indicates when the entry should be 
removed, regardless of activity. The flow modify message also specifies whether the 
switch should send a flow removed message to the controller when the flow expires. 
Port-status: The switch is expected to send port-status messages to the controller as 
port configuration state changes. These events include change in port status events 
(for example, if it was brought down directly by a user). 
Error: The switch is able to notify the controller of problems using error messages.
Copyright PrismTech, 2014 
Symmetric Messages 
Hello: Hello messages are exchanged between the switch and controller upon 
connection startup. 
Echo: Echo request/reply messages can be sent from either the switch or the 
controller, and must return an echo reply. They can be used to measure the 
latency or bandwidth of a controller-switch connection, as well as verify its 
liveness. 
Experimenter: Experimenter messages provide a standard way for OpenFlow 
switches to offer additional functionality within the OpenFlow message type 
space. This is a staging area for features meant for future OpenFlow revisions.
OpenFlow Limitations
Copyright PrismTech, 2014 
Discovery 
The current version of OpenFlow lacks any form of dynamic discovery 
Switches are supposed to establish a connection with the controller at a 
configurable IP address and port number
Copyright PrismTech, 2014 
Fault-Tolerance 
The OpenFlow standard currently support a single controller 
Support for multiple simultaneous controllers is currently undefined
Copyright PrismTech, 2014 
Error Management 
The OpenFlow API makes it hard to verify the success of certain commands as 
the controller does not receive success notification 
An example is the FlowMod command, for errors are reported asynchronously 
but not success. Thus asynchronous execution of commands can make it very 
hard to deal with complex flow set-up
Copyright PrismTech, 2014 
Pull Statistics API 
OpenFlow provides only a pull API to get statistics, with the implication that 
controllers are forced to periodically poll
Copyright PrismTech, 2014 
One-to-One Communication 
OpenFlow is designed for one-to-one communication. One to many interactions, 
e.g. one switch toward multiple controllers, is not currently supported nor easy 
to transparently and efficiently support
Copyright PrismTech, 2014 
Data/Control Plane Separation 
OpenFlow does not apply the “SDN” philosophy to itself, i.e., it does not clearly 
separates the data-plane from the control plane
Northbound API
Copyright PrismTech, 2014 
Northbound API 
The northbound API provides the application tier with higher-level access to SDN 
switches along with statistics and aggregated information 
As an example let’s consider the Floodlight Northbound API
Copyright PrismTech, 2014 
Floodlight REST API 
URI Method Description 
/wm/core/switch/all/<statType>/json GET Retrieve aggregate stats across all switches 
/wm/core/switch/<switchId>/<statType>/json GET Retrieve per switch stats 
/wm/core/controller/switches/json GET List of all switch DPIDs connected to the controller 
/wm/core/controller/summary/json GET Controller summary (# of Switches, # of Links, etc) 
/wm/core/counter/<counterTitle>/json GET List of global traffic counters in the controller (across all switches) 
/wm/core/counter/<switchId>/<counterName>/ 
GET List of traffic counters per switch 
json 
/wm/core/memory/json GET Current controller memory usage 
/wm/core/health/json GET Status/Health of REST API 
/wm/core/systen/uptime/json GET Controller uptime 
/wm/topology/links/json GET List all the inter-switch links. Note that these are only for switches connected 
to the same controller. This is not available in the 0.8 release. 
/wm/topology/switchclusters/json GET List of all switch clusters connected to the controller. This is not available in 
the 0.8 release.
Copyright PrismTech, 2014 
Floodlight REST API 
/wm/device/ GET List of all devices tracked by the controller. This 
includes MACs, IPs, and attachment points. 
/wm/staticflowentrypusher/json POST/ 
DELETE 
Add/Delete static flow 
/wm/staticflowentrypusher/list/<switch>/json GET List static flows for a switch or all switches 
/wm/staticflowentrypusher/clear/<switch>/json GET Clear static flows for a switch or all switches 
/networkService/v1.1/tenants/<tenant>/networks/<network> PUT/POST/ 
DELETE 
Creates a new virtual network. Name and ID 
are required, gateway is optional. 
/networkService/v1.1/tenants/<tenant>/networks/<network>/ports/ 
<port>/attachment 
PUT/DELETE Attaches a host to a virtual network. 
/networkService/v1.1/tenants/<tenant>/networks GET Shows all networks and their gateway, ID, and 
hosts mac in json format. 
/wm/firewall/module/<op>/json GET 
/wm/firewall/rules/json GET/POST/ 
DELETE 
GET: None " 
POST: {"<field 1>":"<value 1>", "<field 
2>":"<value 2>", ...} " 
DELETE: {"<ruleid>":"<int>"}
Architectural 
Considerations
Copyright PrismTech, 2014 
Architectural Considerations 
Centralised architecture with a 
single controller 
South/Northbound Pull status and 
monitoring APIs 
Analytics are centralised on the 
controller 
Controller, behaves in some cases as 
store and forward 
App1 App2 Appn 
Controller 
Switch1 Switch2 SwitchK
DDS Overview
DDS is a standard technology for ubiquitous, 
interoperable, secure, platform independent, and 
real-time data sharing across network connected 
devices
Copyright PrismTech, 2014 
Data Distribution Service (DDS) 
DDS provides a Global Data Space 
abstraction that allows applications to 
autonomously, anonymously, 
securely and efficiently share data 
DDS’ Global Data Space is fully 
distributed, highly efficient and 
scalable 
QoS 
QoS 
... 
QoS 
QoS 
DDS Global Data Space 
Data 
Writer 
Data 
Writer 
Data 
Writer 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Writer 
TopicA 
TopicB 
TopicC 
TopicD
Copyright PrismTech, 2014 
Data Distribution Service (DDS) 
DataWriters and DataReaders are 
automatically and dynamically 
matched by the DDS Discovery 
A rich set of QoS allows to control 
existential, temporal, and spatial 
properties of data 
QoS 
QoS 
... 
QoS 
QoS 
DDS Global Data Space 
Data 
Writer 
Data 
Writer 
Data 
Writer 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Writer 
TopicA 
TopicB 
TopicC 
TopicD
Copyright PrismTech, 2014 
Fully Distributed Data Space 
Conceptual Model Actual Implementation 
Data 
Writer 
Data 
Writer 
Data 
Writer 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Writer 
QoS 
QoS 
TopicA 
QoS 
TopicB 
QoS 
TopicC 
QoS 
QoS 
TopicD 
TopicD 
TopicD 
QoS 
TopicA 
QoS 
QoS 
... 
QoS 
QoS 
DDS Global Data Space 
Data 
Writer 
Data 
Writer 
Data 
Writer 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Writer 
TopicA 
TopicB 
TopicC 
TopicD
Copyright PrismTech, 2014 
Fully Distributed Data Space 
Data 
Writer 
Data 
Writer 
Data 
Writer 
Data 
Reader 
Data 
Reader 
Data 
Reader 
Data 
Writer 
QoS 
QoS 
TopicA 
QoS 
TopicB 
QoS 
TopicC 
QoS 
QoS 
TopicD 
TopicD 
TopicD 
QoS 
TopicA 
The 
communication 
between 
the 
DataWriter 
and 
the 
DataReader 
can 
use 
UDP/IP 
(Unicast 
and 
Multicast)or 
TCP/IP
Copyright PrismTech, 2014 
Key Highlights 
Elegant and High Level Data Sharing Abstraction 
Efficient and extensible Request/Reply (RPCoDDS) 
Polyglot and platform independent 
• Java, Scala, C, C++, C#, JavaScript, CoffeeScript etc. 
• Android, Windows, Linux, VxWorks, etc. 
Peer-to-Peer by nature, Brokered when useful
Copyright PrismTech, 2014 
Key Highlights 
Content and Temporal Filtering (both sender and receiver filtering supported) 
Queries 
20+ QoS to control existential, temporal, and spatial properties of data
DDS Based SDN
Copyright PrismTech, 2014 
DDS-Based SDN 
DDS can be leveraged to: 
Separate Data Plane from the Control Plane of the SDN Controller 
Enable distributed Controller architecture 
Improve Scalability 
Discovery
Copyright PrismTech, 2014 
DDSing OpenFlow 
Existing OpenFlow-based switches can be easily extended to leverage DDS 
Two approaches are possible 
- Case 1: Leverage DDS only to share status and monitoring information 
- Case 2: Use DDS for both control and status/monitoring information
Copyright PrismTech, 2014 
DDSing OpenFlow 
Monitoring/Status 
Control Data 
DDS 
Adapter 
OpenFlow 
Switch 
Topics 
Control 
Topics 
Monitoring/Status 
Data 
DDS 
Adapter 
OpenFlow 
Switch 
Topics 
Control 
Case 1 Case 2
Copyright PrismTech, 2014 
DDS Based SDN 
! 
Dynamic discovery makes it 
very simple to configure, 
upgrade, and extend the 
system 
Pub/Sub makes it trivial to 
distribute information to any 
number of consumers 
ControllerM 
App1 App2 Appn 
DDS 
Switch1 Switch2 SwitchK 
Controller1
Copyright PrismTech, 2014 
DDS Based SDN 
Multiple controller can be 
more easily supported 
Controllers don’t need to 
behave as store-and-forward 
when not adding value 
ControllerM 
App1 App2 Appn 
DDS 
Switch1 Switch2 SwitchK 
Controller1
Copyright PrismTech, 2014 
DDS Based SDN 
Status and configuration 
information can be made 
available as Transient topics 
to ensure that late joiner can 
receive it 
Monitoring information can 
be distributed to interested 
parties w/o having to be 
concerned with the number 
of consumers 
ControllerM 
App1 App2 Appn 
DDS 
Switch1 Switch2 SwitchK 
Controller1
Copyright PrismTech, 2014 
DDS Based SDN 
The controller can focus on 
enriching information as 
opposed to simply 
propagate it 
Analytics can be now taken-out 
of the controller which 
focuses only on “control-plane” 
matters 
Analytics becomes simply an 
application 
ControllerM 
App1 App2 Appn 
DDS 
Switch1 Switch2 SwitchK 
Controller1
Sample Mapping 
OpenFlow on DDS
Copyright PrismTech, 2014 
Controller-to-Switch Messages 
The state of the switch can be modelled as 
Transient Topics 
Updating the state can be modelled as 
simple writes or by using RPCoDDS 
The type of the topic could be exactly the 
same as the one specified by OpenFlow 
struct 
ofp_table_mod 
{ 
struct 
ofp_header 
header; 
uint8_t 
table_id; 
uint8_t 
pad[3]; 
uint32_t 
config; 
};
Copyright PrismTech, 2014 
Asynchronous Messages 
Asynchronous messages can be modelled as 
Transient, KeepAll topics 
The type of the topic could be exactly the same 
as the one specified by OpenFlow 
struct 
ofp_packet_in 
{ 
struct 
ofp_header 
header; 
uint32_t 
buffer_id; 
uint32_t 
in_port; 
uint32_t 
in_phy_port; 
uint16_t 
total_len; 
uint8_t 
reason; 
uint8_t 
table_id; 
uint8_t 
data[0]; 
};
Unleashing Data
Copyright PrismTech, 2014 
The Vortex Platform 
Vortex enables seamless, 
ubiquitous, efficient and 
timely data sharing across 
mobile, embedded, desktop, 
cloud and web applications 
Vortex is based on the OMG 
DDS standard 
OpenSplice 
Enterprise
Copyright PrismTech, 2014

More Related Content

Viewers also liked

O Lam
O LamO Lam
O Lam
oiwan
 
America 6B
America 6BAmerica 6B
America 6B
C FM
 
Nanga 2009
Nanga 2009Nanga 2009
Nanga 2009
khan333
 
Diversity Plus Article Agl Resources 2009
Diversity Plus Article   Agl Resources 2009Diversity Plus Article   Agl Resources 2009
Diversity Plus Article Agl Resources 2009
Tarece Johnson Hassell
 

Viewers also liked (20)

Sph 106 Ch 2
Sph 106 Ch 2Sph 106 Ch 2
Sph 106 Ch 2
 
O Lam
O LamO Lam
O Lam
 
Michael V Katsaitis
Michael V KatsaitisMichael V Katsaitis
Michael V Katsaitis
 
Art renaixement
Art renaixementArt renaixement
Art renaixement
 
Embedding Research in Society: Supporting Agricultural Innovation in a Global...
Embedding Research in Society: Supporting Agricultural Innovation in a Global...Embedding Research in Society: Supporting Agricultural Innovation in a Global...
Embedding Research in Society: Supporting Agricultural Innovation in a Global...
 
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
OpenSplice DDS: The Open Source Middleware Accelerating Wall StreetOpenSplice DDS: The Open Source Middleware Accelerating Wall Street
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
 
ikd312-08-fd
ikd312-08-fdikd312-08-fd
ikd312-08-fd
 
Vagrant
VagrantVagrant
Vagrant
 
CBI Presentation March 2011
CBI Presentation March 2011CBI Presentation March 2011
CBI Presentation March 2011
 
Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)
 
Sph 107 Ch 6
Sph 107 Ch 6Sph 107 Ch 6
Sph 107 Ch 6
 
James Powers CEO iLinc keynote at Enterprise Network
James Powers CEO iLinc keynote at Enterprise NetworkJames Powers CEO iLinc keynote at Enterprise Network
James Powers CEO iLinc keynote at Enterprise Network
 
America 6B
America 6BAmerica 6B
America 6B
 
Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09Bio Pharm Collaborations 9 09
Bio Pharm Collaborations 9 09
 
Sph 106 Ch 6
Sph 106 Ch 6Sph 106 Ch 6
Sph 106 Ch 6
 
Riz's IRAP Slides
Riz's IRAP SlidesRiz's IRAP Slides
Riz's IRAP Slides
 
Nanga 2009
Nanga 2009Nanga 2009
Nanga 2009
 
Elaboración jabón 2016
Elaboración jabón 2016Elaboración jabón 2016
Elaboración jabón 2016
 
Diversity Plus Article Agl Resources 2009
Diversity Plus Article   Agl Resources 2009Diversity Plus Article   Agl Resources 2009
Diversity Plus Article Agl Resources 2009
 
Living in a Post-Morrison World: NAPPA Working Group
Living in a Post-Morrison World: NAPPA Working GroupLiving in a Post-Morrison World: NAPPA Working Group
Living in a Post-Morrison World: NAPPA Working Group
 

Similar to Looking at SDN with DDS Glasses

Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_eng
FFRI, Inc.
 

Similar to Looking at SDN with DDS Glasses (20)

SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentation
 
Ch 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocolsCh 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocols
 
Software defined networks and openflow protocol
Software defined networks and openflow protocolSoftware defined networks and openflow protocol
Software defined networks and openflow protocol
 
Spirent TestCenter OpenFlow Controller Emulation
Spirent TestCenter OpenFlow Controller EmulationSpirent TestCenter OpenFlow Controller Emulation
Spirent TestCenter OpenFlow Controller Emulation
 
Understanding OpenFlow
Understanding OpenFlowUnderstanding OpenFlow
Understanding OpenFlow
 
Spirent TestCenter OpenFlow Switch Emulation
Spirent TestCenter OpenFlow Switch EmulationSpirent TestCenter OpenFlow Switch Emulation
Spirent TestCenter OpenFlow Switch Emulation
 
SDN - OpenFlow protocol
SDN - OpenFlow protocolSDN - OpenFlow protocol
SDN - OpenFlow protocol
 
Lecture14 1
Lecture14 1Lecture14 1
Lecture14 1
 
Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_eng
 
OpenFlow
OpenFlowOpenFlow
OpenFlow
 
Web and internet technology notes for BCA students
Web and internet technology notes for BCA studentsWeb and internet technology notes for BCA students
Web and internet technology notes for BCA students
 
CCNA R&S-11-Troubleshooting Ethernet LANs
CCNA R&S-11-Troubleshooting Ethernet LANsCCNA R&S-11-Troubleshooting Ethernet LANs
CCNA R&S-11-Troubleshooting Ethernet LANs
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
 
Module3 part1
Module3 part1Module3 part1
Module3 part1
 
Master-trol | Electronic Water Management System
Master-trol | Electronic Water Management SystemMaster-trol | Electronic Water Management System
Master-trol | Electronic Water Management System
 
Transcend Automation's Kepware OPC Products
Transcend Automation's Kepware OPC ProductsTranscend Automation's Kepware OPC Products
Transcend Automation's Kepware OPC Products
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0
 
client server protocol
client server protocolclient server protocol
client server protocol
 
Open Flow Protocol
Open Flow ProtocolOpen Flow Protocol
Open Flow Protocol
 

More from Angelo Corsaro

More from Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Looking at SDN with DDS Glasses

  • 1. Looking at SDN with DDS Glasses Angelo Corsaro, PhD Chief Technology Officer angelo.corsaro@prismtech.com
  • 2. Copyright PrismTech, 2014 Software Defined Networking SDN decouples the forwarding hardware from control decisions so to make the latter programmable The controller, implementing the control plane, communicates with the switching device through, what is commonly referred as, the southbound API Network applications communicate with the controller via the northbound-API
  • 3. Copyright PrismTech, 2014 Northbound API The northbound API interface enables applications and the overall management system to program the network and request services from it No standards have been ratified for northbound APIs, with several dozen open and proprietary protocols being developed using different northbound APIs.
  • 4. Copyright PrismTech, 2014 Southbound API The southbound API defines the programming interface between the controller and the network switches OpenFlow is one of the most widely accepted standard for the Southbound API
  • 6. Copyright PrismTech, 2014 OpenFlow Overview The OpenFlow specification defines the components and the basic functions of an “OpenFlow” switch along with the protocol it uses to communicate with a remote controller
  • 7. Copyright PrismTech, 2014 OpenFlow Switch An OpenFlow Switch consists of one or more flow tables and a group table, which perform packet lookups and forwarding, and an OpenFlow channel to an external controller The controller manages the switch via the OpenFlow protocol Using this protocol, the controller can add, update, and delete flow entries, both reactively (in response to packets) and proactively
  • 8. Copyright PrismTech, 2014 OpenFlow Switch Each flow table in the switch contains a set of flow entries. Each flow entry consists of match fields, counters, and a set of instructions to apply to matching packets If no match is found in a flow table, the outcome depends on switch configuration: - the packet may be forwarded to the controller over the OpenFlow channel - dropped - or may continue to the next flow table
  • 9. Copyright PrismTech, 2014 OpenFlow Channel The OpenFlow channel is the interface that connects each OpenFlow switches to a controller Through this interface, the controller configures and manages the switch, receives events from the switch, and sends packets out the switch
  • 10. Copyright PrismTech, 2014 OpenFlow Messages The OpenFlow protocol supports three message types, controller-to-switch, asynchronous, and symmetric Controller-to-switch messages are initiated by the controller and used to directly manage or inspect the state of the switch Asynchronous messages are initiated by the switch and used to update the controller of network events and changes to the switch state Symmetric messages are initiated by either the switch or the controller and sent without solicitation
  • 11. Copyright PrismTech, 2014 Controller-to-Switch Messages Features: The controller may request the capabilities of a switch by sending a features request; the switch must respond with a features reply that specifies the capabilities of the switch. This is commonly performed upon establishment of the OpenFlow channel. Configuration: The controller can set and query configuration parameters in the switch Modify-State: Modify-State messages are sent by the controller to manage state on the switches. Their primary purpose is to add/delete and modify flows/ groups in the OpenFlow tables and to set switch port properties
  • 12. Copyright PrismTech, 2014 Controller-to-Switch Messages Read-State: Read-State messages are used by the controller to collect statistics from the switch. Packet-out: Used by the controller to send packets out of a specified port on the switch, and to forward packets received via Packet-in messages Barrier: Barrier request/reply messages are used by the controller to ensure message dependencies have been met or to receive notifications for completed operations
  • 13. Copyright PrismTech, 2014 Asynchronous Messages Packet-in: For all packets that do not have a matching flow entry, a packet-in event may be sent to the controller (depending on the table configuration) Flow-Removed: When a flow entry is added to the switch by a flow modify message, an idle timeout value indicates when the entry should be removed due to a lack of activity, as well as a hard timeout value that indicates when the entry should be removed, regardless of activity. The flow modify message also specifies whether the switch should send a flow removed message to the controller when the flow expires. Port-status: The switch is expected to send port-status messages to the controller as port configuration state changes. These events include change in port status events (for example, if it was brought down directly by a user). Error: The switch is able to notify the controller of problems using error messages.
  • 14. Copyright PrismTech, 2014 Symmetric Messages Hello: Hello messages are exchanged between the switch and controller upon connection startup. Echo: Echo request/reply messages can be sent from either the switch or the controller, and must return an echo reply. They can be used to measure the latency or bandwidth of a controller-switch connection, as well as verify its liveness. Experimenter: Experimenter messages provide a standard way for OpenFlow switches to offer additional functionality within the OpenFlow message type space. This is a staging area for features meant for future OpenFlow revisions.
  • 16. Copyright PrismTech, 2014 Discovery The current version of OpenFlow lacks any form of dynamic discovery Switches are supposed to establish a connection with the controller at a configurable IP address and port number
  • 17. Copyright PrismTech, 2014 Fault-Tolerance The OpenFlow standard currently support a single controller Support for multiple simultaneous controllers is currently undefined
  • 18. Copyright PrismTech, 2014 Error Management The OpenFlow API makes it hard to verify the success of certain commands as the controller does not receive success notification An example is the FlowMod command, for errors are reported asynchronously but not success. Thus asynchronous execution of commands can make it very hard to deal with complex flow set-up
  • 19. Copyright PrismTech, 2014 Pull Statistics API OpenFlow provides only a pull API to get statistics, with the implication that controllers are forced to periodically poll
  • 20. Copyright PrismTech, 2014 One-to-One Communication OpenFlow is designed for one-to-one communication. One to many interactions, e.g. one switch toward multiple controllers, is not currently supported nor easy to transparently and efficiently support
  • 21. Copyright PrismTech, 2014 Data/Control Plane Separation OpenFlow does not apply the “SDN” philosophy to itself, i.e., it does not clearly separates the data-plane from the control plane
  • 23. Copyright PrismTech, 2014 Northbound API The northbound API provides the application tier with higher-level access to SDN switches along with statistics and aggregated information As an example let’s consider the Floodlight Northbound API
  • 24. Copyright PrismTech, 2014 Floodlight REST API URI Method Description /wm/core/switch/all/<statType>/json GET Retrieve aggregate stats across all switches /wm/core/switch/<switchId>/<statType>/json GET Retrieve per switch stats /wm/core/controller/switches/json GET List of all switch DPIDs connected to the controller /wm/core/controller/summary/json GET Controller summary (# of Switches, # of Links, etc) /wm/core/counter/<counterTitle>/json GET List of global traffic counters in the controller (across all switches) /wm/core/counter/<switchId>/<counterName>/ GET List of traffic counters per switch json /wm/core/memory/json GET Current controller memory usage /wm/core/health/json GET Status/Health of REST API /wm/core/systen/uptime/json GET Controller uptime /wm/topology/links/json GET List all the inter-switch links. Note that these are only for switches connected to the same controller. This is not available in the 0.8 release. /wm/topology/switchclusters/json GET List of all switch clusters connected to the controller. This is not available in the 0.8 release.
  • 25. Copyright PrismTech, 2014 Floodlight REST API /wm/device/ GET List of all devices tracked by the controller. This includes MACs, IPs, and attachment points. /wm/staticflowentrypusher/json POST/ DELETE Add/Delete static flow /wm/staticflowentrypusher/list/<switch>/json GET List static flows for a switch or all switches /wm/staticflowentrypusher/clear/<switch>/json GET Clear static flows for a switch or all switches /networkService/v1.1/tenants/<tenant>/networks/<network> PUT/POST/ DELETE Creates a new virtual network. Name and ID are required, gateway is optional. /networkService/v1.1/tenants/<tenant>/networks/<network>/ports/ <port>/attachment PUT/DELETE Attaches a host to a virtual network. /networkService/v1.1/tenants/<tenant>/networks GET Shows all networks and their gateway, ID, and hosts mac in json format. /wm/firewall/module/<op>/json GET /wm/firewall/rules/json GET/POST/ DELETE GET: None " POST: {"<field 1>":"<value 1>", "<field 2>":"<value 2>", ...} " DELETE: {"<ruleid>":"<int>"}
  • 27. Copyright PrismTech, 2014 Architectural Considerations Centralised architecture with a single controller South/Northbound Pull status and monitoring APIs Analytics are centralised on the controller Controller, behaves in some cases as store and forward App1 App2 Appn Controller Switch1 Switch2 SwitchK
  • 29. DDS is a standard technology for ubiquitous, interoperable, secure, platform independent, and real-time data sharing across network connected devices
  • 30. Copyright PrismTech, 2014 Data Distribution Service (DDS) DDS provides a Global Data Space abstraction that allows applications to autonomously, anonymously, securely and efficiently share data DDS’ Global Data Space is fully distributed, highly efficient and scalable QoS QoS ... QoS QoS DDS Global Data Space Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Reader Data Writer TopicA TopicB TopicC TopicD
  • 31. Copyright PrismTech, 2014 Data Distribution Service (DDS) DataWriters and DataReaders are automatically and dynamically matched by the DDS Discovery A rich set of QoS allows to control existential, temporal, and spatial properties of data QoS QoS ... QoS QoS DDS Global Data Space Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Reader Data Writer TopicA TopicB TopicC TopicD
  • 32. Copyright PrismTech, 2014 Fully Distributed Data Space Conceptual Model Actual Implementation Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer QoS QoS TopicA QoS TopicB QoS TopicC QoS QoS TopicD TopicD TopicD QoS TopicA QoS QoS ... QoS QoS DDS Global Data Space Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Reader Data Writer TopicA TopicB TopicC TopicD
  • 33. Copyright PrismTech, 2014 Fully Distributed Data Space Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer QoS QoS TopicA QoS TopicB QoS TopicC QoS QoS TopicD TopicD TopicD QoS TopicA The communication between the DataWriter and the DataReader can use UDP/IP (Unicast and Multicast)or TCP/IP
  • 34. Copyright PrismTech, 2014 Key Highlights Elegant and High Level Data Sharing Abstraction Efficient and extensible Request/Reply (RPCoDDS) Polyglot and platform independent • Java, Scala, C, C++, C#, JavaScript, CoffeeScript etc. • Android, Windows, Linux, VxWorks, etc. Peer-to-Peer by nature, Brokered when useful
  • 35. Copyright PrismTech, 2014 Key Highlights Content and Temporal Filtering (both sender and receiver filtering supported) Queries 20+ QoS to control existential, temporal, and spatial properties of data
  • 37. Copyright PrismTech, 2014 DDS-Based SDN DDS can be leveraged to: Separate Data Plane from the Control Plane of the SDN Controller Enable distributed Controller architecture Improve Scalability Discovery
  • 38. Copyright PrismTech, 2014 DDSing OpenFlow Existing OpenFlow-based switches can be easily extended to leverage DDS Two approaches are possible - Case 1: Leverage DDS only to share status and monitoring information - Case 2: Use DDS for both control and status/monitoring information
  • 39. Copyright PrismTech, 2014 DDSing OpenFlow Monitoring/Status Control Data DDS Adapter OpenFlow Switch Topics Control Topics Monitoring/Status Data DDS Adapter OpenFlow Switch Topics Control Case 1 Case 2
  • 40. Copyright PrismTech, 2014 DDS Based SDN ! Dynamic discovery makes it very simple to configure, upgrade, and extend the system Pub/Sub makes it trivial to distribute information to any number of consumers ControllerM App1 App2 Appn DDS Switch1 Switch2 SwitchK Controller1
  • 41. Copyright PrismTech, 2014 DDS Based SDN Multiple controller can be more easily supported Controllers don’t need to behave as store-and-forward when not adding value ControllerM App1 App2 Appn DDS Switch1 Switch2 SwitchK Controller1
  • 42. Copyright PrismTech, 2014 DDS Based SDN Status and configuration information can be made available as Transient topics to ensure that late joiner can receive it Monitoring information can be distributed to interested parties w/o having to be concerned with the number of consumers ControllerM App1 App2 Appn DDS Switch1 Switch2 SwitchK Controller1
  • 43. Copyright PrismTech, 2014 DDS Based SDN The controller can focus on enriching information as opposed to simply propagate it Analytics can be now taken-out of the controller which focuses only on “control-plane” matters Analytics becomes simply an application ControllerM App1 App2 Appn DDS Switch1 Switch2 SwitchK Controller1
  • 45. Copyright PrismTech, 2014 Controller-to-Switch Messages The state of the switch can be modelled as Transient Topics Updating the state can be modelled as simple writes or by using RPCoDDS The type of the topic could be exactly the same as the one specified by OpenFlow struct ofp_table_mod { struct ofp_header header; uint8_t table_id; uint8_t pad[3]; uint32_t config; };
  • 46. Copyright PrismTech, 2014 Asynchronous Messages Asynchronous messages can be modelled as Transient, KeepAll topics The type of the topic could be exactly the same as the one specified by OpenFlow struct ofp_packet_in { struct ofp_header header; uint32_t buffer_id; uint32_t in_port; uint32_t in_phy_port; uint16_t total_len; uint8_t reason; uint8_t table_id; uint8_t data[0]; };
  • 48. Copyright PrismTech, 2014 The Vortex Platform Vortex enables seamless, ubiquitous, efficient and timely data sharing across mobile, embedded, desktop, cloud and web applications Vortex is based on the OMG DDS standard OpenSplice Enterprise