Commit de521826 authored by Mirko Cano Soveri's avatar Mirko Cano Soveri
Browse files

Merge branch 'Integration_Rel17_SA5_150_YANG' into 'Rel-17'

R17 YANG updates after SA#101 and SA5#150

See merge request !746
parents 30346e10 c7f61e21
Loading
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@ module _3gpp-common-mnsregistry {
    Class (IOC) that is part of the Generic Network Resource Model (NRM).";
  reference "3GPP TS 28.623 Generic Network Resource Model (NRM)";

  revision 2023-05-09 { reference "S5-216090"; }
  revision 2023-09-09 { reference CR0242; }
  revision 2023-07-25 { reference CR00252; }
  revision 2021-11-23 { reference "S5-216090"; }
  revision 2021-10-18 { reference "S5-215263"; }
  revision 2021-08-29 { reference "Initial revision, S5-214388"; }
@@ -70,6 +71,9 @@ module _3gpp-common-mnsregistry {
          and provides the data required to support its discovery.
          It is name-contained by MnsRegistry.

          This specification does not specify how 'MnsInfo' objects are 
          created and maintained.
          
          This information is used by the consumer to discover the producers
          of specific Management Services and to derive the addresses of the
          Management Service.
@@ -85,10 +89,12 @@ module _3gpp-common-mnsregistry {
          defined as the set of managed object instances that can be accessed
          using the Management Service.";

        uses top3gpp:Top_Grp;
        key id;
        uses top3gpp:Top_Grp;
        container attributes {
          uses MnsInfoGrp;
        }
      }
    }
  }
}
 No newline at end of file
