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