1 === SFC Southbound REST Plugin
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.
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)
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
23 . *tasks* - used to collect REST URIs of network devices and to send JSON-encoded
24 data down to these devices
26 .Southbound REST Plugin Architecture diagram
27 image::sfc/sb-rest-architecture.png[width=500]
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.
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/+
48 Therefore, network devices willing to receive REST messages must listen on
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+