Jump to: navigation, search

OpenDaylight Controller:MD-SAL

Model-Driven SAL (MD-SAL) is a set of infrastructure services aimed at providing common and generic support to application and plugin developers.

MD-SAL currently provides infrastructure services for:

  • Data Store
  • RPC / Service routing
  • Notification subscription and publish services

This common model-driven infrastructure allows developers of applications and plugins to develop against one set of APIs that are derived from a single model: Java generated APIs, DOM APIs, and REST APIs.

For a high level explanation of MD-SAL, read OpenDaylight_Controller:MD-SAL:Explained.

Read more about MD-SAL Architecture OpenDaylight_Controller:MD-SAL:Architecture.

Developer's Documentation


MD-SAL and ODL App Tutorials

Tutorial Videos on YouTube

MD-SAL How Tos - Quick Code Snippets (Tutorials by Ciena)

Note* - Some of the above code snippets work for hydrogen release and are deprecated for helium. I am currently working on writing code snippets for helium and will be updated here soon.

Netconf/Yang Tutorials

Documentation Review Task

MD-SAL Weekly Call

See MD-SAL Weekly Call for meeting link, agenda and updated minutes.

Meeting Minutes:

May 6, 2014: Infinispan In-Memory Data Store Prototype

April 29, 2014: Inocybe dat store update, MD-SAL Archetype, RESCTONF Tool

April 22, 2014: Karaf Container

April 15, 2014: APIC Presentation Part II

April 8, 2014: MD-SAL Akka Prototype

April 1, 2014: Data Store Performance Improvements Demo

MD-SAL Hackers Weekly Call

Time and Location

  • 08:00am Pacific, Mondays.
  • IRC: #opendaylight-meeting
  • WebEx link

Agenda: Monday, February 9, 2015

  • maven archetype experiences

Information From Past Meetings

Monday, February 2, 2015

Monday, January 12, 2015

Monday, January 5, 2015

Monday, October 20, 2014

Action items

  • alagalah
    • says that he’ll take his recommmendations/links from last weeks, and stuff from tpatellis, and publish a list of concrete things that need to happen using bugzilla
    • to come up with his list of adoption pain points by next meeting
    • to take what he has done so far on the documentation front and break it into chunks
    • send out a list of things to do; if people have cycles, pick up the item on the list a nd run with it
  • colindixon
    • to send e-mail noting his pain points: (1) it’s hard to figure out how to take the yang file for the config subsystem and translate it into an XML file, and (2) the config yang file is compiled in a different way than yangtools does
  • jmedved
    • to start background architecture wiki using keith’s documentation
    • start architecture section for config subsystem on wiki

Monday, October 13, 2014

Action items

  • alagalah to set up meeting with Devin, Tom, John Burns, Maros, and whoever wants to join, to walk through the links in the "how tos", with a consistent template style structure, incorporating alagalah's recommendations + other's input

Monday, October 6, 2014

Action items

  • colindixon to help try and convert this page into a step-by-step gude: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Sample_Project
  • Everyone learn config subsystem :)
  • alagalah to be guinea pig to go through documentation linked in this meetbot to see if its useful for a noob to learn config subsystem... target: 10/13
  • rovarga to provide examples of how to to live reconfiguration to devinavery (and probably the controller-dev list)

All Subpages:

