10 The scope of the present document is to describe the VNFM Driver exposed API specification.
\r
12 **2. Terms, Definitions and Abbreviations**
\r
13 =============================================
\r
15 For the purposes of the present document, the following abbreviations apply:
\r
17 +-------------+-----------------------------------------------+
\r
19 +-------------+-----------------------------------------------+
\r
20 |NFVO |Network Functions Virtualization Orchestrator |
\r
21 +-------------+-----------------------------------------------+
\r
22 |VNFM |Virtual Network Function Manager |
\r
23 +-------------+-----------------------------------------------+
\r
24 |VNF |Virtual Network Function |
\r
25 +-------------+-----------------------------------------------+
\r
27 Table 2-1 abbreviations
\r
30 **3. Interfaces provided by VNFM Driver**
\r
31 ===========================================
\r
33 Interfaces use RESTful API and the format is as follows:
\r
34 http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]
\r
40 **3.1 Instantiate VNF**
\r
41 ------------------------
\r
43 +--------------+--------------------------------------------------------------+
\r
44 |If Definition | Description |
\r
45 +==============+==============================================================+
\r
46 |URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs |
\r
47 +--------------+--------------------------------------------------------------+
\r
49 +--------------+--------------------------------------------------------------+
\r
50 |Direction | NSLCM->VNFMDriver |
\r
51 +--------------+--------------------------------------------------------------+
\r
55 +-----------------------+------------+-------------+----------+------------------------------+
\r
56 | Parameter | Qualifier | Cardinality | Content | Description |
\r
57 +=======================+============+=============+==========+==============================+
\r
58 | vnfInstanceName | M | 1 | String | Human-readable name of the |
\r
59 | | | | | VNF instance to be created. |
\r
60 +-----------------------+------------+-------------+----------+------------------------------+
\r
61 | vnfPackageId | M | 1 | String | VNF packageId |
\r
62 +-----------------------+------------+-------------+----------+------------------------------+
\r
63 | vnfDescriptorId | M | 1 | String | Information sufficient to |
\r
64 | | | | | identify the VNF Descriptor |
\r
65 | | | | | which defines the VNF to |
\r
66 | | | | | be created. |
\r
67 +-----------------------+------------+-------------+----------+------------------------------+
\r
68 | flavourId | M | 0..1 | String | Reserved |
\r
69 +-----------------------+------------+-------------+----------+------------------------------+
\r
70 |vnfInstanceDescription | M | 0..1 | String | Human-readable |
\r
71 | | | | | description of the VNF |
\r
72 | | | | | instance to be created. |
\r
73 +-----------------------+------------+-------------+----------+------------------------------+
\r
74 | extVirtualLink | M | 0..N | String | References to external |
\r
75 | | | | | virtual links to connect the |
\r
77 +-----------------------+------------+-------------+----------+------------------------------+
\r
78 | additionalParam | M | 0..N | String |Additional parameters |
\r
79 | | | | |passed by the NFVO as |
\r
80 | | | | |input to the instantiation |
\r
81 | | | | |process, specific to the |
\r
82 | | | | |VNF being instantiated. |
\r
83 +-----------------------+------------+-------------+----------+------------------------------+
\r
85 **ExtVirtualLinkData:**
\r
87 +--------------+------------+-------------+----------+----------------------------------------+
\r
88 | Attribute | Qualifier | Cardinality | Content | Description |
\r
89 +==============+============+=============+==========+========================================+
\r
90 | vlInstanceId | M | 0..1 | String | Identifier of the VL instance |
\r
91 +--------------+------------+-------------+----------+----------------------------------------+
\r
92 | vim | CM | 0..1 | VimInfo | Information about the VIM that |
\r
93 | | | | | manages this resource. |
\r
94 | | | | | This attribute shall be supported |
\r
95 | | | | | and present if VNF-related resource |
\r
96 | | | | | management in direct applicable. |
\r
97 +--------------+------------+-------------+----------+----------------------------------------+
\r
98 | networkId | M | 1 | String | The network UUID of VIM |
\r
99 +--------------+------------+-------------+----------+----------------------------------------+
\r
100 | cpdId | M | 0..1 | String | Identifier of the external CPD in VNFD |
\r
101 +--------------+------------+-------------+----------+----------------------------------------+
\r
105 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
106 | Attribute | Qualifier | Cardinality | Content | Description |
\r
107 +==================+============+=============+==============+================================================+
\r
108 | vimInfoId | M | 1 | Identifier | The identifier of this VimInfo instance, |
\r
109 | | | | | for the purpose of referencing it from |
\r
110 | | | | | other information elements. |
\r
111 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
112 | vimId | M | 1 | Identifier | The identifier of the VIM. |
\r
113 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
114 | interfaceInfo | M | 0..N | KeyValuePair | Information about the interface to the |
\r
115 | | | | | VIM, including VIM provider type, API |
\r
116 | | | | | version, and protocol type. |
\r
117 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
118 | accessInfo | M | 0..N | KeyValuePair | Authentication credentials for accessing the |
\r
119 | | | | | VIM. Examples may include those to support |
\r
120 | | | | | different authentication schemes, e.g., OAuth, |
\r
121 | | | | | Token, etc. |
\r
122 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
123 |interfaceEndpoint | M | 1 | String | Information about the interface endpoint. An |
\r
124 | | | | | example is a URL. |
\r
125 +------------------+------------+-------------+--------------+------------------------------------------------+
\r
130 +--------------+------------+-------------+----------+-------------------------------+
\r
131 | Attribute | Qualifier | Cardinality | Content | Description |
\r
132 +==============+============+=============+==========+===============================+
\r
133 | vimType | M | 1 | String | vim |
\r
134 +--------------+------------+-------------+----------+-------------------------------+
\r
135 | apiVersion | M | 1 | String | |
\r
136 +--------------+------------+-------------+----------+-------------------------------+
\r
137 | protocolType | M | 1 | String | http, https |
\r
138 +--------------+------------+-------------+----------+-------------------------------+
\r
143 +--------------+------------+-------------+----------+-------------------------------+
\r
144 | Attribute | Qualifier | Cardinality | Content | Description |
\r
145 +==============+============+=============+==========+===============================+
\r
146 | tenant | M | 1 | String | Tenant Name of tenant |
\r
147 +--------------+------------+-------------+----------+-------------------------------+
\r
148 | username | M | 1 | String | Username for login |
\r
149 +--------------+------------+-------------+----------+-------------------------------+
\r
150 | password | M | 1 | String | Password of login user |
\r
151 +--------------+------------+-------------+----------+-------------------------------+
\r
154 "vnfInstanceName":"vFW",
\r
155 "vnfPackageId":"1",
\r
156 "vnfDescriptorId":"1",
\r
157 "vnfInstanceDescription":"vFW_1",
\r
158 "extVirtualLinkLink":[
\r
161 "vlInstanceId":"1",
\r
162 "resourceId":"1246" ,
\r
173 "protocolType":"http"
\r
178 "tenant":"tenant_vCPE",
\r
180 "password":"vCPE_321"
\r
183 "interfaceEndpoint":"http://10.43.21.105:80/"
\r
190 "additionalParam":{
\r
200 +--------------+------------+-------------+-----------+-------------------------------+
\r
201 | Parameter | Qualifier | Cardinality | Content | Description |
\r
202 +==============+============+=============+===========+===============================+
\r
203 | jobId | M | 1 | Identifier| Tenant Name of tenant |
\r
204 | | | | | operation occurrence. |
\r
206 | | | | | [lifecycleOperationOccurren |
\r
208 +--------------+------------+-------------+-----------+-------------------------------+
\r
209 | password | M | 1 | String | Password of login user |
\r
210 +--------------+------------+-------------+-----------+-------------------------------+
\r
214 "vnfInstanceId":"1"
\r
218 **3.2 Terminate VNF**
\r
219 -----------------------
\r
221 +---------------+------------------------------------------------------------------+
\r
222 | IF Definition | Description |
\r
223 +===============+==================================================================+
\r
224 | URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
\r
225 | | {vnfInstanceId}/terminate |
\r
226 +---------------+------------------------------------------------------------------+
\r
227 | Operation | POST |
\r
228 +---------------+------------------------------------------------------------------+
\r
229 | Direction | NSLCM->VNFMDriver |
\r
230 +---------------+------------------------------------------------------------------+
\r
234 +-----------------+------------+-------------+-----------+----------------------------------+
\r
235 | Parameter | Qualifier | Cardinality | Content | Description |
\r
236 +=================+============+=============+===========+==================================+
\r
237 | terminationType | M | 1 | Enum | Signals whether forceful or |
\r
238 | | | | | graceful termination is |
\r
239 | | | | | requested. |
\r
240 | | | | | In case of forceful termination, |
\r
241 | | | | | the VNF is shut down |
\r
242 | | | | | immediately, and resources are |
\r
243 | | | | | released. Note that if the VNF |
\r
244 | | | | | is still in service, this may |
\r
245 | | | | | adversely impact network |
\r
246 | | | | | service, and therefore, operator |
\r
247 | | | | | policies apply to determine if |
\r
248 | | | | | forceful termination is allowed |
\r
249 | | | | | in the particular situation. |
\r
251 | | | | | In case of graceful termination, |
\r
252 | | | | | the VNFM first arranges to take |
\r
253 | | | | | the VNF out of service (by |
\r
254 | | | | | means out of scope of the |
\r
255 | | | | | present specification, e.g. |
\r
256 | | | | | involving interaction with EM, |
\r
257 | | | | | if required). Once this was |
\r
258 | | | | | successful, or after a timeout, |
\r
259 | | | | | the VNFM shuts down the VNF |
\r
260 | | | | | and releases the resources. |
\r
261 +-----------------+------------+-------------+-----------+----------------------------------+
\r
262 | graceful | M | 0..1 | Time | The time interval (second) to |
\r
263 | Termination | | | Duration | wait for the VNF to be taken out |
\r
264 | Timeout | | | | of service during graceful |
\r
265 | | | | | termination, before shutting |
\r
266 | | | | | down the VNF and releasing the |
\r
267 | | | | | resources. |
\r
268 | | | | | If not given, it is expected |
\r
269 | | | | | that the VNFM waits for the |
\r
270 | | | | | successful taking out of service |
\r
271 | | | | | of the VNF, no matter how long |
\r
272 | | | | | it takes, before shutting down |
\r
273 | | | | | the VNF and releasing the |
\r
274 | | | | | resources (see note). |
\r
276 | | | | | Minimum timeout or timeout |
\r
277 | | | | | range are specified by the VNF |
\r
278 | | | | | Provider (e.g. defined in the |
\r
279 | | | | | VNFD or communicated by |
\r
280 | | | | | other means). |
\r
282 | | | | | Not relevant in case of forceful |
\r
283 | | | | | termination. |
\r
284 +-----------------+------------+-------------+-----------+----------------------------------+
\r
287 "vnfInstanceId":"1",
\r
288 "terminationType":"graceful",
\r
289 "gracefulTerminationTimeout":"60"
\r
295 +--------------+------------+-------------+-----------+--------------------------------+
\r
296 | Parameter | Qualifier | Cardinality | Content | Description |
\r
297 +==============+============+=============+===========+================================+
\r
298 | jobId | M | 1 | Identifier| Identifier of the VNF lifecycle|
\r
299 | | | | | operation occurrence. |
\r
301 | | | | | [lifecycleOperationOccurren |
\r
303 +--------------+------------+-------------+-----------+--------------------------------+
\r
314 +---------------+------------------------------------------------------------------+
\r
315 | IF Definition | Description |
\r
316 +===============+==================================================================+
\r
317 | URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
\r
318 | | {vnfInstanceId} |
\r
319 +---------------+------------------------------------------------------------------+
\r
320 | Operation | GET |
\r
321 +---------------+------------------------------------------------------------------+
\r
322 | Direction | NSLCM->VNFMDriver |
\r
323 +---------------+------------------------------------------------------------------+
\r
327 VNF filter: vnfInstanceId via url [R1]
\r
331 +--------------+------------+-------------+-----------+---------------------------------+
\r
332 | Parameter | Qualifier | Cardinality | Content | Description |
\r
333 +==============+============+=============+===========+=================================+
\r
334 | vnfInfo | M | o..N | vnfInfo | The information items about the |
\r
335 | | | | | selected VNF instance(s) that |
\r
336 | | | | | are returned. |
\r
338 | | | | | If attributeSelector is present,|
\r
339 | | | | | only the attributes listed in |
\r
340 | | | | | attributeSelector will be |
\r
341 | | | | | returned for the selected |
\r
342 | | | | | VNF instance(s). |
\r
343 | | | | | See note. |
\r
344 +--------------+------------+-------------+-----------+---------------------------------+
\r
348 +-----------------+------------+-------------+----------+---------------------------------+
\r
349 | Attribute | Qualifier | Cardinality | Content | Description |
\r
350 +=================+============+=============+==========+=================================+
\r
351 | vnfInstanceId | M | 1 | String | VNF instance identifier. |
\r
352 +-----------------+------------+-------------+----------+---------------------------------+
\r
353 | vnfInstanceName | M | o..1 | String | VNF instance name. See note. |
\r
354 +-----------------+------------+-------------+----------+---------------------------------+
\r
355 | vnfInstance | M | o..1 | String | Human-readable description of |
\r
356 | Description | | | | the VNF instance. |
\r
357 +-----------------+------------+-------------+----------+---------------------------------+
\r
358 | vnfdId | M | 1 | String | Identifier of the VNFD on which |
\r
359 | | | | | the VNF instance is based. |
\r
360 +-----------------+------------+-------------+----------+---------------------------------+
\r
361 | vnfPackageId | M | o..1 | String | Identifier of the VNF Package |
\r
362 | | | | | used to manage the lifecycle of |
\r
363 | | | | | the VNF instance. See note. |
\r
364 | | | | | Shall be present for an |
\r
365 | | | | | instantiated VNF instance. |
\r
366 +-----------------+------------+-------------+----------+---------------------------------+
\r
367 | version | M | 1 | String | Version of the VNF. |
\r
368 +-----------------+------------+-------------+----------+---------------------------------+
\r
369 | vnfProvider | M | 1 | String | Name of the person or company |
\r
370 | | | | | providing the VNF. |
\r
371 +-----------------+------------+-------------+----------+---------------------------------+
\r
372 | vnfType | M | 1 | String | VNF Application Type |
\r
373 +-----------------+------------+-------------+----------+---------------------------------+
\r
374 | vnfStatus | M | 1 | Enum | The instantiation state of the |
\r
375 | | | | | VNF. Possible values: |
\r
376 | | | | | INACTIVE (Vnf is terminated or |
\r
377 | | | | | not instantiated ), |
\r
378 | | | | | ACTIVE (Vnf is instantiated). |
\r
379 | | | | | [instantiationState] |
\r
380 +-----------------+------------+-------------+----------+---------------------------------+
\r
386 "nfInstanceId":"1",
\r
387 "vnfInstanceName":"vFW",
\r
388 "vnfInstanceDescription":"vFW in Nanjing TIC Edge",
\r
390 "vnfPackageId":"1",
\r
392 "vnfProvider":"ZTE",
\r
394 "vnfStatus":" ACTIVE",
\r
400 **3.4 Get operation status**
\r
401 -----------------------------
\r
403 +---------------+------------------------------------------------------------------+
\r
404 | IF Definition | Description |
\r
405 +===============+==================================================================+
\r
406 | URI | http(s)://[hostname][:port]/api/{vnfmtype} |
\r
407 | | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId } |
\r
408 +---------------+------------------------------------------------------------------+
\r
409 | Operation | GET |
\r
410 +---------------+------------------------------------------------------------------+
\r
411 | Direction | NSLCM->VNFMDriver |
\r
412 +---------------+------------------------------------------------------------------+
\r
420 +--------------------+------------+-------------+-------------+---------------------------------+
\r
421 | Parameter | Qualifier | Cardinality | Content | Description |
\r
422 +====================+============+=============+=============+=================================+
\r
423 | jobId | M | 1 | String | Job ID |
\r
424 +--------------------+------------+-------------+-------------+---------------------------------+
\r
425 | responseDescriptor | M | 1 | - | Including: |
\r
426 | | | | | vnfStatus, statusDescription, |
\r
427 | | | | | errorCode,progress, |
\r
428 | | | | | responseHistoryList, responseId |
\r
429 +--------------------+------------+-------------+-------------+---------------------------------+
\r
430 | status | M | 1 | String | JOB status |
\r
431 | | | | | started |
\r
432 | | | | | processing |
\r
433 | | | | | finished |
\r
435 +--------------------+------------+-------------+-------------+---------------------------------+
\r
436 | progress | M | 1 | Integer | progress (1-100) |
\r
437 +--------------------+------------+-------------+-------------+---------------------------------+
\r
438 | statusDescription | M | 1 | String | Progress Description |
\r
439 +--------------------+------------+-------------+-------------+---------------------------------+
\r
440 | errorCode | M | 1 | Integer | Errorcode |
\r
441 +--------------------+------------+-------------+-------------+---------------------------------+
\r
442 | responseId | M | 1 | Integer | Response Identifier |
\r
443 +--------------------+------------+-------------+-------------+---------------------------------+
\r
444 | response | M | o..N | ArrayList<> | History Response Messages |
\r
445 | HistoryList | | | | from the requested |
\r
446 | | | | | responseId to lastest one. |
\r
447 | | | | | Including fields: |
\r
448 | | | | | vnfStatus, |
\r
449 | | | | | statusDescription, |
\r
450 | | | | | errorCode, |
\r
451 | | | | | progress, |
\r
452 | | | | | responseId |
\r
453 +--------------------+------------+-------------+-------------+---------------------------------+
\r
456 "jobId" : "1234566",
\r
457 "responseDescriptor" : {
\r
460 "status" : "proccessing",
\r
461 "statusDescription" : "OMC VMs are decommissioned in VIM",
\r
462 "errorCode" : null,
\r
463 "responseId" : "42",
\r
464 "responseHistoryList" : [{
\r
467 "status" : "proccessing",
\r
468 "statusDescription" : "OMC VMs are decommissioned in VIM",
\r
469 "errorCode" : null,
\r
474 "status" : "proccessing",
\r
475 "statusDescription" : "OMC VMs are decommissioned in VIM",
\r
476 "errorCode" : null,
\r
490 +---------------+------------------------------------------------------------------+
\r
491 | IF Definition | Description |
\r
492 +===============+==================================================================+
\r
493 | URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ |
\r
494 | | {vnfInstanceId}/scale |
\r
495 +---------------+------------------------------------------------------------------+
\r
496 | Operation | POST |
\r
497 +---------------+------------------------------------------------------------------+
\r
498 | Direction | NSLCM->VNFMDriver |
\r
499 +---------------+------------------------------------------------------------------+
\r
504 +---------------+------------+-------------+-------------+---------------------------------------------+
\r
505 | Parameter | Qualifier | Cardinality | Content | Description |
\r
506 +===============+============+=============+=============+=============================================+
\r
507 | type | M | 1 | Enum | Defines the type of the scale operation |
\r
508 | | | | | requested (scale out, scale in). The set of |
\r
509 | | | | | types actually supported depends on the |
\r
510 | | | | | capabilities of the VNF being managed, as |
\r
511 | | | | | declared in the VNFD. See note 1. |
\r
512 +---------------+------------+-------------+-------------+---------------------------------------------+
\r
513 | aspectId | M | 1 | Identifier | Identifies the aspect of the VNF that is |
\r
514 | | | | | requested to be scaled, as declared in the |
\r
515 +---------------+------------+-------------+-------------+---------------------------------------------+
\r
516 | numberOfSteps | M | 1 | Integer | Number of scaling steps to be executed as |
\r
517 | | | | | part of this ScaleVnf operation. It shall |
\r
518 | | | | | be a positive number. |
\r
519 | | | | | Defaults to 1. |
\r
520 | | | | | The VNF Provider defines in the VNFD |
\r
521 | | | | | whether or not a particular VNF supports |
\r
522 | | | | | performing more than one step at a time. |
\r
523 | | | | | Such a property in the VNFD applies for all |
\r
524 +---------------+------------+-------------+-------------+---------------------------------------------+
\r
525 | additional | M | 1 |KeyValuePair | Additional parameters passed by the NFVO |
\r
526 | Param | | | | as input to the scaling proccess, specific |
\r
527 | | | | | to the VNF being scaled. |
\r
528 | | | | | Reserved |
\r
529 +---------------+------------+-------------+-------------+---------------------------------------------+
\r
530 | NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand |
\r
531 | or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical |
\r
532 | scaling (scale up, scale down) is not supported in the present document. |
\r
533 | SCALE_IN designates scaling in. |
\r
534 | SCALE_OUT 1 designates scaling out. |
\r
535 | NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling |
\r
537 +------------------------------------------------------------------------------------------------------+
\r
540 "vnfInstanceId":"5",
\r
541 "type":" SCALE_OUT",
\r
543 "numberOfSteps":"1",
\r
544 "additionalParam":{
\r
554 +--------------------+------------+-------------+-------------+---------------------------------+
\r
555 | Parameter | Qualifier | Cardinality | Content | Description |
\r
556 +====================+============+=============+=============+=================================+
\r
557 | jobId | M | 1 | String | The identifier of the VNF |
\r
558 | | | | | lifecycle operation occurrence. |
\r
559 +--------------------+------------+-------------+-------------+---------------------------------+
\r
569 +---------------+------------------------------------------------------------------+
\r
570 | IF Definition | Description |
\r
571 +===============+==================================================================+
\r
572 | URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs |
\r
573 | | {vnfInstanceId}/heal |
\r
574 +---------------+------------------------------------------------------------------+
\r
575 | Operation | POST |
\r
576 +---------------+------------------------------------------------------------------+
\r
577 | Direction | NSLCM->VNFMDriver |
\r
578 +---------------+------------------------------------------------------------------+
\r
582 +--------------------+------------+-------------+-------------+---------------------------------+
\r
583 | Parameter | Qualifier | Cardinality | Content | Description |
\r
584 +====================+============+=============+=============+=================================+
\r
585 | action | M | 1 | String | Indicates the action to be done |
\r
586 | | | | | upon the given virtual machine. |
\r
587 | | | | | Only "vmReset" is supported |
\r
588 | | | | | currently. |
\r
589 +--------------------+------------+-------------+-------------+---------------------------------+
\r
590 | affectedvm | M | 1 | AffectedVm | Defines the information of |
\r
591 | | | | | virtual machines. |
\r
592 +--------------------+------------+-------------+-------------+---------------------------------+
\r
596 +--------------------+------------+-------------+-------------+---------------------------------+
\r
597 | Parameter | Qualifier | Cardinality | Content | Description |
\r
598 +====================+============+=============+=============+=================================+
\r
599 | vimid | M | 1 | String | Defines the UUID of virtual |
\r
600 | | | | | machine. |
\r
601 +--------------------+------------+-------------+-------------+---------------------------------+
\r
602 | vduid | M | 1 | String | Defines the id of vdu. |
\r
603 +--------------------+------------+-------------+-------------+---------------------------------+
\r
604 | vmname | M | 1 | | Defines the name of virtual |
\r
605 | | | | | machines. |
\r
606 +--------------------+------------+-------------+-------------+---------------------------------+
\r
609 "action": "vmReset",
\r
613 "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",
\r
614 "vduid": "vdu_100",
\r
615 "vmname": "ZTE_SSS_111_PP_2_L"
\r
623 +--------------------+------------+-------------+-------------+---------------------------------+
\r
624 | Parameter | Qualifier | Cardinality | Content | Description |
\r
625 +====================+============+=============+=============+=================================+
\r
626 | jobId | M | 1 | Identifier | The identifier of the VNF |
\r
627 | | | | | healing operation occurrence. |
\r
628 +--------------------+------------+-------------+-------------+---------------------------------+
\r