This page is related to ONAP JIRA SDNC-1175.

The SOAP interface is case-insensitive, while the NetConf/YANG interface is case-sensitive. 

Example: if and ENUM value is defined in YANG as "disabled" a NetConf-Client or NetConf-Server would not accept values like "DISABLED" or "Disabled".

O-RAN-SC OAM TR069-Adapter acts as NetConf-Server and must apply to the specifications of NetConf/YANG (mainly RFC6241 and RFC7950).

The issue applies to values of an inherited string type, such as 'enum', 'identity' and strings with pattern (e.g. yang:date-and-time).  In order to translate the SOAP case-insensitive values to YANG case-sensitive values a mapping table is required. This mapping table can be created during runtime by the TR069-Adapter based on the YANG modules, which are exposed in the NetConf <hello> message. 

As key of the mapping table the absolute xPath a leaf should be used. For 'enum' and 'identity' values, the SOAP value must be normalized, to be found in the mapping table. It is recommended to use lower-case string only in the mapping table, because yang modules follow usually XML conventions (lower case). The SOAP string value must be normalized before a lookup in the mapping table. 

LicenseApache 2.0O-RAN-SC OAM TR069-Adaptercase-(in)sensitive triggered by- onPowerOn- onReboot NetConf-Server startup Initialization read all YANG modules Example:module: ietf-interfaces+--rw interfaces|  +--rw interface* [name]|     +--rw name                        string|     +--rw description?                string|     +--rw type                        identityref|     +--rw enabled?                    boolean|     +--rw link-up-down-trap-enable?   enumeration {if-mib}?|     +--ro admin-status                enumeration {if-mib}? create all YANG trees Example:/interfaces/interface/type/interfaces/interface/link-up-down-trap-enable extract all xPath of read-write(?) leafs\nwith inherited string type\n(e.g. identity, enum, string with pattern An entry does not need to be added to the HashMap,if the "normalized-value" is equals to the value defined in YANG.TODO: string pattern (e.g. yang:date-and-time) Example:/interfaces/interface/type | other/interfaces/interface/type | regular1822/interfaces/interface/type | ethernetCsmacd/interfaces/interface/type | .../interfaces/interface/link-up-down-trap-enable | enabled/interfaces/interface/link-up-down-trap-enable | disabled create HashMap Running translation of leaf triggerd normalize SOAP value .trim().toLowerCase() xPath and normalize-value is in HashMap?yesno use value of HashMap use normalized-value Thanks to plantUml!2020-05-23 | onap.org ccsdk sdnc

  • No labels

1 Comment

  1. The mapping is a function of the adapter and does not impact netconf server or client.