Fix submodule docs links
[docs.git] / docs / developer-guide / odl-sdni-developer-guide.rst
1 .. _sdni-dev-guide:
2
3 ODL-SDNi Developer Guide
4 ========================
5
6 Overview
7 --------
8
9 This project aims at enabling inter-SDN controller communication by
10 developing SDNi (Software Defined Networking interface) as an
11 application (ODL-SDNi App).
12
13 ODL-SDNi Architecture
14 ---------------------
15
16 -  SDNi Aggregator: Northbound SDNi plugin acts as an aggregator for
17    collecting network information such as topology, stats, host etc.
18    This plugin can be evolving as per needs of network data requested to
19    be shared across federated SDN controllers.
20
21 -  SDNi API: API view autogenerated and accessible through RESTCONF to
22    fetch the aggregated information from the northbound plugin – SDNi
23    aggregator.The RESTCONF protocol operates on a conceptual datastore
24    defined with the YANG data modeling language.
25
26 -  SDNi Wrapper: SDNi BGP Wrapper will be responsible for the sharing
27    and collecting information to/from federated controllers.
28
29 -  SDNi UI:This component displays the SDN controllers connected to each
30    other.
31
32 SDNi Aggregator
33 ---------------
34
35 -  SDNiAggregator connects with the Base Network Service Functions of
36    the controller. Currently it is querying network topology through
37    MD-SAL for creating SDNi network capability.
38
39 -  SDNiAggregator is customized to retrieve the host controller’s
40    details, while running the controller in cluster mode. Rest of the
41    northbound APIs of controller will retrieve the entire topology
42    information of all the connected controllers.
43
44 -  The SDNiAggregator creates a topology structure.This structure is
45    populated by the various network funtions.
46
47 SDNi API
48 --------
49
50 Topology and QoS data is fetched from SDNiAggregator through RESTCONF.
51
52 `http://${controlleripaddress}:8181/apidoc/explorer/index.html <http://${controlleripaddress}:8181/apidoc/explorer/index.html>`__
53
54 `http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-topology-msg:getAllPeerTopology <http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-topology-msg:getAllPeerTopology>`__
55
56 **Peer Topology Data:** Controller IP Address, Links, Nodes, Link
57 Bandwidths, MAC Address of switches, Latency, Host IP address.
58
59 `http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-qos-msg:get-all-node-connectors-statistics <http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-qos-msg:get-all-node-connectors-statistics>`__
60
61 **QOS Data:** Node, Port, Transmit Packets, Receive Packets, Collision
62 Count, Receive Frame Error, Receive Over Run Error, Receive Crc Error
63
64 `http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-qos-msg:get-all-peer-node-connectors-statistics <http://${ipaddress}:8181/restconf/operations/opendaylight-sdni-qos-msg:get-all-peer-node-connectors-statistics>`__
65
66 **Peer QOS Data:** Node, Port, Transmit Packets, Receive Packets,
67 Collision Count, Receive Frame Error, Receive Over Run Error, Receive
68 Crc Error
69
70 SDNi Wrapper
71 ------------
72
73 .. figure:: ./images/SDNiWrapper.png
74    :alt: SDNiWrapper
75
76    SDNiWrapper
77
78 -  SDNiWrapper is an extension of ODL-BGPCEP where SDNi topology data is
79    exchange along with the Update NLRI message. Refer
80    http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-04 for more
81    information on NLRI.
82
83 -  SDNiWrapper gets the controller’s network capabilities through SDNi
84    Aggregator and serialize it in Update NLRI message. This NLRI message
85    will get exchange between the clustered controllers through
86    BGP-UPDATE message. Similarly peer controller’s UPDATE message is
87    received and unpacked then format to SDNi Network capability data,
88    which will be stored for further purpose.
89
90 SDNi UI
91 -------
92
93 This component displays the SDN controllers connected to each other.
94
95 http://localhost:8181/index.html#/sdniUI/sdnController
96
97 API Reference Documentation
98 ---------------------------
99
100 Go to
101 `http://${controlleripaddress}:8181/apidoc/explorer/index.html <http://${controlleripaddress}:8181/apidoc/explorer/index.html>`__,
102 sign in, and expand the opendaylight-sdni panel. From there, users can
103 execute various API calls to test their SDNi deployment.