Introduction

The O-RAN Alliance and the O-RAN-Software Community specifying and developing and implementing a couple of management and control interfaces which are aligned with 3GPP specifications. In accordance with the O-RAN Operation and Maintenance Architecture v1 and Interface Specification v1,  for the O1 Interface, a data model for the protocol NetConf is required. 3

In June 2019, 3GPP published the Network Resouce Model (TS 28.541 version 16.1.0). This model includes yang specification, which could/should be used by O-RAN Alliance and O-RAN-SC.

The yang modules were separated from the word document to be analyzed further ( OAM-9 - Getting issue details... STATUS ).

Please consider this page as preparation for feedback, liaison, contribution to 3GPP.

Formal

Yang validation

Each published yang should be validated using the tool pyang. The community ususally takes care, that the yang modules also valid to be used by ONOS yang tools, OpenDaylight yang tools, Netopeer and other NetConf client and server implementations. 

The minium requirement would be that pyang does not report errors and warnings when using the "--strict" option. However, it would be preferred that pyang also does not report errors and warnings, when using the "--lint" option.

pyang --strict *.yang (  minimum: no errors, no warnings)
pyang --lint   *.yang (preferred: no errors, no warnings)


Providing yang modules

Public access to yang modules would be very benifical, avoiding error prune and time consuming extraction from word documents. 

... are good candidates to publish agreed and reviewed 3GPP yang modules.

License statement

Please add the 3GPP License statement to the yang modul description statement. 

TS 28.541 v16.1.0 exampleProposal
module ngran {

    namespace "urn:3gpp:tsg:sa5:nrm:ngran";
    prefix "ngran";
    
    import ManagedElement { prefix me; revision-date "2018-07-31"; }
    
    include ngran-nRCellCU;
    include ngran-nRCellDU;
    include ngran-nRSectorCarrier;
    include ngran-gNBDUFunction;
    include ngran-gNBCUCPFunction;
    include ngran-gNBCUUPFunction;
    	
    organization "3gpp SA5";
    description "Main YANG module for the NRM NG-RAN Defined gNB as ManagedElement
        (subclass of ME) for overaching all other functions supported
        ngran Define constitued MFs and EPs as container in submodule";
module ngran {

    namespace "urn:3gpp:tsg:sa5:nrm:ngran";
    prefix "ngran";
    
    import ManagedElement { prefix me; revision-date "2018-07-31"; }
    
    include ngran-nRCellCU;
    include ngran-nRCellDU;
    include ngran-nRSectorCarrier;
    include ngran-gNBDUFunction;
    include ngran-gNBCUCPFunction;
    include ngran-gNBCUUPFunction;
    	
    organization "3gpp SA5";
    description 
     "Main YANG module for the NRM NG-RAN Defined gNB as ManagedElement
      (subclass of ME) for overaching all other functions supported
      ngran Define constitued MFs and EPs as container in submodule

     Copyright 2019 3GPP. All rights reserved.

