Professional Documents
Culture Documents
OpenDaylight Apps
with MD-SAL
J. Medved, E. Warnicke, A. Tkacik. R. Varga
Cisco
Sample App: M. Rehak, Cisco
February 04, 2014
Controller Architecture
Management
GUI/CLI
Network
Applica3ons
Orchestra3on
&
Services
D4A Protec3on
Switch
Mgr
Stats
Mgr
FRM
Host
Tracker
ARP
Handler
Anity
Service
LISP
Service
Controller Pla?orm
OpenFlow
1.0
1.3
NETCONF
OVSDB
SNMP
Open vSwitches
BGP
PCEP
LISP
Southbound
Interfaces
&
Protocol
Plugins
Hydrogen Implementation
Management
GUI/CLI
REST
REST
LISP
Service
Anity
Service
REST
Topology
Mgr
REST
REST
REST
REST
Switch
Mgr
FRM
Host
Tracker
REST
D4A Protec3on
Cong
Subsystem
ARP
Handler
NSF
AAdapters
dapters
NSF
NSF
Adapters
OVSDB
LISP
RESTCONF
NETCONF
Service
Func3ons
Stats
Mgr
FRM
PCEP
Topology
Topology
Inventor
Exporter
Exporter
y
Manager
SNMP
Open vSwitches
BGP-LS
PCEP
NETCONF
Run-2me
Extensibility:
Augment
exis2ng
func2onality
Load
new
models
(extends
controllers
func2onality)
NB Service Model
Is generated from
Controller PlaPorm
Controller PlaPorm
REST API
Service
Plugin
1
Adapta3on
Plugin
SB Plugin 2
AD-SAL
MD-SAL
Service
Plugin
1
Request
Rou2ng
Adapta2on
...
Service
Plugin
1
Request Rou2ng
SB Plugin 1
RESTCONF
REST API
...
Service
Plugin
1
Is generated from
SB Plugin 1
...
SB
Model
NB
Model
Data
Data
Data
Store
SB Plugin 2
OpenFlow
Topology
Exporter
Model
...
Flow-Capable
Node
Inventory
Manager
Model
Sta3s3cs
Manager
Model
/Opera2onal
/Cong
network-topo
n1
BGP-LS
BGPv6
BGPv4
nodes
n2
...
links
nx
nodes
l1 l2
OpenFlow
prexes
...
lx p1
p2
...
px
of:1
...
of:2
Groups
Tables
Table/1
Table/2
Table-stats
Flow/1
Meters
Of:n
Ports
Table/n
...
Flow/n
Flow/2
MD-SAL
Flow-stats
BGP-LS
Protocol
Plugin
Flow-stats
NETCONF
nc:1
nc:2
...
App
Protocol
Plugin
Model
...
Protocol
Plugin
Model
App
RESTCONF
NETCONF
Cong
Subsystem
Network
Applica3ons
Orchestra3on
&
Services
Service/App
Plugin
Model
...
Service/App
Plugin
Model
Controller
Pla?orm
Southbound
Interfaces
&
Protocol
Plugins
Message Bus
Data Store
Clustering
Building a Plugin/Application
Model
Model
Yang
Model
Generate
APIs
1
Yang Tools
API
OSGI
Bundle
Deploy
4
Controller
Maven
Build
Tools
Module
Module
Implementa2ons
Implementa2ons
Plugin
source
code
Plugin
OSGI
Bundle
3
Create
Plugin
Bundle
4
Deploy
RESTCONF
Controller
PlaPorm
FRM
10
9
3
No2ca2on
Delivery
MD-SAL
Request
Rou2ng
NoBcaBon
/cong
Flow
Request
11
Rou2ng
RPC
RPC
6
2
7
PktOut
PktIn
1
Switch
FlowMod
More informa2on:
hdps://wiki.opendaylight.org/view/OpenDaylight_Controller:Hydrogen_Developer_Guide:MD-
SAL_App_Tutorial
>
rm
opendaylight/plugins/
org.opendaylight.controller.samples.simpleforwarding-0.4.1.jar
Check
that
the
applica2on
bundle
is
ac2ve.
On
the
controller
console,
type:
osgi
>
lb
learn
Op2onally,
check
that
the
controller
is
listening
on
Ports
6633
and
6653.
On
a
Linux
console,
type:
Start
Mininet:
>
sudo
mn
--topo
single,10
--controller
'remote,ip=<controller-ip-
address>,port=6633'
--switch
ovsk,protocols=OpenFlow13
Examples:
Java:
InstanceIdentifier<Node>
identifier
=
InstanceIdentifier.builder(Nodes.class).child(Node.class,new
NodeKey("foo")).build();
REST:
http://localhost:8080/restconf/config/inventory:nodes/node/foo
Summary
OpenDaylight:
Controller
PlaPorm
Model-Driven
Applica2on
Development
Environment
Backup
BGP-LS Flow
Flow-capable
Node
Model
(Flow
programming)
RESTCONF
Controller
PlaPorm
MD-SAL NoBcaBon
/oper
MD-SAL
BGP-RIB
MD-SAL Set
BGP-LS
Plugin
6
2
3
4
5
BGP PDU
/oper
BGP-LS
Topology
[Sub-Section
Title]