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