Updated git submodules
[docs.git] / manuals / developer-guide / src / main / asciidoc / sfc / odl-sfc-sb-rest-dev.adoc
1 === SFC Southbound REST Plugin
2
3 ==== Overview
4 The Southbound REST Plugin is used to send configuration from DataStore down to
5 network devices supporting a REST API (i.e. they have a configured REST URI).
6 It supports POST/PUT/DELETE operations, which are triggered accordingly by
7 changes in the SFC data stores.
8
9 .In its current state it listens to changes in these SFC data stores:
10 * Access Control List (ACL)
11 * Service Classifier Function (SCF)
12 * Service Function (SF)
13 * Service Function Group (SFG)
14 * Service Function Schedule Type (SFST)
15 * Service Function Forwader (SFF)
16 * Rendered Service Path (RSP)
17
18 ==== Southbound REST Plugin Architecture
19 .The Southbound REST Plugin is built from three main components:
20 . *listeners* - used to listen on changes in the SFC data stores
21 . *JSON exporters* - used to export JSON-encoded data from binding-aware data
22 store objects
23 . *tasks* - used to collect REST URIs of network devices and to send JSON-encoded
24 data down to these devices
25
26 .Southbound REST Plugin Architecture diagram
27 image::sfc/sb-rest-architecture.png[width=500]
28
29 ==== Key APIs and Interfaces
30 The plugin provides Southbound REST API designated to listening REST devices. It supports
31 POST/PUT/DELETE operations. The operation (with corresponding JSON-encoded data) is sent
32 to unique REST URL belonging to certain datatype.
33
34 .The URLs are following:
35 * Access Control List (ACL):
36 +http://<host>:<port>/config/ietf-acl:access-lists/access-list/+
37 * Service Function (SF):
38 +http://<host>:<port>/config/service-function:service-functions/service-function/+
39 * Service Function Group (SFG):
40 +http://<host>:<port>/config/service-function:service-function-groups/service-function-group/+
41 * Service Function Schedule Type (SFST):
42 +http://<host>:<port>/config/service-function-scheduler-type:service-function-scheduler-types/service-function-scheduler-type/+
43 * Service Function Forwarder (SFF):
44 +http://<host>:<port>/config/service-function-forwarder:service-function-forwarders/service-function-forwarder/+
45 * Rendered Service Path (RSP):
46 +http://<host>:<port>/operational/rendered-service-path:rendered-service-paths/rendered-service-path/+
47
48 Therefore, network devices willing to receive REST messages must listen on
49 these REST URLs.
50
51 [NOTE]
52 Service Classifier Function (SCF) URL does not exist, because SCF is considered
53 as one of the network devices willing to receive REST messages. However, there
54 is a listener hooked on the SCF data store, which is triggering POST/PUT/DELETE
55 operations of ACL object, because ACL is referenced in +service-function-classifier.yang+