OpenDaylight Controller:MD-SALOpenDaylight Controller:MD-SAL:AD-SAL CompatibilityOpenDaylight Controller:MD-SAL:Analysis:Threading Model
OpenDaylight Controller:MD-SAL:Application Migration GuideOpenDaylight Controller:MD-SAL:Archetype TutorialOpenDaylight Controller:MD-SAL:Architecture
OpenDaylight Controller:MD-SAL:Architecture:Clustered Data Store:Helium Release PlanOpenDaylight Controller:MD-SAL:Architecture:Clustered Data Store:Persistence OptionsOpenDaylight Controller:MD-SAL:Architecture:Clustering
OpenDaylight Controller:MD-SAL:Architecture:Clustering:2-NodeOpenDaylight Controller:MD-SAL:Architecture:Clustering:2-Node:Failure ModesOpenDaylight Controller:MD-SAL:Architecture:Clustering:2-Node:Network Partition Detection
OpenDaylight Controller:MD-SAL:Architecture:Clustering:Feature SummaryOpenDaylight Controller:MD-SAL:Architecture:Clustering:NotificationsOpenDaylight Controller:MD-SAL:Architecture:Clustering Detailed Design
OpenDaylight Controller:MD-SAL:Architecture:DOM DataStoreOpenDaylight Controller:MD-SAL:Architecture:DOM DataStore:Plugging in a Datastore into MD-SALOpenDaylight Controller:MD-SAL:Architecture:DOM DataStore:Transactions
OpenDaylight Controller:MD-SAL:CliffNotesOpenDaylight Controller:MD-SAL:ColorCodeOpenDaylight Controller:MD-SAL:Component Map
OpenDaylight Controller:MD-SAL:ConceptsOpenDaylight Controller:MD-SAL:Data Store TracerOpenDaylight Controller:MD-SAL:Deep Dive Questions
OpenDaylight Controller:MD-SAL:Design:Message TracingOpenDaylight Controller:MD-SAL:Design:Normalized DOM ModelOpenDaylight Controller:MD-SAL:Design:Operational Statistics
OpenDaylight Controller:MD-SAL:Developer FAQOpenDaylight Controller:MD-SAL:Developer GuideOpenDaylight Controller:MD-SAL:EverythingYouWantedtoKNowaboutOnDataChanged butWasAfraidToAsk
OpenDaylight Controller:MD-SAL:ExplainedOpenDaylight Controller:MD-SAL:Explained:Data Structure ModelOpenDaylight Controller:MD-SAL:Explained:Include:Basic Concepts
OpenDaylight Controller:MD-SAL:Explained:Include:Messaging PatternsOpenDaylight Controller:MD-SAL:Explained:Java YANG BindingOpenDaylight Controller:MD-SAL:Explained:Messaging Patterns
OpenDaylight Controller:MD-SAL:Explained:Modeling ConceptsOpenDaylight Controller:MD-SAL:FAQOpenDaylight Controller:MD-SAL:Helium:Release Notes:SR1:Draft
OpenDaylight Controller:MD-SAL:Helium Release PlanOpenDaylight Controller:MD-SAL:L2 SwitchOpenDaylight Controller:MD-SAL:MD-SAL App Tutorial
OpenDaylight Controller:MD-SAL:MD-SAL Document ReviewOpenDaylight Controller:MD-SAL:MD-SAL Document Review:ArchitectureOpenDaylight Controller:MD-SAL:MD-SAL Document Review:Config SubSystem
OpenDaylight Controller:MD-SAL:MD-SAL Document Review:KARAF OSGIOpenDaylight Controller:MD-SAL:MD-SAL Document Review:MD SALOpenDaylight Controller:MD-SAL:MD-SAL Document Review:RESTCONF
OpenDaylight Controller:MD-SAL:MD-SAL Document Review:Step by Step TutorialOpenDaylight Controller:MD-SAL:MD-SAL Document Review:YANGOpenDaylight Controller:MD-SAL:Migration:Data Broker
OpenDaylight Controller:MD-SAL:Model ReferenceOpenDaylight Controller:MD-SAL:Plugin TypesOpenDaylight Controller:MD-SAL:RPC Service Types
OpenDaylight Controller:MD-SAL:RestconfOpenDaylight Controller:MD-SAL:Restconf:Change event notification subscriptionOpenDaylight Controller:MD-SAL:Restconf:How to use restconf
OpenDaylight Controller:MD-SAL:Restconf:Netconf event notification subscriptionOpenDaylight Controller:MD-SAL:Restconf:Overview for programmersOpenDaylight Controller:MD-SAL:Restconf:Real world example
OpenDaylight Controller:MD-SAL:Restconf API ExplorerOpenDaylight Controller:MD-SAL:Southbound Plugin Development GuideOpenDaylight Controller:MD-SAL:Startup Project Archetype
OpenDaylight Controller:MD-SAL:Test ApplicationOpenDaylight Controller:MD-SAL:TestingOpenDaylight Controller:MD-SAL:The Infinispan Data Store
OpenDaylight Controller:MD-SAL:Toaster Step-By-StepOpenDaylight Controller:MD-SAL:Toaster Step-By-Step:Berllium-SR2OpenDaylight Controller:MD-SAL:Toaster Step-By-Step:Beryllium-SR2
OpenDaylight Controller:MD-SAL:Toaster Step-By-Step - Boron and afterOpenDaylight Controller:MD-SAL:Toaster Step-By-Step krbOpenDaylight Controller:MD-SAL:Toaster Tutorial
OpenDaylight Controller:MD-SAL:TutorialsOpenDaylight Controller:MD-SAL:Usage Pattern QuestionareOpenDaylight Controller:MD-SAL:Usage Pattern Questionare:Topoprocessing
OpenDaylight Controller:MD-SAL:Work Item CandidatesOpenDaylight Controller:MD-SAL:XSQLOpenDaylight Controller:MD-SAL:XSQL-Client
OpenDaylight Controller:MD-SAL Developer Guide

Work Item Candidates