     Licensed under the Apache License, Version 2.0 (the 'License');
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an 'AS IS' BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.";


YANG mechanics

Revision in import statements

The "revision date" in yang import statements should be avoided to gain more flexibility, when the imported yang module is update. It avoids updates of the importing yang model.

TS 28.541 v16.1.0 exampleProposal
submodule ngc-UDRFunction {
    
	belongs-to ngc { prefix ngc; }
    
	import EP_RP { prefix ep-rp; revision-date "2018-07-31"; }
    import ManagedFunction { prefix mf; revision-date "2018-07-31"; }
    import nrm-types-3gpp { prefix nrm-type; revision-date "2018-07-31"; }
    import ietf-inet-types { prefix inet; revision-date "2010-09-24"; }  
submodule ngc-UDRFunction {
    
	belongs-to ngc { prefix ngc; }
    
	import EP_RP { prefix ep-rp }
    import ManagedFunction { prefix mf }
    import nrm-types-3gpp { prefix nrm-type }
    import ietf-inet-types { prefix inet }  

Yang submodules vs. Yang augment statement.

The usage of submodules and include statements create a monolithic interface description block - from developer point of view.

To address the expected high dynamic in 5G features and its OAM modules, Each submodule should be changed to a full module augmenting its parent module. 

YANG content

Vendor specific container

The yang module "Vendor specific data container" is not needed, because each vendor (and operator) can augment each yang module to address vendor specific features. This yang feature makes such vendor specific data container model obsolete. Please note that other schemas may still require such model.  

TODOs

  • TS 28.541 specifies the acutal plugged equipment → search for required/expected/planned equipment.
  • Check where the topology is defined beween CU, DU and RU.


  • No labels

5 Comments

  1. Hi Martin Skorupski,

    One query regarding " YANG Content  - Vendor Specific Content"

    "The yang module "Vendor specific data container" is not needed, because each vendor (and operator) can augment each yang module to address vendor specific features. This yang feature makes such vendor specific data container model obsolete. Please note that other schema's may still require such model.  "

    1. If each vendor is entitled to augment the YANG data as per their need to address Vendor Specific data containers. In future, in ORAN collaboration labs, different vendor O-DU, O-RU, O-CU testing will become different. Since as per each vendor component, the ORAN collaboration lab EMS/NMS need to know the vendor specific YANG model, rather than standard YANG model with provision to plug and play Vendor Specific Data as 3GPP suggested.

    Please share your view on those lab testing and modifying the EMS/NMS generic OAM model as per each vendor need - under the ORAN forum, was this factor accounted? while proposing to remove the "Vendor Specific Data Containers"?


    Thanks

    Balaji Shankaran

    Radisys

    1. In the meantime, there were some discussions around this topic.

      The discussions go in the following direction.

      a) 3GPP is going to update the yang specifications

      b) O-RAN Alliance will use and reference the 3GPP yang modules and will augment the 3GPP yang modules. This way the vendor-specific information will be part of the tests.

      Note: There is nobody blocking operators or vendors to augment 3GPP yangs for O-RAN(-SC) yangs. Such augmentations must be out-of-scope by O-RAN-SC testings.   


  2. Hi Martin Skorupskiand all,

    I did not follow the recent discussions in O-RAN WG1 IM and I might be not fully in synch.

    In my view augmentation of 3GPP model by O-RAN and Vendor Specific containers have different purposes and should be both supported.

    O-RAN model (extending/harmonizing 3GPP model) will be a common reference for the community. Hence, VS extensions, when allowed, should be clearly separated by the common reference model.


  3. Hi Martin, as a YANG doctor (in IETF), I find that the models defined are a good start. However, they need a lot of work for them to be usable.

    My first question before I attempt to make any changes is, how much leeway do we have in 

    a) making the changes

    b) submitting those changes back to 3GPP for approval

    c) and/or creating a separate repository with the changes.

    I think you have captured quite a few points that are worth commenting on.

    While pyang is a good tool to begin with, it does not do a full validation of the model, e.g. XPath validation. I use a combination of tools to compile the YANG models that I have published. These include yanglint, confdc, yumapro to name a few.

    I absolutely agree that https://github.com/YangModels/yang is the right place to publish these models, and I can make it happen once the above questions are answered. Note, the models do not follow many of the guidelines suggested in RFC 8407.

    Same is true for revision statements in importing models. Unless there is a specific reason to import a particular version of the model, it is limiting to specify the revision in the import statement. We should get rid of them.

    You bring up an interesting perspective of submodules vs augment statement. BTW, there is a interesting discussion on use of submodules in the NETMOD WG in IETF. The consensus seems to be to move away from use of submodules. If we do decide to rewrite them, I would suggest that we make them groupings.

    On the question of vendor specific containers, I have mixed feelings. On one hand they provide anchor points and provide hints to where some of the vendor augmentations need to happen. On the other hand if vendors choose not to implement those augmentations, you are left with lot of crud!

    Just my 2 cents.