Skip to end of metadata
Go to start of metadata

VNFRQTS-23 requires the VNFRQTS project to agree on a "standard" format for requirements for the ONAP Amsterdam release.  This task is assigned for resolution in Sprint 2.  There are a number of aspects top this task - Key words, processes and tooling

Key Words

RFC 2119  provides definitions for keywords to signify requirements: 

  • MUST
  • MAY

The Seed documents from ECOMP use the MUST / SHOULD keywords. Some of the other seed documents do not use any Keywords.

Some task is required to ensure consistent use of keywords in the source material 

Requirement Subject

From the Project Charter, the  Subject of the Requirements is the VNF  and not the platform or its components. 

One way to enforce this scope is to structure the requirement such that they are written as complete sentences with VNF as the subject  e.g.The VNF  MUST xxxx. 

To allow for conditional requirements, the following is also allowed: If <condition> the VNF MUST|SHOULD|MAY ..."

Some of the requirements in the seed documents are not structured as stand alone complete sentences.  Some task would be required to align the requirements to a consistent structure.

Requirement Structure

The  Project Charter also mentions the development of "EPIC statements". The ONAP JIRA wiki uses the term User Story Syntax  for the same structure:

User Story Syntax

As a <user> = who
I want to <be able to do ABC> = what
So that <XYZ can be done> = why

The  requirements from the seed document are not in this form, and so some task would be required to structure them appropriately 


Use Cases for Requirements 

  • Requirements as text in a .hmtl formatted  VNF Requirements deliverable for use in RFPs  - EPICVNFRQTS-6
  • Requirements as  table for conformance mapping - User StoryVNFRQTS-27
  • Correlate VNF Requirements and VNF test cases for validation - EPIC - VNFRQTS-8 
  • Subsets of the requirements apply for particular conformance mapping activities beyond complete VNFS e.g. 
    • VNF Requirements impacting the VNF Package definition - User Story -  VNFRQTS-28
    • VNF Requirements for configurable parameters - User Story -  VNFRQTS-28

Requirement attributes

Attributes may be required to support subsetting  the list of requirements.

Once identified, VNF Requirements are not expected to be very dynamic, but there may be some changes required between ONAP releases.

A VNF Requirement version attribute may be required to  accommodate this.

Some VNF Requirements may be forward looking ie anticipated to apply in future releases.

Some VNF Requirements may be optional


The VNF Requirements "master" in the .rst files in the vnfrqts/requirements repo.

The documentation projects Jenkins job builds the .html onto the website

Tooling is needed to extract just the requirements sentence from the table format.  This is expected to require the VNF requirements to be tagged appropriately in the ,rst source files

Requirement identifiers

Requirements should be uniquely identified. Once assigned requirements identified should remain across releases and revisions. New requirments may be added in a release. numbers may be retired.

Currently structured as single sentences starting with R-XXXXX (allows for searching, extraction from narrative text). 

Numbering semantics: Yes/No 

no semantics: implies a random number/ string as an identifier.  Requires a tool of some sort to generate these random numbers. Requires some process for contributors/ editors to aquire and use these random numbers

yes semantics: e.g. sequential, chapter sequential, sequential with spaces etc. 

How many digits:

Currently ~300 numbered requirements in the seed documents, but  some seed material did not have requirements explicitly numbered. 

suggest 5 digits allows plently of room for expansion/ revision / retirement.  

Number of digits could be changed in a future release if needed. 

Application for Amsterdam. 

M4 is originally 9/14, now 9/28, so tool chain changes at this stage might be problematic.

could  manually apply numbers  for this release and consider other mechanisms in future?

could investigate sequential numbering mechanisms in Sphinx etc. 

  • No labels


  1. Requirements may be tied to certain ONAP features/systems and may be have an attribute to indicate that.

    Attribute to indicate the relevant audience of VNF developer.

    Attributes that are being enforced via certification process

  2. If the proposed normative format is in the form of a user story "As a <user> = who I want to <be able to do ABC> = what So that <XYZ can be done> = why", I am not in favor of that format.

    The format of "e.g.The VNF  MUST xxxx. " seems a reasonable approach to start unless LF has an existing standard format. We should standardize the subject.

    <The VNF | The VNFC | The VNF supplier |> <MUST | MUST NOT | SHOULD | SHOULD NOT | MAY> xxxxxxxxx.

    1. The current requirements use the following:

      • The VNF
      • The VNFC
      • The VNF Provider
      • The VNF Heat
      • The VNF Package
  3. We should separate the background/rationale/explanation for the requirement from the actual requirement. That could be an another attribute or it could be part of the normative format.

  4. Hi Herb.

     Steven has suggested that the two proposed requirements in VNFRQTS-207 to follow conditional requirement format :  The VNF MUST|SHOULD|MAY ...If <condition> " rather than  If <condition> the VNF MUST|SHOULD|MAY ...". 

    Which should we use?

    1. John - either format is ok. We have a ticket that allows the format of "If <condition> the VNF MUST|SHOULD|MAY .... " so that would be allowed. The existing requirements are in the format of The VNF ... MUST|SHOULD .... if ....