Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Device Identification and Driver Management (DIDM) Anandhi Manikantan, Hewlett-Packard Gunjan Patel, Ciena Corporation
#ODSummit
Motivation
• Problems: • Today applica8ons need to know the device’s capabili8es to create flow mods that best u8lize the capabili8es of the device
• Controller doesn’t provide a common/consistent device specific way of handling CRUD opera8ons for func8ons such as VLAN configura8on
• Mo8va8on: • Need to provide Device specific func8onality • Extensible -‐Allow new device specific func8onality to be dynamically added, and allow dynamic support for new device types
• Standard/consistent way of implemen8ng device specific func8onality
#ODSummit
Scope
1) Iden'fica'on –determine the type of device 2) Device Driver – provide device specific func8onality 3) Synchroniza'on – collec8ng and pushing data to/from a device 4) Define Data Models for Common Features – define data models for
performing common func8on such as VLAN configura8on 5) Define RPCs for Common Features – define APIs (RPCs) for common
features such as Flow Mod adjustment 6) Discovery -‐ discover a non-‐OpenFlow device (manual discovery)
#ODSummit
Design Considerations § Invoking Drivers
§ Standard MD-‐SAL mechanisms § RPCs or invoked via a data change no8fica8on
§ Iden'fica'on § Framework component that orchestrates the Iden8fica8on process. Drivers provide Iden8fica8on component with informa8on to iden8fy devices via MD-‐SAL mechanisms
§ Synchroniza'on, Driver Registra'on § Use standard MD-‐SAL mechanisms, event driven via no8fica8ons (Decentralized)
#ODSummit
Dependencies § Creden8al Manager – work with AAA team
§ SNMP Plugin
#ODSummit
MD-SAL enhancement Request Enhancement requests that are yet to be implemented:
§ Ability to control how much processing is given to a plugin
§ Finer filter of data change no8fica8ons: § Eg, no8fy only if augmenta8on equal a specified value
#ODSummit
Component Diagram Iden8fica8on Manager
#ODSummit
Iden8ty
MD-‐SAL
Device-‐Types
3800
OF-‐info: HP, 3800 sysOid: 1.2.3.4.5.6.7.8
5400
Sync
Device Driver
Config
Iden'fica'on Manager Listen for
created nodes in Ops
No8fied when data in Device-‐Types tree changes. Read new device type info
1
2
Driver (plugin)
Write iden8fica8on info to Device-‐Types tree in Config data store OF-‐info: HP, 5400 sysOid: 8.7.6.5.4.3.2.1
Component Diagram Iden8fica8on Manager
#ODSummit
Creden8al Manager
Iden8ty
MD-‐SAL Nodes
Node
3800 5400
RS Driver
IID 3800
VLAN Driver 3800
IID 5400
VLAN Driver 5400
Routed RPCS
Create inventory node in Config and Opera8onal data store
SNMP library
Sync
Device Driver
Config
Nodes
Node
3800 5400
Opera'onal
Discovery Openflowplugin
Iden'fica'on Manager Listen for
created nodes in Ops
No8fied when new node created
Augment with Device Type
3
1
4
Drivers Registered Drivers Registered
2
Driver (plugin)
No8fied when Device Type
Augmenta8on applied
5
Apply augmenta8on with data collected
6
Register routed RPCs or for data change no8fica8ons
7
DIDM Manual Discovery
• Non-‐OpenFlow Discovery • Lifecycle management • Device Iden8fica8on • Future work: integra8on with Creden8al Manager from AAA project • Device synchroniza8on • Communica8ons down • Communica8ons up • Managed/Unmanaged state
#ODSummit
Discovery Request States
#ODSummit
Ident-‐Failed
Sync-‐Failed
Iden'fying…
Iden'fied
Synchronizing…
Synchronized
Discovered!
Comms-‐down
Comms-‐up
State
Device States
#ODSummit
Discovered/ Managed
Deleted
Unmanaged
Unmanaged/ Comm down
Comms-‐down
Comms-‐up
Synchronizing
Device State
Discovery flow (1/2) [animation]
#ODSummit
Client
PUT inv:node {IP}!
Oper
CHANGE Inv:node{ip}!
PUBLISH unidentified device!
Config NE Plugin
PUT Inv:node {ip, type}!
Device
Connect!
ok!
Protocol Plugin (SNMP)
Connect!
ok!
MD-‐SAL
Iden'fica'on Mgr
Determine type!
[Type Iden8fied]
[Type Uniden8fied]
Discovery flow (2/2) [animation]
#ODSummit
Client
Oper
RECEIVE Unidentified device!
Config
PUT Inv:node {ip, type}!
Device
Connect!
ok!
Protocol Plugin (TL1/CORBA)
Connect!
ok!
MD-‐SAL
NE Plugin (Ciena 6500)
RECEIVE Unidentified device!
NE Plugin (Ciena 5430)
Connect!
fail!Connect!
fail!
Synchronization [animation]
#ODSummit
Client
PUT inv:node {‘syncing’}!
Oper
Data change {‘sync’}!
MERGE Inv:node <<data>>, {state:’synchronized’}!
Config NE Plugin
PUT inv:node {state: ‘synching’}!
Device
Get data!
<data>!
Protocol Plugin
Get data!
<data>!
#ODSummit
Lithium Deliverables Beryllium Goals § Common model augmenta'ons for device
type and device state
• Flow Mod driver
§ Device Drivers
Data models and APIs for common “features” such as VLAN configura8on, Flow Mod adjustment, etc.
• Iden'fica'on components • VLAN driver • Add VLAN • Delete VLAN • Add port • Remove port
• Documenta'on and sample driver • Non-‐OpenFlow discovery (Manual discovery)
• Abstract/helper classes • Didm-‐feature-‐all (to install all the features)
• Tutorial on how to write a driver/use DIDM
framework
Wiki and Trello • DIDM Wiki
• hips://wiki.opendaylight.org/view/DIDM:Main • Mee8ng and IRC Slack info • Team members • Project proposal • Link to Trello board • Lithium Release plan
• Trello Board • hips://trello.com/b/eUMAIoda/open-‐daylight-‐didm
#ODSummit
Thank you!
#ODSummit