CPS-277 Spike Analyse E2E API GET methods

Jira Ref. CPS-277: Spike: Analyse E2E API GET methodsClosed

Analyze all API GET calls listed on this page: https://lf-onap.atlassian.net/wiki/display/DW/CPS+APIs

(#2 and #21 have already been analyzed and required queries been identified)

  • Ensure use case is clear using given model and data example

  • Find out required (new) query functionality in CPS (several API calls might need the same CPS functionality)to 'find' the required data given the provided parameters (request payload) and model.

  • One (Slicing) API call might require more than one CPS-Core call, indicate in the report if this is the case

    • One API call might need to access more than one model (report!)

  • Distinguish between NCMP (ran network data) and CPS-Core access for NW Slicing specific data.

A/C

  1. Wiki Page with the conclusion for each API call

  2. Add new query functionality if needed to CPS-235: Overview of (early) CPS Query

  3. Review with the full team





No

API endpoint

Model

Description

CPS Path Query Description

Comments and Status

Jira

No

API endpoint

Model

Description

CPS Path Query Description

Comments and Status

Jira

1.

/api​/sdnc-config-db​/v4​/nearrtric-list​/{trackingArea}

cps ran schema model

Get ​complete details associated with a list of NearRT RIC's and corresponding managed elements





xpath : /cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15548"]/

attributes : {"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15548}

Note. nRTAC is not the key!



//NRCellDU[ ? ]

Proposed cps query, 2 step approach (inside CPS Core):

  1. Retrieve all unique NRCellDU list entries based on xpath postfix and attribute key and value. Options:

    1. /cps-ran-schema/NearRTRIC[?]/GNBDUFunction[?]/NRCellDU[@nRTAC=310]
      i.e. Match full xpath with wildcard for each list-ancestor list key
      Hard to implement, more model knowledge needed

    2. //NRCellDU[@nRTAC=310]
      i.e. xpath ends with NRCellDU[?] and attributes contain nRTAC=310
      Already have similar? existing code for this in: FragmentRepository.getByAnchorAndXpathAndLeafAttributes()


  2.  Retrieve unique NearRTRIC ancestors (using bookstore generic examples)

    1. //book[@name="Feersum Endjinn"]/ancestor::*[position()=3]
      Less flexible, less readable

    2. //book[@name="Chapters"]/ancestor::bookstore 
      //NRCellDU[@nRTAC=310]/ancestor::NearRTRIC
      The preferred option, enough information an unambiguous enough to correctly resolve the query for this API call



<Ahila> Please note the below:

  1. Fetch the List of Cells using API #2

  2. Fetch the parents and grandparents pertaining to those cells

For team review

CPS-305: Extends "ends-with" cpsPath query to get ancestor by schema node identifier Closed

2.

/api/sdnc-config-db/v4/cell-list/{trackingArea}

cps ran schema model

Get a list of cells that correspond to a specific tracking area



Done



9.

/api/sdnc-config-db/v4/du-list/{sNSSAI}

cps ran schema model

Fetch the DU functions for sNSSAI



Path - cps-ran-schema/NearRTRIC/GNBDUFunction/NRCellDU/attributes/pLMNInfoList/sNSSAIList/sNssai

Query - get ancestor GNBDUFunctionbased on the sNSSAI. 

//sNSSAIList[@sNssai=1]/ancestor::GNBDUFunction

NOTE - sNssai is the key

For team review

Possible same solution as #1.



10.

/api/sdnc-config-db/v4/du-cell-list/{sNSSAI}

cps ran schema model

Fetch DU Cells for sNSSAI



Path - cps-ran-schema/NearRTRIC/GNBDUFunction/NRCellDU/attributes/pLMNInfoList/sNSSAIList/sNssai

Query - get ancestor NRCellDU based on the sNSSAI.

//sNSSAIList[@sNssai=1]/ancestor::NRCellDU

NOTE - sNssai is the key

For team review

Possible same solution as #1.



11.

/api/sdnc-config-db/v4/profile-config/{sNSSAI}



Fetch slice profile configuration for an sNSSAI

Not Needed

Ignore this API



12.

/api/sdnc-config-db/v4/slice-config/{sNSSAI}

cps ran schema model

Fetch NearRTRIC configuration for a sNSSAI





Path - cps-ran-schema/NearRTRIC[ ? ]/attributes/pLMNInfoList[ ? ]/sNSSAIList/sNssai

Query - Get the sibling configData of sNSSAI from the sNSSAIList.

//sNSSAIList[@sNssai=1]/ (include children)

This will use query 3 CPS-235: Overview of (early) CPS Query

NOTE - sNssai is the key

For team review

CPS-309: Extends ends-with cps path query to allow for non-key attributesClosed

13.

/api/sdnc-config-db/v4/subscriber-details/{sNSSAI}



Fetch subscriber details



Ignore this API



19.

api/sdnc-config-db/v4/nearrtric/{ranNFNSSIId}

cps ran schema model

Fetches the NearRTRICs for the RANNFNSSI



Uses cps ran schema model

Query - We need a query that will get the immediate parent (NearRTRICs) based on attribute values from the list of ranNFNSSIIdList (child).

//ranNFNSSIIdList[@RANNFNSSI =1]/ancestor::NearRTRICs

NOTE Model has changed, ranNFNSSIIdList representation now is a leaf-list, thus new type of query is needed 'leaf-list contains a given value'
Here are 2 possible options:

  1. //attributes/ranNFNSSIIdList/element[normalize-space(text())= "ac8ca1a9-e1ec-4480-8720-c74e92566885"]/ancestor::NearRTRIC

  2. //attributes/ranNFNSSIIdList/element[text()="ac8ca1a9-e1ec-4480-8720-c74e92566885"]/ancestor::NearRTRIC



For team review

Possible same solution as #1.

CPS-452: Support Query by leaf-list contains a value matchClosed

20.

/api/sdnc-config-db/v4/plmn/{sliceProfileId}

Uses cps ran inventory model

Returns PLMN id for the sliceProfile



Uses cps ran inventory model

Query - We need the following query; based on the sliceProfileId key we will get the sibling that is a pLMIDList.
//sliceProfilesList[@sliceProfileId=1] include descendants (pLMIDList is descendant)

For team review



21.

/api/sdnc-config-db/v4/ta-list/{mcc}/{mnc}/{coverageArea}

/api/sdnc-config-db/v4/ta-list/{PLMNId}/{coverageArea}



Returns List of a tracking area (coverageAreaTAList) of the specified coverage area



Done







Question 

Comment

Question 

Comment

1

API 9 & 10:

There are multiple placeholders for it in the same ancestor of DU, RTRIC, CUUP and CUCP NFs.



For DU-list we have identified:

cps-ran-schema/GNBDUFunction/attributes/RRMPolicyRatio/attributes/sNSSAI

For the DU list, we can also use the sNSSAI from cell-list which comes under DU.



For cell-list we have identified:

cps-ran-schema/NRCellDU/attributes/pLMNInfoList/sNSSAIList/sNSSAI
cps-ran-schema/NRCellDU/attributes/RRMPolicyRatio/attributes/rRMPolicyMemberList/sNSSAI

Would you please guide us as to what would be the right attributes to be considered in the search for these GET APIs?

From: ahila.pandaram@wipro.com <ahila.pandaram@wipro.com>


As per the current SDN-R implementation, sNSSAI is configured in NRCellDU, NRCellCU & gNBCUUP. NearRTRIC is configured only in closed loop scenarios.



So please make use of this for the APIs (9) & (10). cps-ran-schema/GNBDUFunction/NRCellDU/attributes/pLMNInfoList/sNSSAIList/sNssai





2

API 12:

We did not identify the slice config attribute for API#12 to be mapped in the Network Slicing.

Kindly provide us with the right model and data.

From: ahila.pandaram@wipro.com <ahila.pandaram@wipro.com>


API (12) can make use of this: cps-ran-schema/NearRTRIC/attributes/pLMNInfoList/sNSSAIList/sNssai

3



The questions are as follows

  1. When inserting a value that already exists into a list do we reject it or replace it without warning? - <Ahila> It can be rejected.

  2. For API number 4, 5 and 6, when this API is called does it create a new entry or does it update an existing entry? <Ahila> - Create a new entry, if it does not exists. Update, if it already exists.

  3. Could you confirm the exact list you are referring to for API number 7? <Ahila> - The comment was updated by Toine. He is referring to the list below. The expected behaviour here is that update to the parent and the child list.



+--rw rRMPolicyMemberList* [idx]

        |        |  +--rw idx       uint32

        |        |  +--rw mcc       Mcc

        |        |  +--rw mnc       Mnc

        |        |  +--rw sNSSAI?   SNssai