4 FaaS (Fabric As A service) has two layers of APIs. We describe the top
5 level API in the user guide. This document focuses on the Fabric level
6 API and describes each API’s semantics and example implementation. The
7 second layer defines an abstraction layer called *''Fabric*'' API. The
8 idea is to abstract network into a topology formed by a collections of
9 fabric objects other than varies of physical devices.Each Fabric object
10 provides a collection of unified services.The top level API enables
11 application developers or users to write applications to map high level
12 model such as GBP, Intent etc… into a logical network model, while the
13 lower level gives the application more control to individual fabric
14 object level. More importantly the Fabric API is more like SP (Service
15 Provider API) a fabric provider or vendor can implement the SPI based on
16 its own Fabric technique such as TRILL, SPB etc …
18 For how to use first level API operation, please refer to user guide for
24 FaaS Architecture is an 3 layered architecture, on the top is the FaaS
25 Application layer, in the middle is the Fabric manager and at the bottom
26 are different types of fabric objects. From bottom up, it is
28 Fabric and its controller (Fabric Controller)
29 The Fabric object provides an abstraction of a homogeneous network
30 or portion of the network and also has a built in Fabric controller
31 which provides management plane and control plane for the fabric.
32 The fabric controller implements the services required in Fabric
33 Service and monitor and control the fabric operation.
36 Fabric Manager manages all the fabric objects. also Fabric manager
37 acts as a Unified Fabric Controller which provides inter-connect
38 fabric control and configuration Also Fabric Manager is FaaS API
39 service via Which FaaS user level logical network API (the top level
40 API as mentioned previously) exposed and implemented.
42 FaaS renderer for GBP (Group Based Policy)
43 FaaS renderer for GBP is an application of FaaS and provides the
44 rendering service between GBP model and logical network model
45 provided by Fabric Manager.
47 Fabric APIs and Interfaces
48 --------------------------
50 FaaS APIs have 4 groups as defined below
52 Fabric Provisioning API
53 This set of APIs is used to create and remove Fabric Abstractions,
54 in other words, those APIs is to provision the underlay networks and
55 prepare to create overlay network(the logical network) on top of it.
58 This set of APIs is used to create logical network over the Fabrics.
61 EndPoint API is used to bind a physical port which is the location
62 of the attachment of an EndPoint happens or will happen.
65 Those APIs are for Operations, Administration and Maintenance
66 purpose and In current release, OAM API is not implemented yet.
68 Fabric Provisioning API
69 ~~~~~~~~~~~~~~~~~~~~~~~
71 - `http://${ipaddress}:8181/restconf/operations/fabric:compose-fabric <http://${ipaddress}:8181/restconf/operations/fabric:compose-fabric>`__
73 - `http://${ipaddress}:8181/restconf/operations/fabric:decompose-fabric <http://${ipaddress}:8181/restconf/operations/fabric:decompose-fabric>`__
75 - `http://${ipaddress}:8181/restconf/operations/fabric:get-all-fabrics <http://${ipaddress}:8181/restconf/operations/fabric:get-all-fabrics>`__
80 - RESTCONF for creating Logical port, switch, router, routing entries
81 and link. Among them, both switches and routers have ports. links
82 connect ports.these 5 logical elements are basic building blocks of a
85 - `http://${ipaddress}:8181/restconf/operations/fabric-service:create-logical-switch <http://${ipaddress}:8181/restconf/operations/fabric-service:create-logical-switch>`__
87 - `http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logical-switch <http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logical-switch>`__
89 - `http://${ipaddress}:8181/restconf/operations/fabric-service:create-logical-router <http://${ipaddress}:8181/restconf/operations/fabric-service:create-logical-router>`__
91 - `http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logical-router <http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logical-router>`__
93 - `http://${ipaddress}:8181/restconf/operations/fabric-service:add-static-route <http://${ipaddress}:8181/restconf/operations/fabric-service:add-static-route>`__
95 - `http://${ipaddress}:8181/restconf/operations/fabric-service:create-logic-port <http://${ipaddress}:8181/restconf/operations/fabric-service:create-logic-port>`__
97 - `http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logic-port <http://${ipaddress}:8181/restconf/operations/fabric-service:rm-logic-port>`__
99 - `http://${ipaddress}:8181/restconf/operations/fabric-service:create-gateway <http://${ipaddress}:8181/restconf/operations/fabric-service:create-gateway>`__
101 - `http://${ipaddress}:8181/restconf/operations/fabric-service:rm-gateway <http://${ipaddress}:8181/restconf/operations/fabric-service:rm-gateway>`__
103 - `http://${ipaddress}:8181/restconf/operations/fabric-service:port-binding-logical-to-fabric <http://${ipaddress}:8181/restconf/operations/fabric-service:port-binding-logical-to-fabric>`__
105 - `http://${ipaddress}:8181/restconf/operations/fabric-service:port-binding-logical-to-device <http://${ipaddress}:8181/restconf/operations/fabric-service:port-binding-logical-to-device>`__
107 - `http://${ipaddress}:8181/restconf/operations/fabric-service:add-port-function <http://${ipaddress}:8181/restconf/operations/fabric-service:add-port-function>`__
109 - `http://${ipaddress}:8181/restconf/operations/fabric-service:add-acl <http://${ipaddress}:8181/restconf/operations/fabric-service:add-acl>`__
111 - `http://${ipaddress}:8181/restconf/operations/fabric-service:del-acl <http://${ipaddress}:8181/restconf/operations/fabric-service:del-acl>`__
116 The following APIs is to bind the physical ports to the logical ports on
117 the logical switches:
119 - `http://${ipaddress}:8181/restconf/operations/fabric-endpoint:register-endpoint <http://${ipaddress}:8181/restconf/operations/fabric-endpoint:register-endpoint>`__
121 - `http://${ipaddress}:8181/restconf/operations/fabric-endpoint:unregister-endpoint <http://${ipaddress}:8181/restconf/operations/fabric-endpoint:unregister-endpoint>`__
123 - `http://${ipaddress}:8181/restconf/operations/fabric-endpoint:locate-endpoint <http://${ipaddress}:8181/restconf/operations/fabric-endpoint:locate-endpoint>`__
128 - `http://${ipaddress}:8181/restconf/operations/fabric-resource:create-fabric-port <http://${ipaddress}:8181/restconf/operations/fabric-resource:create-fabric-port>`__
130 API Reference Documentation
131 ---------------------------
134 `http://${ipaddress}:8181/restconf/apidoc/index.html <http://${ipaddress}:8181/restconf/apidoc/index.html>`__
135 and expand on *''FaaS*'' related panel for more APIs.