Merge "Fixed invalid outputs for PUTs in TCPMD5."
[docs.git] / manuals / developer-guide / src / main / asciidoc / sfc / odl-sfc-load-balance-dev.adoc
1 === Service Function Load Balancing Developer Guide
2
3 ==== Overview
4 SFC Load-Balancing feature implements load balancing of Service Functions, rather than a one-to-one mapping between Service Function Forwarder and Service Function. 
5
6 ==== Load Balancing Architecture
7 Service Function Groups (SFG) can replace Service Functions (SF) in the Rendered Path model. 
8 A Service Path can only be defined using SFGs or SFs, but not a combination of both.
9
10 Relevant objects in the YANG model are as follows:
11
12 1. Service-Function-Group-Algorithm:
13
14         Service-Function-Group-Algorithms {
15                 Service-Function-Group-Algorithm {
16                         String name
17                         String type
18                 }
19         }
20
21         Available types: ALL, SELECT, INDIRECT, FAST_FAILURE
22         
23 2. Service-Function-Group:
24
25         Service-Function-Groups {
26                 Service-Function-Group {
27                         String name
28                         String serviceFunctionGroupAlgorithmName
29                         String type
30                         String groupId
31                         Service-Function-Group-Element {
32                                 String service-function-name
33                                 int index
34                         }
35                 }
36         }
37
38 3. ServiceFunctionHop: holds a reference to a name of SFG (or SF)
39  
40 ==== Key APIs and Interfaces
41 This feature enhances the existing SFC API.
42
43 REST API commands include:
44 * For Service Function Group (SFG): read existing SFG, write new SFG, delete existing SFG, add Service Function (SF) to SFG, and delete SF from SFG
45 * For Service Function Group Algorithm (SFG-Alg): read, write, delete
46
47 Bundle providing the REST API: sfc-sb-rest
48 * Service Function Groups and Algorithms are defined in: sfc-sfg and sfc-sfg-alg
49 * Relevant JAVA API: SfcProviderServiceFunctionGroupAPI, SfcProviderServiceFunctionGroupAlgAPI