Commit afe9b711 authored by lengyelb's avatar lengyelb
Browse files

added mbsmffunction

parent da66e4a9
Loading
Loading
Loading
Loading
Loading
+277 −0
Original line number Diff line number Diff line
module _3gpp-5gc-nrm-mbsmffunction {
  yang-version 1.1;
  namespace urn:3gpp:sa5:_3gpp-5gc-nrm-mbsmffunction;
  prefix mbsmf3gpp;

  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-5gc-nrm-neffunction { prefix nef3gpp; }
  import ietf-inet-types { prefix inet; }

  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "MNNPFFunction derived from basic ManagedFunction.
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-04-13 { reference CR-1694 ; }  // common for rel-19,20
  
  grouping TmgiRangeGrp {
    description "This data type represents range of TMGIs. 
      (See clause 6.1.6.2.86 TS 29.510).";
    
    leaf mbsServiceIdStart {
      type string {
        pattern "[A-Fa-f0-9]{6}";
      }
      mandatory true;
      description "Represents the first MBS Service ID value identifying the 
        start of a TMGI range.
        The value shall be coded as defined for the mbsServiceId attribute of 
        the Tmgi data type defined in 3GPP TS 29.571";
    }
    
    leaf mbsServiceIdEnd {
      type string {
        pattern "[A-Fa-f0-9]{6}";
      }
      mandatory true;
      description "Represents the last MBS Service ID value identifying the 
        end of a TMGI range.
        The value shall be coded as defined for the mbsServiceId attribute of 
        the Tmgi data type defined in 3GPP TS 29.571";
    }

    list pLMNId {
      description "The PLMN identifier.";
      key "mcc mnc";
      min-elements 1;
      max-elements 1;
      uses types3gpp:PLMNId;
    }

    leaf nId {
      type string;
      mandatory true;
      description "Network Identity; Shall be present if PlmnIdNid identifies 
        an SNPN (see clauses 5.30.2.3, 5.30.2.9, 6.3.4, and 6.3.8 in 
        3GPP TS 23.501)";
    }
  }

  grouping mbsSessionIdGrp {
    description "The MBS session ID is used to identify a Multicast/Broadcast 
      MBS Session by the 5G system on external interface towards AF and between 
      AF and UE, and towards the UE.";
    reference "3GPP TS 23.247 clause 6.5.1";
    
    choice idType {
      mandatory true;
      leaf mbsServiceId {
        description "MBS Service ID - Temporary Mobile Group Identity";
        type string {
          pattern "[A-Fa-f0-9]{6}";
        }
      }
      case Ssm {
        leaf sourceIpAddr {
          type inet:ipv4-address;
          mandatory true;
          description "sourceIpAddr";
        }
        leaf destIpAddr {
          type inet:ipv4-address;
          mandatory true;
          description "destIpAddr";
        }
      }  
    }
    
    leaf nid {
      description "";
      type string {
        pattern "[A-Fa-f0-9]{11}";
      }
    }
  }
  
  grouping MbsServiceAreaGrp {
    description "This data type represents MBS Service Area Information for 
      Location dependent MBS session. (See clause 5.9.4.15 TS 29.571).";
    
    list ncgiList {
      description "Represents a list of NR cell ids with their pertaining TAIs.";
      key idx;
      leaf idx { type uint32 ; }
      uses types5g3gpp:NcgiGrp;    
    }
    
    list taiList {                                 
      description "Tracking Area Identity list";   
      key idx;                                     
      min-elements 1;                              
      leaf idx { type uint32; }                    
      uses types3gpp:TaiGrp;                       
     }                                                
  }
  
