In this illustration we see the layered architecture of an OpenDaylight controller. At the top of the figure, outside of the controller, we see a layer labeled "Network Service Apps," which includes an oval labeled "Traffic Engineering" followed by an ellipsis and a second unlabeled oval. Below this is a dashed line, and below the dashed line is a layer shaded in light blue. At the center is a rectangle labeled "REST API." Beneath this layer is a layer shaded in dark blue and designated as the ODL Controller. This layer is separated into two sections: the section on the left is designated as containing "Network service apps," and includes an oval labeled "Access Control" followed by an ellipsis and a second unlabeled oval; the section on the right is designated as containing "Basic Network Service Functions," and includes five boxes labeled (from left to right): "Topology manager," "Forwarding manager," "Switch manager," "Host manager," and "Stats manager." All of the ovals and boxes in this layer connect by a double-sided arrow to the layer below, which is designated as the "Service Abstraction Layer (SAL)." Below this is the lowest layer, shaded in light blue, which contains a box labeled "OpenFlow 1.0," followed by an ellipsis and a box labeled "SNMP" and a box labeled "OVSDB."