+5 −5
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ module _3gpp-common-subscription-control {
      Solution Set (SS) definitions
      3GPP TS 28.623";
  
  revision 2023-08-11 { reference "CR-0259"; }
  revision 2022-10-31 { reference CR-0195;   }
  revision 2021-01-16 { reference "CR-0120"; }  
  revision 2020-08-26 { reference "CR-0106"; }
@@ -172,9 +173,8 @@ module _3gpp-common-subscription-control {
      
      list HeartbeatControl {
        description "MnS consumers (i.e. notification recipients) use heartbeat
          notifications to monitor the communication channels between them and
          data reporting MnS producers emitting notifications such as
          notifyNewAlarm and notifyFileReady.
          notifications to monitor the communication channels between themselves 
          and MnS producers configured to emit notifications.

          A HeartbeatControl instance allows controlling the emission of
          heartbeat notifications by MnS producers. The recipients of heartbeat
+8 −7
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ module _3gpp-common-trace {
      Integration Reference Point (IRP);
      Information Service (IS)";

  revision 2023-07-25 { reference CR00252; }
  revision 2023-02-17 { reference "CR-0232"; }
  revision 2023-02-15 { reference "CR-0236"; }
  revision 2022-04-27 { reference "CR-0159"; }
@@ -379,7 +380,7 @@ module _3gpp-common-trace {
    }
    }

    leaf-list listOfNeTypes {
    leaf-list listOfNETypes {
      type enumeration {
        enum MSC_SERVER;
        enum SGSN;
@@ -404,19 +405,19 @@ module _3gpp-common-trace {
        allowed values";
    }

    leaf PLMNTarget {
      type string;
      mandatory true;
    list pLMNTarget {
      key "mcc mnc";
      description "Specifies which PLMN that the subscriber of the session to
        be recorded uses as selected PLMN. PLMN Target might differ from the
        PLMN specified in the Trace Reference";
      reference "Clause 5.9b of 3GPP TS 32.422";
      
      uses types3gpp:PLMNId;
    }

    leaf streamingTraceConsumerURI {
    leaf traceReportingConsumerUri {
      when '../traceReportingFormat  = "STREAMING"';
      type inet:uri;
      mandatory true;
      description "URI of the Streaming Trace data reporting MnS consumer
        (a.k.a. streaming target).
        This attribute shall be present if file based trace data reporting is
@@ -425,7 +426,7 @@ module _3gpp-common-trace {
      reference "Clause 5.9 of 3GPP TS 32.422";
    }

    leaf traceCollectionEntityAddress {
    leaf traceCollectionEntityIPAddress {
      when '../traceReportingFormat  = "FILE_BASED" or '
        +'../jobType = "LOGGED_MDT_ONLY" or ../jobType = "LOGGED_MBSFN_MDT"';
      type union {
+83 −27
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ module _3gpp-common-yang-types {
    network slicing.";
  reference "3GPP TS 28.623";

  revision 2023-08-09 { reference CR-0265; }
  revision 2023-05-09 { reference CR-0249; }
  revision 2022-11-03 { reference "CR-0193"; }
  revision 2022-10-31 { reference CR-0195;   }
@@ -710,34 +711,89 @@ module _3gpp-common-yang-types {
    }  
  }
  
  typedef DistinguishedName {    // TODO is this equivalent to TS 32.300 ?
  /* DistinguishedName pattern is built up based on the 
    EBNF in 32.300 clause 7.3  EBNF of DN String Representation
  
    leaf DN { type string {   //  Same pattern as LocalDN
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*';      
    } }
  
    leaf fullLocalDN { type string {   // LocalRDN , { RDNSeparator , LocalRDN }    RDNSeparator is a single , no space or \R allowed   Me.mykey=1 allowed
      //  (fullLocalRDN)(,(fullLocalRDN))*
      pattern '(([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?))(,(([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)))*';      
    } }
  
    leaf LocalDN { type string {   // LocalRDN , { RDNSeparator , LocalRDN }    RDNSeparator is a single , no space or \R allowed
      //  LocalRDN(,LocalRDN)*
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*';      
    } }
  
    leaf fullLocalRDN { type string {   // same as fullLocalDNAttributeTypeAndValue
      pattern '([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)';      
    } }
  
    leaf LocalRDN { type string {   // same as LocalDNAttributeTypeAndValue
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?';      
    } }
  
    leaf fullLocalDNAttributeTypeAndValue { type string { // LocalDNAttributeType , AttributeTypeAndValueSeparator , RegularAttributeValue 
      // pattern LocalDNAttributeType=RegularAttributeValue
      pattern '([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)';      
    } }
    
      // limitation: NamesOfClassAndNamingAttributenot supported Me.mykey=1
    leaf LocalDNAttributeTypeAndValue { type string { 
      // ebnf1          LocalDNAttributeType , AttributeTypeAndValueSeparator , RegularAttributeValue
      // ebnf2-limited  NameOfClassWithIdAttribute , AttributeTypeAndValueSeparator , RegularAttributeValue
      // pattern        NameOfClassWithIdAttribute=RegularAttributeValue
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?';      
    } }

    leaf LocalDNAttributeType { type string {   // NameOfClassWithIdAttribute | NamesOfClassAndNamingAttribute  RDNSeparator is a single , no space or \R allowed
      //  NameOfClassWithIdAttribute|NamesOfClassAndNamingAttribute
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*)';      
    } }

    leaf RegularAttributeValue { type string {       // ( AttributeValueChar – SpaceChar ) , [ { AttributeValueChar } , ( AttributeValueChar – SpaceChar ) ]
      pattern '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?' ; 
    } }
    
    leaf NamesOfClassAndNamingAttribute  { type string {  // ClassName , ClassNamingAttributeSeparator , NamingAttributeName
      // pattern: ClassName\.NamingAttributeName
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*' ; 
    } }
  
    leaf restrictiveClassName { type string {     // 
      pattern '[a-zA-Z][a-zA-Z0-9-_]*' ; 
    } }
  
    leaf ClassName { type string {     // CapitalLetterChar , { LocalDNAttributeTypeChar }
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*' ; 
    } }
  
    leaf NamingAttributeName { type string {   // SmallLetterChar , { LocalDNAttributeTypeChar }
      pattern '[a-z][^,=+<>#;\\"\r\n*.]*' ; 
    } }    
    
  */
  typedef DistinguishedName {    
    type string {
      pattern '([a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
        + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,])*'
        + '(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?'
        + '[,\+])*[a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
        + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})'
        + '|[^\\><;"+,])*(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?';  
    }
    description "Represents the international standard for the representation 
      of Distinguished Name (RFC 4512). 
      The format of the DistinguishedName REGEX is:
      {AttributeType = AttributeValue}   

      AttributeType consists of alphanumeric and hyphen (OIDs not allowed). 
      All other characters are restricted.
      The Attribute value cannot contain control characters or the 
        following characters : \\ > < ; \" + , (Comma) and White space
      The Attribute value can contain the following characters if they 
        are excaped : \\ > < ; \" + , (Comma) and White space
      The Attribute value can contain control characters if its an escaped 
        double digit hex number.
        Examples could be 
          UID=nobody@example.com,DC=example,DC=com
            CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US";
    reference  "RFC 4512 Lightweight Directory Access Protocol (LDAP):
                      Directory Information Models";
  } // recheck regexp it doesn't handle posix [:cntrl:]
      pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|'
      + '(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*'
      + '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?'
      + '(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))'
      + '(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*'
      + '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*';      
    }
    description "Represents the 3GPP standard for DistinguishedName. 
      
      Limitations: 
      - RDNSeparator: don't allow SpaceChar or CarriageReturnChar
      - NullDN: Disallow nullDN that is the same as not providing a DN
      - NamesOfClassAndNamingAttribute format not allowed 
        (eg. ManagedElement.mykey=345436)";
    reference  "3GPP TS 32.300";
  } 
 
  typedef QOffsetRange  {
    type int8 { 
+11 −20
Original line number Diff line number Diff line
@@ -4,21 +4,20 @@ module _3gpp-nr-nrm-eutrancellrelation {
  prefix "eutrancellrel3gpp";
    
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import _3gpp-nr-nrm-gnbcucpfunction { prefix gnbcucp3gpp; }
  import _3gpp-nr-nrm-nrcellcu { prefix nrcellcu3gpp; }
  import _3gpp-common-top { prefix top3gpp; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "Defines the YANG mapping of the EUtranCellRelation Information
    Object Class (IOC) that is part of the NR Network Resource Model (NRM).";
  reference "3GPP TS 28.541 5G Network Resource Model (NRM)";

  revision 2023-06-25 { reference CR0932 ; }
  revision 2019-10-28 { reference S5-193518 ; }
  revision 2019-06-17 {
    description "Initial revision";
  }
  revision 2019-06-17 { reference "Initial revision"; }

  typedef ActionAllowed {
    type enumeration {
@@ -38,7 +37,6 @@ module _3gpp-nr-nrm-eutrancellrelation {
  grouping EUtranCellRelationGrp {
    description "Represents the EUtranCellRelation IOC.";
    reference "3GPP TS 28.541, EUtranRelation in 3GPP TS 28.658";
    uses mf3gpp:ManagedFunctionGrp;

    leaf tCI {
      description "Target Cell Identifier. Consists of E-UTRAN Cell Global
@@ -55,7 +53,7 @@ module _3gpp-nr-nrm-eutrancellrelation {
        be removed (deleted). If NO, the subject EUtranCellRelation instance
        shall not be removed (deleted) by any entity but an IRPManager.";
      mandatory true;
      type ActionAllowed;
      type boolean;
    }

    leaf isHOAllowed {
@@ -65,18 +63,9 @@ module _3gpp-nr-nrm-eutrancellrelation {
        cell referenced by this EUtranCellRelation instance. If NO, handover
        shall not be allowed.";
      mandatory true;
      type ActionAllowed;
    }
    leaf isENDCAllowed {
      description "Indicates if EN-DC is allowed or prohibited. If TRUE,
        the target cell is allowed to be used for EN-DC. The target cell is
        referenced by the NRCellRelation that contains this isENDCAllowed.
        If FALSE, EN-DC shall not be allowed.";
      mandatory true;
      type ActionAllowed;
      type boolean;
    }


    leaf isICICInformationSendAllowed {
      description "Indicates if ICIC (Inter Cell Interference Coordination)
        load information message sending is allowed or prohibited. If YES,
@@ -133,6 +122,7 @@ module _3gpp-nr-nrm-eutrancellrelation {
        Balancing Optimization (LBO) function.";
      reference "3GPP TS 36.331";
      config false;
      mandatory true;
      type types3gpp:QOffsetRange;
    }

@@ -144,17 +134,18 @@ module _3gpp-nr-nrm-eutrancellrelation {
    }
  }

  augment /me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/nrcellcu3gpp:NRCellCU {
  augment "/me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/" + 
    "nrcellcu3gpp:NRCellCU" {

    list EUtranCellRelation {
      description "Represents a relation between an NR cell and an E-UTRAN cell.";
      description "Represents a relation between an NR cell
       and an E-UTRAN cell.";
      reference "3GPP TS 28.541";
      key id;
      uses top3gpp:Top_Grp;
      container attributes {    
        uses EUtranCellRelationGrp;
      }
      uses mf3gpp:ManagedFunctionContainedClasses;
    }
  }
}
 No newline at end of file
Loading