Device Driver Framework Project October 2014 www.opendaylight.org Problem How do we deal with devices with different capabilities and limitations? Even though Openflow is a standard, devices have different Openflow capabilities Need a way to implement Device Specific Functionality Solution: Device Driver Framework www.opendaylight.org 2 What is a Device Driver Framework? • A framework that provides a standard and consistent way to implement device specific functionality • Device Specific Functionality • Often referred to as “Drivers” • Code that performs some function, and that code is knowledgeable of the capabilities and limitation of a Device • Framework: • Extensible to allow dynamic support for new device types • Extensible to allow new device specific functionality to be dynamically added www.opendaylight.org 3 Use-Cases Validate and Adjust FlowMods Validate and adjust FlowMods to be sent to a device based on knowledge of the type of device FlowMods adjusted to take advantages of capabilities of the device VLAN Configuration Perform VLAN CRUD operations using communication protocols such as SNMP, NetConf, CLI VxLAN Configuration Perform VxLAN CRUD operations using communication protocols such as SNMP, NetConf Any device specific functionality www.opendaylight.org 4 Major Components Device Type Repository Identification Maintain (persist??) the discovered device information (eg, device type, port status) API to allow applications to obtain device information Security Repository Determines the type of each physical device using information discovered through OpenFlow handshakes, as well as direct interaction with the device Communicate with device to discovery configuration information that may affect the devices capabilities and limitations Device Management Maintains identity information about the types of physical devices recognized by the framework Maintain and manage security credentials to allow interaction with devices API to allow applications to obtain security information Device Drivers Device specific software components that makes use of the information about the type of device www.opendaylight.org 5 Component Diagram Application 9 Device Driver Service Device Driver Manager Device Service DB Device Manager Device Supplier Service 1 3 8 4 Device Supplier 2 Device Type XML Device Supplier Driver Supplier OFDevice Device Identification 7 6 5 Key Service Key Manager DB www.opendaylight.org 6 Component Diagram Application Driver Device Service DB Device Manager Device Supplier Service Key Service Key Manager www.opendaylight.org DB 7 Application Usage Device Service Interface Get Device object Eg, Set<Device> getDevice(DeviceFilter filter) Get Interface information Eg, List<Interface> getInterfaces(Device device) Device and Interface notifications Eg, addListener(DeviceListener listener) Device Interface Eg, Eg, Eg, Eg, Boolean isOnline() Set<String> getDriverrClassNames() Boolean isSupprted(Class<? extends Driver> driverClass) <T extends Driver> T getDriver(DriverClass<T> driverClass) www.opendaylight.org 8 ODL Component Diagram – Option 1 Application Driver 3800 Nodes MD-SAL Routed RPCS Node 3800 Augment Data Store GUI/REST/ Notification Identification (Discovery) Driver 5400 5400 ID Driver 5400 VLAN Driver 5400 3800 VLAN Driver 3800 Register RPCs Credential Manager Device Driver Manager - Identification (Discovery) determines device type and augments data store and registers Routed RPC. - Applications use MDSAL routed RPC service. www.opendaylight.org 9 ODL Component Diagram – Option 2 Hide MD-SAL from Applications Application Device Manager Driver 3800 Nodes MD-SAL Routed RPCS Node 3800 Augment Data Store Driver 5400 5400 ID Driver 5400 VLAN Driver 5400 3800 VLAN Driver 3800 - Apps do not need to be MD-SAL aware Register RPCs - Preserve existing APIs GUI/REST/ Notification Identification (discovery) Credential Manager Device Driver Manager www.opendaylight.org 10 ODL Component Diagram – Option 3 Application Driver 3800 Device Manager Augment Data Store MD-SAL Nodes Routed RPCS Node 3800 Driver 5400 5400 ID Driver 5400 VLAN Driver 5400 3800 VLAN Driver 3800 Register RPCs Augment Data Store GUI/REST/ Notification Store security Keys in MD-SAL Data store Register RPCs Identification (Discovery) Credential Manager Device Driver Manager - Device Manger provides Application API and Identification API. - Device Manager is the only component that is MD-SAL aware. www.opendaylight.org 11 Status Project Proposal posted to ODL wiki 2 weeks ago Learning ODL and MD-SAL Prototyping and porting some HP code to ODL Openflow identification Key Manager Device Driver Manager SNMP library Augment inventory node with device type Register drivers as routed RPCs Simple test application www.opendaylight.org 12 Concerns MD-SAL data store encryption Nice to have MD-SAL encrypt data Currently we encrypt before storing in MD-SAL data store Prevents use of RestConf to read/write Key data Config Subsystem Difficult to learn, takes too much time to learn Better documentation will help Routed RPCs (yang) How to pass a flowmod type as an input parameter How to return a set of flowmods as an output parameter How to specific complex types and Sets in yang model www.opendaylight.org 13 Architecture and Design Decisions Device Type Repository How to represent device type information (eg, xml) How and where to store in-memory device type information (MD-SAL data store) Define how new device type information can be dynamically added to the system Discovery Define phase 1 discovery components (OpenFlow, Manual) Define “evolution” process Device Management Do we want to maintain device information Define how to store in-memory device information and what should be stored (MD-SAL data store) Define API www.opendaylight.org 14 Architecture and Design Decisions continued Security Repository Define how to store security information (MD-SAL data store) Define how to populate security repository Define API Device Drivers Define how to implement device drivers Can device drivers be implemented as “routed” RPCs and associated with a device inventory node in the MD-SAL data store? Define how new device drivers can be dynamically added to the system www.opendaylight.org 15 16 Device Type Repository BaseSwitch.xml HP.xml 3800.xml 5400.xml - - Device Type = HP Switch Extends Default Switch Vendor=HP Device Identity Driver Interface Driver Notification Driver - Device Type Name = Default Switch Cisco.xml 5900.xml Device Type = 5400 Extends HP Switch Flags = isChassis Device Type = J9642A, Extends 5400, Product=Switch 5406zl, OID=1.3.6.1.4.1.11.2.3.7.11.50, FlowMod Driver Device Type = J9643A, Extends 5400, Product=Switch 5412zl, OID=1.3.6.1.4.1.11.2.3.7.11.51, FlowMod Driver 1 7 www.opendaylight.org 17
© Copyright 2026 Paperzz