Commit 5a4acab1 authored by cintiarosa's avatar cintiarosa
Browse files

add _3gpp-5gc-nrm-bsffunction.yang to align with stage 2

parent ee18f8ea
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ module _3gpp-5gc-nrm-aanffunction {
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-03-25 { reference "CR-"; }
  revision 2026-04-25 { reference "CR-"; }

  grouping AanfInfoGrp {
    description "This data type represents the Specific
+182 −0
Original line number Diff line number Diff line
module _3gpp-5gc-nrm-bsffunction {
  yang-version 1.1;
  namespace urn:3gpp:sa5:_3gpp-5gc-nrm-bsffunction;
  prefix bsf3gpp;

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

  organization "3gpp SA5";
  contact
    "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "This IOC represents the BSF function in 5GC.
    For more information about the BSF, see TS 23.503.
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS,
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-04-25 { reference "CR-"; }

  grouping BsfInfoGrp {
    description "This data type represents the Specific
      data for the BSF.
      (See clause 6.1.6.2.21 TS 29.510).";

    list ipv4AddressRanges {
      description "List of ranges of IPv4 addresses
        handled by BSF. If not provided, the BSF can
        serve any IPv4 address.";
        //optional
      key "start end";
      uses types3gpp:Ipv4AddressRange;
    }

    leaf-list dnnList {
      description "This attribute represents the list of DNNs handled by the 
      BSF. The DNN shall contain the Network Identifier and it may 
      additionally contain an Operator Identifier. If the Operator Identifier
      is not included, the DNN is supported for all the PLMNs in the plmnList
      of the NF Profile. If not provided, the BSF can serve any DNN.";
        //optional
      type string;
    }

    leaf-list ipDomainList {
      description "List of IPv4 address domains, as
        described in clause 6.2 of 3GPP TS 29.513,
        handled by the BSF. If not provided, the BSF
        can serve any IP domain.";
        //optional
      type string;
    }

    list ipv6PrefixRanges {
      description "List of ranges of IPv6 prefixes
        handled by the BSF. If not provided, the BSF
        can serve any IPv6 prefix.";
        //optional
      key "start end";
      uses types3gpp:Ipv6PrefixRange;
    }

    leaf rxDiamHost {
      description "This attribute represents the Diameter host of the Rx
      interface for the BSF";
      type string;
    }

    leaf rxDiamRealm {
      description "This attribute represents the Diameter realm of the Rx
      interface for the BSF. See TS 29.571 [61]. String contains a Diameter
      Identity (FQDN).";
      type string;
    }

    leaf groupId {
      description "It represents the identity of the BSF
        group that is served by the BSF instance. If not
        provided, the BSF instance does not pertain to
        any BSF group.";
        //optional
      type string;
    }

    list supiRanges {
      description "List of ranges of SUPIs served by
        the BSF instance.";
        //optional
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:SupiRangeGrp;
    }

    list gpsiRanges {
      description "List of ranges of GPSIs served by
        the BSF instance.";
        //optional
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IdentityRangeGrp;
    }
  }

  grouping BSFFunctionGrp {
    description "Represents the BSFFunction IOC.";
    uses mf3gpp:ManagedFunctionGrp;

    list pLMNInfoList {
      description "It defines the PLMN(s) of a Network
        Function.";
      key "mcc mnc sd sst";
      min-elements 1;
      uses types5g3gpp:PLMNInfo;
    }

    leaf sBIFQDN {
      description "The FQDN of the registered NF instance
        in the service-based interface.";
      type inet:domain-name;
    }

    leaf-list cNSIIdList {
      description "NSI ID. NSI ID is an identifier for
        identifying the Core Network part of a Network
        Slice instance when multiple Network Slice
        instances of the same Network Slice are deployed,
        and there is a need to differentiate between them
        in the 5GC";
        reference "see clause 3.1 of TS 23.501 and
        subclause 6.1.6.2.7 of 3GPP TS 29.531.";
        //optional
      type string;
    }

    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 bsfInfo {
      description "This attribute represents information of a BSF NF
      Instance. Multiple bsfInfo may be allowed when BSF provides binding
       service for various combinations of IPv4 addresses and ipDomains";
        //optional
      key idx;
      leaf idx { type uint32; }
      uses BsfInfoGrp;
    }
  }

  augment "/me3gpp:ManagedElement" {
    list BSFFunction {
      description "5G Core BSF Function";
      reference "3GPP TS 28.541";
      key id;
      uses top3gpp:Top_Grp;
      container attributes {
        uses BSFFunctionGrp;
      }
      uses mf3gpp:ManagedFunctionContainedClasses;
    }
  }
}
+2 −31
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ module _3gpp-5gc-nrm-nrffunction {
  import _3gpp-5gc-nrm-lmffunction { prefix lmf3gpp;}
  import _3gpp-5gc-nrm-aiot { prefix aiot3gpp;}
  import _3gpp-5gc-nrm-chffunction { prefix chf3gpp;}
  import _3gpp-5gc-nrm-bsffunction { prefix bsf3gpp;}

  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -43,36 +44,6 @@ module _3gpp-5gc-nrm-nrffunction {
  revision 2019-10-28 { reference S5-193518 ; }
  revision 2019-05-15 { reference "initial revision"; }

  grouping bsfInfo {
    list ipv4AddressRanges {
      description "List of ranges of IPv4 addresses handled by BSF.
        If not provided, the BSF can serve any IPv4 address.";
      key "start end";
      uses types3gpp:Ipv4AddressRange;
    }

    leaf-list dnnList {
      description "List of DNNs handled by the BSF
        If not provided, the BSF can serve any DNN.";
      min-elements 1;
      type string;
    }

    leaf-list ipDomainList {
      description "List of IPv4 address domains, as described in
        subclause 6.2 of 3GPP TS 29.513, handled by the BSF.
        If not provided, the BSF can serve any IP domain.";
      min-elements 1;
      type string;
    }

    list ipv6PrefixRanges {
      description "List of ranges of IPv6 prefixes handled by the BSF.
        If not provided, the BSF can serve any IPv6 prefix.";
      key "start end";
      uses types3gpp:Ipv6PrefixRange;
    }
  }
  grouping pcscfInfo  {
    description "This data type represents the information of a P-CSCF 
      NF Instance.
@@ -357,7 +328,7 @@ module _3gpp-5gc-nrm-nrffunction {
      }

      min-elements 1;
      uses bsfInfo;
      uses bsf3gpp:BsfInfoGrp;
    }

    list servedChfInfo {