=== SFC Southbound REST Plugin ==== Overview The Southbound REST Plugin is used to send configuration from DataStore down to network devices supporting a REST API (i.e. they have a configured REST URI). It supports POST/PUT/DELETE operations, which are triggered accordingly by changes in the SFC data stores. .In its current state it listens to changes in these SFC data stores: * Access Control List (ACL) * Service Classifier Function (SCF) * Service Function (SF) * Service Function Group (SFG) * Service Function Schedule Type (SFST) * Service Function Forwader (SFF) * Rendered Service Path (RSP) ==== Southbound REST Plugin Architecture .The Southbound REST Plugin is built from three main components: . *listeners* - used to listen on changes in the SFC data stores . *JSON exporters* - used to export JSON-encoded data from binding-aware data store objects . *tasks* - used to collect REST URIs of network devices and to send JSON-encoded data down to these devices .Southbound REST Plugin Architecture diagram image::sfc/sb-rest-architecture.png[width=500] ==== Key APIs and Interfaces The plugin provides Southbound REST API designated to listening REST devices. It supports POST/PUT/DELETE operations. The operation (with corresponding JSON-encoded data) is sent to unique REST URL belonging to certain datatype. .The URLs are following: * Access Control List (ACL): +http://:/config/ietf-acl:access-lists/access-list/+ * Service Function (SF): +http://:/config/service-function:service-functions/service-function/+ * Service Function Group (SFG): +http://:/config/service-function:service-function-groups/service-function-group/+ * Service Function Schedule Type (SFST): +http://:/config/service-function-scheduler-type:service-function-scheduler-types/service-function-scheduler-type/+ * Service Function Forwarder (SFF): +http://:/config/service-function-forwarder:service-function-forwarders/service-function-forwarder/+ * Rendered Service Path (RSP): +http://:/operational/rendered-service-path:rendered-service-paths/rendered-service-path/+ Therefore, network devices willing to receive REST messages must listen on these REST URLs. [NOTE] Service Classifier Function (SCF) URL does not exist, because SCF is considered as one of the network devices willing to receive REST messages. However, there is a listener hooked on the SCF data store, which is triggering POST/PUT/DELETE operations of ACL object, because ACL is referenced in +service-function-classifier.yang+