CPS-1992: NCMP to Support new ProvMnS 3GPP sync single FDN request
- 1 References
- 2 Assumptions
- 3 Issues & Decisions
- 4 Requirements
- 4.1 Functional
- 4.2 Error Scenarios
- 4.3 Characteristics
- 4.4 Out-of-scope
- 5 Abbreviations
- 6 Analysis on NCMP existing endpoints and proposed 3GPP endpoints
- 7 3GPP Supported Endpoints/Operations
- 8 NCMP Supported Endpoints/Operations
- 9 Mapping of 3GPP API and NCMP API
- 10 Solution
References
ETSI TS 128 532 V18.2.0 Main Definition
Assumptions
Assumption | Notes | Sign-off | |
|---|---|---|---|
| 1 | API as defined in and already standardised see link TS28532_ProvMnS.yaml · REL-18 · All Groups / 5G APIs · GitLab | Approved version of document https://www.3gpp.org/ftp/Specs/archive/28_series/28.532/28532-i60.zip | Feb 18, 2025 @Csaba Kocsis |
| 2 | Extending the current 3PP API is out of scope for this epic | As agreed. Go with the current 3GPP standard as of Feb 18, 2025 | Feb 18, 2025 @Csaba Kocsis |
| 3 | FDN is DN | Is fully distinguished name same as distinguished name, TBD @Csaba Kocsis
DN is usually separated into local DN (managed element) and DN prefix (sub-network) both together is FDN | Sep 5, 2025 @Csaba Kocsis |
| 4 | Do we have to do anything about the callbacks that is specified in the ProvMns openapi spec file. | Out of scope | Feb 20, 2025 @Csaba Kocsis |
| 5 | Use restful solution see:https://www.etsi.org/deliver/etsi_ts/128500_128599/128532/18.05.00_60/ts_128532v180500p.pdf | See section 12.1.1 RESTful HTTP-based solution set | AgreedMar 25, 2025 @Csaba Kocsis |
| 6 | All registered alternate ids (FDNs) start with a '/' |
| @Csaba Kocsis |
Issues & Decisions
Issue | Notes | Decision | |
|---|---|---|---|
| 1 | Question: can this interface be delivered as a separate OpenAPI definition? | Kieran Mccarthy A asked if it could be developed separately from NCMP OpenApi definition files | Feb 18, 2025
@Csaba Kocsis Nov 25, 2025 @Toine Siebelink No longer relevant as we import 3GPP definition |
| 2 | When delivered, this should also support PolicyExecution (coordination management) for all write operations | @Csaba Kocsis | |
| 3 | Support DataProducerId changes during update for the /v1/ch and that too for the existing endpoint. | supported from blank( not defined) to some value → similar to alternate id concept. | Feb 20, 2025 @Csaba Kocsis |
| 4 | NCMP to update the existing endpoints | Analysis on existing and 3gpp endpoints below. | Mar 25, 2025 @Csaba Kocsis New 3GPP endpoints |
| 5 | Do we support all the Content Type that is mentioned in the openapi specs file ? Eg : application/merge-patch+json , application/3gpp-merge-patch+json , application/json-patch+json , application/3gpp-json-patch+json | AP @Csaba Kocsis what all content type will be supported in the new 3GPP endpoints. May 20, 2025 can the content Types only be limited to @Kolawole Adebisi-Adeolokun | @Csaba Kocsis API cannot be changed (legally) so cannot add anything. We will only support
Will return ‘not implemented’ on types we do not (want to) support Nov 13, 2025 @csaba Eder questions if get should support application/vnd.3gpp.object-tree-hierarchical+json Nov 24, 2025 @Csaba Kocsis application/vnd.3gpp.object-tree-hierarchical+json should be supported on GET |
| 6 | Do we have to sync the responses for the ProvMnS supported endpoints as mentioned in the 3gpp doc TS 128 532 ? | Documentation clear states all interaction should be synchronous see section 11.1.1.1.1: “the ‘createMOI’ response shall be returned immediately after the creation of the object.“ | @Csaba Kocsis DMIs should return immediately no waiting on asynchronous processes |
| 7 | Comma or slash separated FDNs | % encoding does not work with / which are used in the slash FDNs. | @Csaba Kocsis all FDN passed to the interface are using Slash-separator |
| 8 | Does NCMP need to prepend the | Are we really compliant with ProvMnS if we insert this on the southbound interface | Aug 11, 2025 @Csaba Kocsis No, is not required |
| 9 |
| If used we would need a new server instance for each FDN | @Csaba Kocsis @Toine Siebelink @kieran mccarthy agreed not to use this at all ie leave it blank Aug 11, 2025 @Csaba Kocsis @Toine Siebelink not used anymore. |
| 10 |
| We can include in our URL but it means a new controller for each version but that is acceptable | Aug 11, 2025 @Csaba Kocsis MnsVersion is included |
| 11 | className variable in URL Definition would have to be encoded to be able to use the Open API generated java interface | Proposed URL Structure:
If we decide NOT to encode this we need to implement manually written controllers, losing all the benefits of generated code like URL validation, query parameter extraction validation, stubs, documentation etc. AP: Aug 11, 2025 @Seán Beirne Create Pro/Cons list to consider with stakeholders Options:
| AP @Kolawole Adebisi-Adeolokun get sign off Agreed to go with Option 2 CPS write manual controller to implement ProvMnS as was intended in documentation Nov 25, 2025 @Toine Siebelink OPtions has been implemented as agreed with @Csaba Kocsis |
| 12 | Southbound interface; proprietary interface or ProvMNS (based) interface | ProvMnS cannot be extended to include additional data. /// Prefer similar interfaces. DMI can retrieve and/or cache the required properties itself using existing southbound interfaces. | Jul 17, 2025 @Csaba Kocsis @Kolawole Adebisi-Adeolokun |
| 13 | Agree version number to be used for | Open API spec: v18 @Csaba Kocsis suggests: Oran spec: v1 | Nov 25, 2025 @Seán Beirne agreed v1 in call with @Csaba Kocsis some weeks back |
| 14 | ProvMnS Patch operations can contain 1 or more operations, should one call be made to Policy Executor or one per each operation? | Nov 24, 2025 @Csaba Kocsis Policy Executor can only accept 1 operation at the time. Requirements refinement needed , also for error handling | Nov 26, 2025 @Csaba Kocsis would like CPS_NCMP to invoke PE multiple times, cost 1-2 weeks |
| 15 | PatchOperation.permissionId Field for Policy Executor interface. | Example from @Csaba Kocsis | Nov 26, 2025 @Csaba Kocsis Optional parameter, not needed here (same as in existing impl) |
| 16 | High Cardinality in metrics for testing | unique FDNs are creating high number of metrics | Nov 26, 2025 @csaba Eder Need to improve Prometheus Logging of outgoing Request. Csabe to create a Jira under the same Epic CPS-1992 for this. |
| 17 | 409 Conflict does NOT seem to be supported according to ETSI Spec | See https://www.etsi.org/deliver/etsi_ts/132100_132199/132158/18.02.00_60/ts_132158v180200p.pdf Table 6.6.2-1 | Jan 7, 2026 @Csaba Kocsis CR Pending: http://portal.3gpp.org/ngppapp/DownloadTDoc.aspx?contributionUid=SP-251403 Wil continue to use 409 |
| 18 | Double // in FDN to DMI | Do FDN in ProvMnS requests start with / or not? According to examples in ETSI Spec they should NOT! (we can support the additional slash it seems ignored by controler anyway) | Jan 6, 2026 @Toine Siebelink |
| 19 | Does patch (create, update) ops always contain | Possibly not relevant, depending decision on issue ion on issue #21 | No longer relevant as per decision #21 |
| 20 |
| see https://lf-onap.atlassian.net/browse/CPS-3102 for details | Jan 7, 2026 @Csaba Kocsis the default error response types is defined for all operations including the patch in the openapi spec, so it is ok to use that in case the error is not operation specific to confirm. |
| 21 | Unnecessary (double) Validation in NCMP: | Proposal: remove the specific validation for # or not # from NCMP as introduced as part of https://lf-onap.atlassian.net/browse/CPS-3099 | @Róbert Nagy Jan 6, 2026 No longer required // to do validation later. |
| 22 | Pass on (#)/attributes to PolicyExecutor as part of the resourceIdentifier | Currently CPS-NCMP send the complete path to PolicyExecutor. | Jan 8, 2026 @Csaba Kocsis attributes extension is NOT send to Policy, just the FDN of the PARENT of the object we are manipulating. See also #23 and #24 |
| 23 | Should “resourceIdentifier” (as send to PolicyExecutor) be the complete FDN or be a relative path after the AlternateId of the CM Handle | extract | Jan 13, 2026 @Csaba Kocsis This is different for remove operation issue #24 |
| 24 | resourceIdentifier for remove (delete) | For remove there is no changeRequest with class and ID. So Alternate ID (targetIdentifier) PLUS ResourceIdentifier point to the MO being removed. | Jan 14, 2026 @Csaba Kocsis |
| 25 | Authorization for PolicExececutor | Simply forward header from ProvMnS Request (just like to DMI) | Jan 14, 2026 @csaba Eder |
| 26 | (validation) of Preceding slash in Patch.path variables. | Although not explicitly documented all (59) examples in the ETSI specification do start with a slash (#/attributes). | Jan 15, 2026 @Csaba Kocsis @Toine Siebelink although it is a bug on the downstream service it would be good to add validation earlier in the process. But it was agreed that it is not the role for CPS-NCMp to do this as agreed before as the general strategy that NCMP only does the minimum required as needed for functioning REST interface and forwarding the detail to Policy and correct DMI adapter. |
| 27 | support of someFdn/#/attributes (slash in fronr of #) instead of someFdn#/attributes |
| Jan 29, 2026 @Csaba Kocsis not needed to be supported (no specific validation either) |
| 28 | Modifying of Root Mo (ManagedElement) |
| @Csaba Kocsis manipulating of root MOs is no supported. Can be handled in many different ways. quick solution is for CPS-NCMP to return an error Jan 29, 2026 Agreed option #1: CPS can do the quickest fix. Return BAD_REQUEST with type(?) VALIDATION_ERROR |
Requirements
Functional
Interface | Requirement | Additional Information | Sign Off | |
|---|---|---|---|---|
| 1 | CPS-E-10 | Support the ProvMnS endpoint towards the Northbound API. | Notification support is out of scope. | Feb 20, 2025 @Csaba Kocsis |
| 2 | CPS-E-10 | DMI plugins shall be able to indicate that they support 3GPP API. | DataproducerId to be introduced during the discovery process. When this is not blank it means ProvMnS Interface is supported | Feb 20, 2025 @Csaba Kocsis |
| 3 | CPS-E-10 | By default NCMP shall support DMI API on its southbound interface towards the DMI plugins for CH and 3GPP Northbound APIs | @Toine Siebelink | Jul 17, 2025 @kieran mccarthy @Csaba Kocsis Agreed to 3GPP Standard for SBI See |
| 4 | CPS-E-10 | ProvMnS interface to support Coordination Management/Policy Execution for all write operations (just like the Legacy write interface OoS) | Although changes for the Policy Executor Interface are pending (based on 3GPP standard release 19) this will NOT be in the scope of this epic and CPS can use the existing interface as is but does need to do transformation of the incoming resource references | Jul 17, 2025
|
| 5 | CPS-E-10 | ProvMnS interface to support Coordination Management/Policy Execution for PATCH operation by invoking PE for each individual write operation | One ‘Deny’ overrules. Whole operation cancelled. | Nov 26, 2025 @Csaba Kocsis |
| 6 | TBD | DMI will need to retrieve the private (dmi) properties. |
| @Toine Siebelink @Csaba Kocsis Jul 17, 2025 A New Epic will created to handle these aspect Aug 15, 2025 https://lf-onap.atlassian.net/browse/CPS-2907 |
| 7 | CPS-E-10 |