Add license to the release documentation and requirements doc
[promise.git] / docs / requirements / architecture.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 ============================================
5 High level architecture and general features
6 ============================================
7
8 Architecture Overview
9 =====================
10
11 .. figure:: images/figure1.png
12    :name: figure1
13    :width: 90%
14
15    Resource Reservation Architecture
16
17 :numref:`figure1` shows the high level architecture for the resource reservation
18 use cases. Reserved resources are guaranteed for a given user/client for the
19 period expressed by start and end time. User/client represents the requestor
20 and the consequent consumer of the reserved resources and correspond to the
21 NFVO or VNFM in ETSI NFV terminology.
22
23 Note: in this document only reservation requests from NFVO are considered.
24
25 General Features
26 ================
27
28 This section provides a list of features that need to be developed in the
29 Promise project.
30
31 * Resource capacity management
32
33   * Discovery of available resource capacity in resource providers
34   * Monitoring of available resource capacity in resource providers
35   * Update available resource capacity as a result of new or expired
36     reservations, addition/removal of resources. Note: this is a VIM internal
37     function, not an operation in the VIM northbound interface.
38
39 * Resource reservation
40
41   * Set start time and end time for allocation
42   * Increase/decrease reserved resource's capacity
43   * Update resource reservations, e.g. add/remove reserved resources
44   * Terminate an allocated resource due to the end time of a reservation
45
46 * VIM northbound interfaces
47
48   * Receive/Reply resource reservation requests
49   * Receive/Reply resource capacity management requests
50   * Receive/Reply resource allocation requests for reserved resources when
51     start time arrives
52   * Subscribe/Notify resource reservation event
53
54     * Notify reservation error or process completion prior to reservation
55       start
56     * Notify remaining time until termination of a resource due to the end
57       time of a reservation
58     * Notify termination of a resource due to the end time of a reservation
59
60   * Receive/Reply queries on available resource capacity
61   * Subscribe/Notify changes in available resource capacity
62
63 High level northbound interface specification
64 =============================================
65
66 Resource Capacity Management
67 ----------------------------
68
69 .. figure:: images/figure2.png
70    :name: figure2
71    :width: 90%
72
73    Resource capacity management message flow: notification of capacity change
74
75 :numref:`figure2` shows a high level flow for a use case of resource capacity
76 management. In this example, the VIM notifies the NFVO of capacity change after
77 having received an event regarding a change in capacity (e.g. a fault
78 notification) from the NFVI. The NFVO can also retrieve detailed capacity
79 information using the Query Capacity Request interface operation.
80
81 .. figure:: images/figure3.png
82    :name: figure3
83    :width: 90%
84
85    Resource capacity management message flow: query of capacity density
86
87 :numref:`figure3` shows a high level flow for another use case of resource
88 capacity management. In this example, the NFVO queries the VIM about the actual
89 capacity to instantiate a certain resource according to a certain template, for
90 example a VM according to a certain flavor. In this case the VIM responds with
91 the number of VMs that could be instantiated according to that flavor with the
92 currently available capacity.
93
94 Resource Reservation
95 --------------------
96
97 .. figure:: images/figure4.png
98    :name: figure4
99    :width: 90%
100
101    Resource reservation flow
102
103 :numref:`figure4` shows a high level flow for a use case of resource
104 reservation. The main steps are:
105
106 * The NFVO sends a resource reservation request to the VIM using the Create
107   Resource Reservation Request interface operation.
108 * The NFVO gets a reservation identifier reservation associated with this
109   request in the reply message
110 * Using the reservation identifier reservation, the NFVO can
111   query/update/terminate a resource reservation using the corresponding
112   interface operations
113 * The NFVO is notified that the resource reservation is terminated due to the
114   end time of the reservation
115
116
117 Information elements
118 ====================
119
120 Resource Capacity Management
121 ----------------------------
122
123 Notify Capacity Change Event
124 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
125
126 The notification change message shall include the following information elements:
127
128 ============================ ========== =====================================
129 Name                         Type       Description
130 ============================ ========== =====================================
131 Notification                 Identifier Identifier issued by the VIM for the
132                                         capacity change event notification
133 Zone                         Identifier Identifier of the zone where capacity
134                                         has changed
135 Used/Reserved/Total Capacity List       Used, reserved and total capacity
136                                         information regarding the resource
137                                         items subscribed for notification for
138                                         which capacity change event occurred
139 ============================ ========== =====================================
140
141 Query Resource Capacity Request
142 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
143
144 The capacity management query request message shall include the following
145 information elements:
146
147 ========== ========== ======================================================
148 Name       Type       Description
149 ========== ========== ======================================================
150 Zone       Identifier Identifier of the zone where capacity is requested
151 Attributes List       Attributes of resource items to be notified regarding
152                       capacity change events
153 Resources  List       Identifiers of existing resource items to be queried
154                       regarding capacity info (such as images, flavors,
155                       virtual containers, networks, physical machines, etc.)
156 ========== ========== ======================================================
157
158 The capacity management query request message may also include the following
159 information element:
160
161 ====== ========== ==========================================================
162 Name   Type       Description
163 ====== ========== ==========================================================
164 Flavor Identifier Identifier that is passed in the request to obtain
165                   information of the number of virtual resources that can be
166                   instantiated according to this flavor with the available
167                   capacity
168 ====== ========== ==========================================================
169
170 Query Resource Capacity Reply
171 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
172
173 The capacity management query reply message shall include the following
174 information elements:
175
176 ============================ ========== =====================================
177 Name                         Type       Description
178 ============================ ========== =====================================
179 Zone                         Identifier Identifier of the zone where capacity
180                                         is requested
181 Used/Reserved/Total Capacity List       Used, reserved and total capacity
182                                         information regarding each of the
183                                         resource items requested to check for
184                                         capacity
185 ============================ ========== =====================================
186
187 The detailed specification of the northbound interface for Capacity Management
188 in provided in section 5.1.1.
189
190 Resource Reservation
191 --------------------
192
193 Create Resource Reservation Request
194 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
195
196 The create resource reservation request message shall include the following
197 information elements:
198
199 ========== ========== =========================================================
200 Name       Type       Description
201 ========== ========== =========================================================
202 Start      Timestamp  Start time for consumption of the reserved resources
203 End        Timestamp  End time for consumption of the reserved resources
204 Expiry     Timestamp  If not all reserved resources are allocated between start
205                       time and expiry, the VIM shall release the corresponding
206                       resources [#expiry]_
207 Amount     Number     Amount of the resources per resource item type (i.e.
208                       compute/network/storage) that need to be reserved
209 Zone       Identifier The zone  where the resources need(s) to be reserved
210 Attributes List       Attributes of the resources to be reserved such as DPDK
211                       support, hypervisor, network link bandwidth, affinity
212                       rules, etc.
213 Resources  List       Identifiers of existing resource items to be reserved
214                       (such as images, flavors, virtual containers, networks,
215                       physical machines, etc.)
216 ========== ========== =========================================================
217
218 .. [#expiry] Expiry is a period around start time within which, the allocation
219              process must take place. If allocation process does not start
220              within the expiry period, the reservation becomes invalid and VIM
221              should release the resources
222
223 Create Resource Reservation Reply
224 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
225
226 The create resource reservation reply message shall include the following
227 information elements:
228
229 =========== ========== =======================================================
230 Name        Type       Description
231 =========== ========== =======================================================
232 Reservation Identifier Identification of the reservation instance. It can be
233                        used by a consumer to modify the reservation later, and
234                        to request the allocation of the reserved resources.
235 Message     Text       Output message that provides additional information
236                        about the create resource reservation request (e.g. may
237                        be a simple ACK if the request is being background
238                        processed by the VIM)
239 =========== ========== =======================================================
240
241 Notify Reservation Event
242 ^^^^^^^^^^^^^^^^^^^^^^^^
243
244 The notification reservation event message shall include the following
245 information elements:
246
247 ============ ========== =====================================================
248 Name         Type       Description
249 ============ ========== =====================================================
250 Reservation  Identifier Identification of the reservation instance triggering
251                         the event
252 Notification Identifier Identification of the resource event notification
253                         issued by the VIM
254 Message      Text       Message describing the event
255 ============ ========== =====================================================
256
257 The detailed specification of the northbound interface for Resource Reservation
258 is provided in section 5.1.2.