/*
 * SDN-PAL Software Developer's Guide - main page
 */

/** \mainpage SDN-PAL Software Deveoper's Guide

\section intro Introduction
SDN PAL is BAL add-on package. It is designed for managing xPON OLT virtual switch (xPON vOLT) using OpenFlow and/or NETCONF protocols.
The xPON vOLT consists of xPON line card and subtending ONUs.
SDN PAL acts as an intermediate layer between OpenFlow and NETCONF agents and the
s/w stacks managing the line card and ONUs.
    - xPON line card is managed by BAL
    - xPON ONUs are managed by OMCI Service Layer

SDN-PAL consists of 2 main components:
    - OF-PAL    - OpenFlow PON Adaptation Layer. It is an SDK intended for integration with OpenFlow agent.
        - SDN-PAL SDK uses data types generated by loxygen code generator for C (loci). See https://github.com/floodlight/loxigen for details.
        - SDN-PAL SDK includes a reference integration with indogo OF agent. See http://www.projectfloodlight.org/indigo for details.
    - xpon-volt.yang model - Yang model for managing xPON vOLT using NETCONF protocol.
        - This module is implemented as a plugin for open-source libnetconf SDK. See https://github.com/CESNET/libnetconf for details.
*/

/** \page ofpal_api OF-PAL Public API
  See \ref ofpal_api in API Reference chapter
*/

/** \page xpon_volt_yang xpon-volt Yang Model
  \image html xpon-volt.png
*/