  grouping MbsServiceAreaInfoGrp {
    description "This data type represents MBS Service Area Information for 
      Location dependent MBS session. (See clause 5.9.4.15 TS 29.571";
    
    leaf areaSessionId {
      type uint16;
      mandatory true;
      description "This attribute represents Area Session Identifier used for 
        MBS session with location dependent content.";
    }
    
    list mbsServiceArea {
      description "Represents Area Session Identifier used for MBS session 
        with location dependent content.";
      key idx;
      leaf idx { type uint32 ; }
      uses MbsServiceAreaGrp;
    }
  }
  
  grouping MbsSessionGrp {
    description "This data type represents MBS Session served by an MB-SMF. 
      (See clause 6.1.6.2.87 TS 29.510).";
      
    list mbsSessionId {
      description "This attribute represents the MBS Session Identifier.";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses mbsSessionIdGrp;
    }

    list mbsAreaSessions {
      description "This attribute represents map of Area Session Id and related 
        MBS Service Area information used for MBS session with location 
        dependent content. The Area Session ID together with the mbsSessionId 
        (TMGI) uniquely identifies the MBS session in a specific MBS service 
        area.
        For an MBS session with location dependent content, one map entry shall 
        be registered for each MBS Service Area served by the MBS session.
        The key of the map shall be the areaSessionId.";
      key idx;
      leaf idx { type uint32 ; }
      uses MbsServiceAreaInfoGrp;
    }
  }
  
  grouping MbSmfInfoGrp {
    description "This data type represents the specific data for the MB-SMF. 
      (See clause 6.1.6.2.85 TS 29.510).";
      
    list sNssaiInfoList {
      description "This attribute represents the list of S-NSSAIs and DNNs 
        supported by the MB-SMF.
        The key of the map shall be a (unique) valid JSON string per clause 7 
        of IETF RFC 8259, with a maximum of 32 characters.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nef3gpp:SnssaiInfoItemGrp;
    }
    
    list tmgiRangeList {
      description "This attribute represents the list of TMGI range(s) 
        supported by the MB-SMF
        The key of the map shall be a (unique) valid JSON string per clause 7 
        of IETF RFC 8259, with a maximum of 32 characters.";
      key idx;
      leaf idx { type uint32 ; }
      uses TmgiRangeGrp;      
    }
    
    list taiList {
      description "This attribute represents the list of TAIs the MB-SMF can 
        serve.
        The absence of this attribute and the taiRangeList attribute indicates 
        that the MB-SMF can be selected for any TAI in the serving network.";
      key idx;
      leaf idx { type uint32; }
      uses types3gpp:TaiGrp;
    }
    
    list taiRangeList {
      description "This attribute represents the range of TAIs the MB-SMF can 
        serve.
        The absence of this attribute and the taiList attribute indicates that 
        the MB-SMF can be selected for any TAI in the serving network.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:TaiRangeGrp;
    }
    
    list mbsSessionList {
      description "This attribute represents the list of MBS sessions currently 
        served by the MB-SMF
        The key of the map shall be a (unique) valid JSON string per clause 7 of 
        IETF RFC 8259, with a maximum of 32 characters.";
      key idx;
      leaf idx { type uint32; }
      uses MbsSessionGrp;
    }
  }
  
  grouping MBSMFFunctionGrp {
    description "Represents the SMFFuntion IOC";
    uses mf3gpp:ManagedFunctionGrp;
    
    list pLMNIdList {
      description "List of PLMN IDs.";
        key "mcc mnc";
        uses types3gpp:PLMNId;
    }

    list managedNFProfile {
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      max-elements 1;
      description "Profile definition of a Managed NF (See TS 23.501)";
      uses mnfp3gpp:ManagedNFProfileGrp;
    }

    list commModelList {
      min-elements 1;
      key "groupId";
      description "Specifies a list of commModel. It can be used by NF and
        NF services to interact with each other in 5G Core network ";
      reference "3GPP TS 23.501";
      uses types5g3gpp:CommModel;
    }
    
    list mbSmfInfo {
      description  "This attribute represents information of an 
        MB-SMF NF Instance";
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses MbSmfInfoGrp;
    }
  }

  augment "/me3gpp:ManagedElement" {
    list MBSMFFunction {
      description "This IOC represents the MB-SMF function defined in TS 23.501 
        and TS 23.247.";
      key id;
      uses top3gpp:Top_Grp;
      container attributes {
        uses MBSMFFunctionGrp;
      }
      uses mf3gpp:ManagedFunctionContainedClasses;
    }
  }
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ module _3gpp-5gc-nrm-mnpffunction {
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-04-13 { reference CR-1694 ; }
  revision 2026-04-13 { reference CR-1694 ; }  // common for rel-19,20

  grouping MnpfInfoGrp {
    description "Represents the data type MnpfInfo.";