################################################################################
# Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The OpenAirInterface Software Alliance licenses this file to You under
# the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
#
# 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.
#-------------------------------------------------------------------------------
# For more information about the OpenAirInterface (OAI) Software Alliance:
#      contact@openairinterface.org
################################################################################

SMF =
{
    INSTANCE      = 0;         # 0 is the default
    PID_DIRECTORY = "/var/run";  # /var/run is the default

    INTERFACES :
    {
        N4 :
        {
            # SMF binded interface for N4 communication (UPF)
            INTERFACE_NAME = "virbr0"; # YOUR NETWORK CONFIG HERE
            IPV4_ADDRESS   = "read";                        
         };

        SBI :
        {
            # SMF binded interface for SBI interface (e.g., communication with AMF, UDM)
            INTERFACE_NAME = "virbr0";     # YOUR NETWORK CONFIG HERE
            IPV4_ADDRESS   = "read";
            PORT           = 8889;       # YOUR NETWORK CONFIG HERE (default: 80)
            HTTP2_PORT     = 8890; # YOUR NETWORK CONFIG HERE
            API_VERSION    = "v2";                # YOUR SMF API VERSION CONFIG HERE
         };                 

    };


    # Pool of UE assigned IP addresses
    # Do not make IP pools overlap
    # first IPv4 address X.Y.Z.1 is reserved for GTP network device on UPF
    IP_ADDRESS_POOL :
    {
        IPV4_LIST = (
                      ##{RANGE = "12.1.1.2 - 12.1.1.128";},         # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                      {RANGE = "192.169.0.200 - 192.169.0.253";},         # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                      {RANGE = "12.1.1.129 - 12.1.1.224";},       # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                      {RANGE = "192.169.0.2 - 192.169.255.199";}, # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                      {RANGE = "192.170.0.2 - 192.170.255.253";}, # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                      {RANGE = "192.171.0.2 - 192.171.255.253";}  # STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
                    );
        IPV6_LIST = (
                      {PREFIX = "2001:1:2::/64";},                # STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
                      {PREFIX = "3001:1:2::/64";},                # STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
                      {PREFIX = "4001:1:2::/64";}                 # STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
                    );
    };

    DNN_LIST = (
       # IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDU_SESSION_TYPE choice in {IPv4, IPv6, IPv4v6}
      {DNN_NI = "ims"; PDU_SESSION_TYPE = "IPv4v6"; IPV4_POOL  = 0; IPV6_POOL = 0},
      {DNN_NI = "ctnet"; PDU_SESSION_TYPE = "IPv4v6"; IPV4_POOL = 2; IPV6_POOL = 1},
      {DNN_NI = "apn2"; PDU_SESSION_TYPE = "IPv4"; IPV4_POOL = 1; IPV6_POOL = -1},
      {DNN_NI = "apn3"; PDU_SESSION_TYPE = "IPv4"; IPV4_POOL = 3; IPV6_POOL = -1},
      {DNN_NI = "apn4"; PDU_SESSION_TYPE = "IPv4"; IPV4_POOL = 4; IPV6_POOL = -1}
    );

    # DNS address communicated to UEs
    DEFAULT_DNS_IPV4_ADDRESS     = "114.114.114.114";      # YOUR DNS CONFIG HERE
    DEFAULT_DNS_SEC_IPV4_ADDRESS = "114.114.114.114";  # YOUR DNS CONFIG HERE
    DEFAULT_DNS_IPV6_ADDRESS     = "2001:4860:4860::8888";            # YOUR DNS CONFIG HERE
    DEFAULT_DNS_SEC_IPV6_ADDRESS = "2001:4860:4860::8844";            # YOUR DNS CONFIG HERE
 
    SUPPORT_FEATURES: 
    {
      # STRING, {"yes", "no"}, 
      REGISTER_NRF = "no";  # Set to yes if SMF resgisters to an NRF
      DISCOVER_UPF = "no";  # Set to yes to enable UPF discovery and selection
      FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS = "no"; # Non standard feature, normally should be set to "no", 
                                                        # but you may need to set to yes for UE that do not explicitly request a PDN address through NAS signalling
      USE_LOCAL_SUBSCRIPTION_INFO = "yes";  # Set to yes if SMF uses local subscription information instead of from an UDM
    }  
  
    AMF :
    {
      IPV4_ADDRESS = "192.168.122.1";  # YOUR AMF CONFIG HERE
      PORT         = 8282;            # YOUR AMF CONFIG HERE (default: 80)
      API_VERSION  = "v2";   # YOUR AMF API VERSION FOR SBI CONFIG HERE
    };
    
    UDM :
    {
      IPV4_ADDRESS = "192.168.122.197";  # YOUR UDM CONFIG HERE
      PORT         = 8181;            # YOUR UDM CONFIG HERE (default: 80)
      API_VERSION  = "v2";   # YOUR UDM API VERSION FOR SBI CONFIG HERE
    };    

    NRF :
    {
      IPV4_ADDRESS = "192.168.12.100";  # YOUR NRF CONFIG HERE
      PORT         = 80;            # YOUR NRF CONFIG HERE (default: 80)
      API_VERSION  = "v1";   # YOUR NRF API VERSION FOR SBI CONFIG HERE
    };
        
    UPF_LIST = (
         {IPV4_ADDRESS = "192.168.0.124" ;}  # YOUR UPF CONFIG HERE
    );   
   
    LOCAL_CONFIGURATION :
    {
      USE_LOCAL_CONFIGURATION = "yes";
      SESSION_MANAGEMENT_SUBSCRIPTION_LIST = (
         { NSSAI_SST = 1, NSSAI_SD = "0", DNN = "ims", DEFAULT_SESSION_TYPE = "IPV4V6", DEFAULT_SSC_MODE = 1, 
           QOS_PROFILE_5QI = 5, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT", 
           QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "20Mbps", SESSION_AMBR_DL = "22Mbps"},
         { NSSAI_SST = 1; NSSAI_SD = "0", DNN = "ctnet", DEFAULT_SESSION_TYPE = "IPV4", DEFAULT_SSC_MODE = 1, 
           QOS_PROFILE_5QI = 9, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT", 
           QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "100Mbps", SESSION_AMBR_DL = "110Mbps"}
        );                 
    };   
    
};

