Transcript
Page 1: Looking at SDN with DDS Glasses

Angelo  Corsaro,  PhD  Chief  Technology  Officer  

[email protected]

Looking at SDN with DDS Glasses

Page 5: Looking at SDN with DDS Glasses

OpenFlow

Page 11: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

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

Controller-to-Switch Messages

Page 13: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

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.

Asynchronous Messages

Page 14: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

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.

Symmetric Messages

Page 15: Looking at SDN with DDS Glasses

OpenFlow Limitations

Page 22: Looking at SDN with DDS Glasses

Northbound API

Page 24: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

Floodlight REST APIURI 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>/json

GET List of traffic counters per switch

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

Page 25: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

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/

DELETEAdd/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/

DELETECreates 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/

DELETEGET: None "POST: {"<field 1>":"<value 1>", "<field 2>":"<value 2>", ...} "DELETE: {"<ruleid>":"<int>"}

Page 26: Looking at SDN with DDS Glasses

Architectural Considerations

Page 28: Looking at SDN with DDS Glasses

DDS Overview

Page 29: Looking at SDN with DDS Glasses

DDS is a standard technology for ubiquitous, interoperable, secure, platform independent, and real-time data sharing across network connected

devices

Page 36: Looking at SDN with DDS Glasses

DDS Based SDN

Page 44: Looking at SDN with DDS Glasses

Sample Mapping OpenFlow on DDS

Page 46: Looking at SDN with DDS Glasses

Cop

yrig

ht P

rism

Tech

, 201

4

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

Asynchronous Messages

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];  };  

Page 47: Looking at SDN with DDS Glasses

Unleashing Data


Recommended