update .gitignore for swap files
[promise.git] / docs / requirements / architecture.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 reservation
15 use cases. Reserved resources are guaranteed for a given user/client for the
16 period expressed by start and end time. User/client represents the requestor
17 and the consequent consumer of the reserved resources and correspond to the
18 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
52       start
53     * Notify remaining time until termination of a resource due to the end
54       time of a reservation
55     * Notify termination of a resource due to the end time of a reservation
56
57   * Receive/Reply queries on available resource capacity
58   * Subscribe/Notify changes in available resource capacity
59
60 High level northbound interface specification
61 =============================================
62
63 Resource Capacity Management
64 ----------------------------
65
66 .. figure:: images/figure2.png
67    :name: figure2
68    :width: 90%
69
70    Resource capacity management message flow: notification of capacity change
71
72 :numref:`figure2` shows a high level flow for a use case of resource capacity
73 management. In this example, the VIM notifies the NFVO of capacity change after
74 having received an event regarding a change in capacity (e.g. a fault
75 notification) from the NFVI. The NFVO can also retrieve detailed capacity
76 information using the Query Capacity Request interface operation.
77
78 .. figure:: images/figure3.png
79    :name: figure3
80    :width: 90%
81
82    Resource capacity management message flow: query of capacity density
83
84 :numref:`figure3` shows a high level flow for another use case of resource
85 capacity management. In this example, the NFVO queries the VIM about the actual
86 capacity to instantiate a certain resource according to a certain template, for
87 example a VM according to a certain flavor. In this case the VIM responds with
88 the number of VMs that could be instantiated according to that flavor with the
89 currently available capacity.
90
91 Resource Reservation
92 --------------------
93
94 .. figure:: images/figure4.png
95    :name: figure4
96    :width: 90%
97
98    Resource reservation flow
99
100 :numref:`figure4` shows a high level flow for a use case of resource
101 reservation. 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 elements:
124
125 ============================ ========== =====================================
126 Name                         Type       Description
127 ============================ ========== =====================================
128 Notification                 Identifier Identifier issued by the VIM for the
129                                         capacity change event notification
130 Zone                         Identifier Identifier of the zone where capacity
131                                         has changed
132 Used/Reserved/Total Capacity List       Used, reserved and total capacity
133                                         information regarding the resource
134                                         items subscribed for notification for
135                                         which capacity change event occurred
136 ============================ ========== =====================================
137
138 Query Resource Capacity Request
139 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
140
141 The capacity management query request message shall include the following
142 information elements:
143
144 ========== ========== ======================================================
145 Name       Type       Description
146 ========== ========== ======================================================
147 Zone       Identifier Identifier of the zone where capacity is requested
148 Attributes List       Attributes of resource items to be notified regarding
149                       capacity change events
150 Resources  List       Identifiers of existing resource items to be queried
151                       regarding capacity info (such as images, flavors,
152                       virtual containers, networks, physical machines, etc.)
153 ========== ========== ======================================================
154
155 The capacity management query request message may also include the following
156 information element:
157
158 ====== ========== ==========================================================
159 Name   Type       Description
160 ====== ========== ==========================================================
161 Flavor Identifier Identifier that is passed in the request to obtain
162                   information of the number of virtual resources that can be
163                   instantiated according to this flavor with the available
164                   capacity
165 ====== ========== ==========================================================
166
167 Query Resource Capacity Reply
168 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
169
170 The capacity management query reply message shall include the following
171 information elements:
172
173 ============================ ========== =====================================
174 Name                         Type       Description
175 ============================ ========== =====================================
176 Zone                         Identifier Identifier of the zone where capacity
177                                         is requested
178 Used/Reserved/Total Capacity List       Used, reserved and total capacity
179                                         information regarding each of the
180                                         resource items requested to check for
181                                         capacity
182 ============================ ========== =====================================
183
184 The detailed specification of the northbound interface for Capacity Management
185 in provided in section 5.1.1.
186
187 Resource Reservation
188 --------------------
189
190 Create Resource Reservation Request
191 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
192
193 The create resource reservation request message shall include the following
194 information elements:
195
196 ========== ========== =========================================================
197 Name       Type       Description
198 ========== ========== =========================================================
199 Start      Timestamp  Start time for consumption of the reserved resources
200 End        Timestamp  End time for consumption of the reserved resources
201 Expiry     Timestamp  If not all reserved resources are allocated between start
202                       time and expiry, the VIM shall release the corresponding
203                       resources [#expiry]_
204 Amount     Number     Amount of the resources per resource item type (i.e.
205                       compute/network/storage) that need to be reserved
206 Zone       Identifier The zone  where the resources need(s) to be reserved
207 Attributes List       Attributes of the resources to be reserved such as DPDK
208                       support, hypervisor, network link bandwidth, affinity
209                       rules, etc.
210 Resources  List       Identifiers of existing resource items to be reserved
211                       (such as images, flavors, virtual containers, networks,
212                       physical machines, etc.)
213 ========== ========== =========================================================
214
215 .. [#expiry] Expiry is a period around start time within which, the allocation
216              process must take place. If allocation process does not start
217              within the expiry period, the reservation becomes invalid and VIM
218              should release the resources
219
220 Create Resource Reservation Reply
221 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
222
223 The create resource reservation reply message shall include the following
224 information elements:
225
226 =========== ========== =======================================================
227 Name        Type       Description
228 =========== ========== =======================================================
229 Reservation Identifier Identification of the reservation instance. It can be
230                        used by a consumer to modify the reservation later, and
231                        to request the allocation of the reserved resources.
232 Message     Text       Output message that provides additional information
233                        about the create resource reservation request (e.g. may
234                        be a simple ACK if the request is being background
235                        processed by the VIM)
236 =========== ========== =======================================================
237
238 Notify Reservation Event
239 ^^^^^^^^^^^^^^^^^^^^^^^^
240
241 The notification reservation event message shall include the following
242 information elements:
243
244 ============ ========== =====================================================
245 Name         Type       Description
246 ============ ========== =====================================================
247 Reservation  Identifier Identification of the reservation instance triggering
248                         the event
249 Notification Identifier Identification of the resource event notification
250                         issued by the VIM
251 Message      Text       Message describing the event
252 ============ ========== =====================================================
253
254 The detailed specification of the northbound interface for Resource Reservation
255 is provided in section 5.1.2.