Commit 7c0a4dc2 authored by lengyelb's avatar lengyelb
Browse files

Add notificationlog CR0561

parent 47cb85aa
Loading
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ module _3gpp-common-managed-element {
      3GPP TS 28.620 
      Umbrella Information Model (UIM)";
      
  revision 2025-08-13 { reference CR-0561; } 
  revision 2025-04-25 { reference "CR-0532 CR0541" ; } 
  revision 2025-03-25 { reference "CR-0516"; } 
  revision 2024-10-01 { reference "CR-0437,CR-0438" ; } 
@@ -88,6 +89,10 @@ module _3gpp-common-managed-element {
      ManagedElement";
  }

  feature NotificationLogUnderManagedElement {
    description "The NotificationLog shall be contained under ManagedElement";
  }
  
  feature FmUnderManagedElement {
    description "The FmSubtree shall be contained under ManagedElement";
  }
@@ -305,6 +310,10 @@ module _3gpp-common-managed-element {
      if-feature SupportedNotificationsUnderManagedElement;
    }    
    
    uses subscr3gpp:NotificationLogSubtree {
      if-feature NotificationLogUnderManagedElement;
    }

    uses fm3gpp:FmSubtree {
      if-feature FmUnderManagedElement;
    }
+13 −17
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ module _3gpp-common-subnetwork {
      3GPP TS 28.620 
      Umbrella Information Model (UIM)";
  
  revision 2025-08-13 { reference CR-0561; } 
  revision 2025-04-25 { reference "CR-0532 CR0541" ; } 
  revision 2025-03-25 { reference "CR-0516 CR-0527"; } 
  revision 2024-11-19 { reference "Add STM"; } 
@@ -51,23 +52,10 @@ module _3gpp-common-subnetwork {
  revision 2021-01-16 { reference "CR-0120"; }  
  revision 2020-08-06 { reference "CR-0102"; }  
  revision 2020-06-08 { reference "CR-0092"; }  
  revision 2020-05-08 {
    reference "S5-203316";
  }

    
  revision 2020-03-11 { 
    description "Added KPIs and corrections";
    reference "S5-201365, S5-201581, SP-200229";
  }

  revision 2020-02-24 {
    reference "S5-201365";
  }

  revision 2019-06-17 {
    reference "Initial revision";
  }
  revision 2020-05-08 { reference "S5-203316"; }   
  revision 2020-03-11 { reference "S5-201365, S5-201581, SP-200229"; }
  revision 2020-02-24 { reference "S5-201365"; }
  revision 2019-06-17 { reference "Initial revision"; }

  feature ECMappingRuleUnderSubNetwork {
    description "ECMappingRule shall be contained under SubNetwork.";
@@ -107,6 +95,10 @@ module _3gpp-common-subnetwork {
      SubNetwork";
  }

  feature NotificationLogUnderSubNetwork {
    description "The NotificationLog shall be contained under SubNetwork";
  }
  
  feature FmUnderSubNetwork {
    description "The FmSubtree shall be contained under SubNetwork";
  }
@@ -244,6 +236,10 @@ module _3gpp-common-subnetwork {
      if-feature SupportedNotificationsUnderSubNetwork;
    }

    uses subscr3gpp:NotificationLogSubtree {
      if-feature NotificationLogUnderSubNetwork;
    }

    uses fm3gpp:FmSubtree {
      if-feature FmUnderSubNetwork;
    }
+172 −4
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ module _3gpp-common-subscription-control {
      Solution Set (SS) definitions
      3GPP TS 28.623";
  
  revision 2025-08-13 { reference CR-0561; } 
  revision 2025-05-13 { reference "CR-0548"; } 
  revision 2025-03-24 { reference "CR-0516 0518" ; } 
  revision 2024-05-18 { reference CR-0359; } 
@@ -31,6 +32,169 @@ module _3gpp-common-subscription-control {
  revision 2020-08-26 { reference "CR-0106"; }
  revision 2019-11-29 { reference "S5-197648 S5-197647 S5-197829 S5-197828"; }

  feature NotificationLogUnderNtfSubscriptionControl {
    description "The NotificationLog shall be contained under 
      NtfSubscriptionControl";
  }  
  
  grouping LogRecordGrp {
    description "LogRecord datatype";
    
    leaf logRecordId {
      type string;
      yext3gpp:inVariant;
      description "Identifier of an individual logRecord; unique within a 
        NotificationLog IOC.

        - If the NotificationLog is contained under an NtfSubscriptionControl 
        the value is the same as the sequenceNo.
        - If the NotificationLog is contained under SubNetwork or ManagedElement 
        the value is the sequenceNo followed by a single space and the 
        DN of the NtfSubscriptionControl that created the notification.";
    }
    
    leaf sequenceNo {
      type string;
      yext3gpp:inVariant;
      description "Sequence number from the header of the notification.";
    }
    
    leaf eventTime {
      type yang:date-and-time;
      yext3gpp:inVariant;
      description "eventTime from the header of the notification";
    }
    
    leaf logContent {
      type string;
      yext3gpp:inVariant;
      description "The string representation of a notification as encoded in 
        the HTTP body (excluding the HTTP headers and the optional VES header).";
    }
  }
  
  grouping NotificationLogGrp {
    description "Attributes of NotificationLog IOC.";  
   
    leaf firstEventTime {
      type yang:date-and-time;
      config false;
      yext3gpp:notNotifyable;
      description "eventTime of first notification in the log. 
        The attribute may be missing if and only if there are no notifications 
        in the NotificationLog.";
    }
    
    leaf lastEventTime {
      type yang:date-and-time;
      config false;
      yext3gpp:notNotifyable;
      description "eventTime of latest notification in the log. 
        The attribute may be missing if and only if there are no notifications 
        in the NotificationLog.";
    }
    
    leaf logCurrentSize {
      type uint64;
      config false;
      mandatory true;
      yext3gpp:notNotifyable;
      description "The number of notifications in the NotificationLog.";
    }
    
    leaf logMaxSize {
      type uint64;
      config false;
      description "The maximum possible number of notifications in the 
        NotificationLog, if it is known.";
    }
    
    list logRecords {
      yext3gpp:notNotifyable;
      description "Records of the individual notifications. The records shall 
        be ordered based on eventTime of the record, newest first.";
      config false;
      key logRecordId;
      uses LogRecordGrp;
    }
    
    leaf-list notificationTypes {
      type NotificationTypes;
      description "List of notification types.";
    }
    
    leaf notificationFilter {
      type string;
      description "Filter to be applied to candidate notifications identified 
        by the notificationTypes attribute. Only notifications that pass the 
        filter criteria are logged. All other notifications are discarded.
        The filter can be applied to any field of a notification.
                
        The format of the string shall confrm to a 
        JSON expressions (Jex) 'JexConditionsExpr'";
      reference "3GPP TS 32.161";
    }
  }
  
  grouping NotificationLogSubtree {
    description "Contains the NotificationLog IOC";

    list NotificationLog {
      description "Notification Log. 

      A NotificationLog MOI may be contained under the root ManagedElement or 
      SubNetwork or under an NtfSubscriptionControl MOI.

      If the NotificationLog MOI is contained under a ManagedElement or 
      SubNetwork the log contains all notifications for all  objectInstances 
      under that ManagedElement or SubNetwork. The producer may limit the log 
      to notifications for which at least one subscription is present. As the 
      NotificationLog contains all data from notifications, potentially all 
      NRM data, access control for the logs needs to be strict, to avoid 
      unintentionally disclosing confidential data.

      If the MOI is contained under an NtfSubscriptionControl MOI it contains 
      notifications for that subscription. The producer may limit the number 
      of contained NotificationLog MOIs under an NtfSubscriptionControl MOI to 
      one.

      A NotificationLog may contain a subset of all applicable notifications. 
      If the NotificationLog is contained under the ManagedElement or SubNetwork 
      the attributes notificationTypes and  notificationFilter may be used to 
      select the notifications to be logged. If the MOI is contained under an 
      NtfSubscriptionControl MOI the attributes notificationTypes and 
      notificationFilter in the NotificationLog are not be available for read 
      or write, as the similar attributes in the NtfSubscriptionControl MOI 
      already select the notifications to be logged.

      The notificationTypes value identifies the notification types that are 
      candidates to be logged. If the attribute is absent, notifications of 
      all types are candidates to be logged.   

      The notificationFilter attribute defines a filter that is applied to 
      the set of candidate notifications. The filter is applicable to all 
      parameters of a notification. Only candidate notifications that pass 
      the filter criteria are logged. If the attribute is absent, all candidates 
      notifications shall be logged.  

      Only notifications that were prepared are part of the log. If the producer 
      failed to prepare a subscribed notification it will not be present in 
      the log either.

      The log has a limited size, so old notifications may be removed from the 
      log by the producer.

      The creation of the NotificationLog MOI enables notification logging. 
      Each NotificationLog MOI will result in a separate log being created.";
        
      key id;
      uses top3gpp:Top_Grp;
      container attributes {
        uses NotificationLogGrp;
      }
    }  
  }
  
  grouping ScopeGrp {
    description "This <<dataType>> allows to select data nodes in an object 
      tree whose root is identified by the so called base managed object 
@@ -404,6 +568,10 @@ module _3gpp-common-subscription-control {
          uses HeartbeatControlGrp;
        }
      }
      
      uses NotificationLogSubtree {
        if-feature NotificationLogUnderNtfSubscriptionControl;
      } 
    }
  }