To achieve a dynamic and robust network control, one method is to add accommodated device control and network agility solutions coupled with existing systems. This can be achieved by OpenDaylight that constitutes a model-driven architecture. OpenDaylight’s service abstraction layer (SAL) design allows a clean separation of the application API from any southbound protocol plugins such as OpenFlow, NETCONF, OVSDB etc. Model-driven SAL (MD-SAL) is the OpenDaylight kernel that interfaces between different layers and modules using APIs to connect and bind requests and services for communication. This delivers a community of models of implemented services responsible for organized distribution and layering of functionality for both providers and consumers. An overview of MD-SAL’s internals with an emphasis on creating MD-SAL based application for OpenDaylight will be provided.