################################################################################
# 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
################################################################################

AMF = 
{
  INSTANCE_ID = @INSTANCE@;            # 0 is the default
  PID_DIRECTORY = "@PID_DIRECTORY@";   # /var/run is the default
  
  AMF_NAME = "OAI-AMF";
  
  RELATIVE_CAPACITY = 30;
  # Display statistics about whole system (in seconds)
  STATISTICS_TIMER_INTERVAL = 20;  # YOUR CONFIG HERE
  
  CORE_CONFIGURATION:
  {
    EMERGENCY_SUPPORT = "false";
  };
  
  GUAMI: 
  {
    MCC = "@MCC@"; MNC = "@MNC@"; RegionID = "@REGION_ID@"; AMFSetID = "@AMF_SET_ID@"; AMFPointer = "1" # YOUR GUAMI CONFIG HERE
  }
  
  SERVED_GUAMI_LIST = (
    {MCC = "@SERVED_GUAMI_MCC_0@"; MNC = "@SERVED_GUAMI_MNC_0@"; RegionID = "@SERVED_GUAMI_REGION_ID_0@"; AMFSetID = "@SERVED_GUAMI_AMF_SET_ID_0@"; AMFPointer = "0"}, #48bits <MCC><MNC><RegionID><AMFSetID><AMFPointer>
    {MCC = "@SERVED_GUAMI_MCC_1@"; MNC = "@SERVED_GUAMI_MNC_1@"; RegionID = "@SERVED_GUAMI_REGION_ID_1@"; AMFSetID = "@SERVED_GUAMI_AMF_SET_ID_1@"; AMFPointer = "1"}  #48bits <MCC><MNC><RegionID><AMFSetID><AMFPointer>
  );
    
  PLMN_SUPPORT_LIST = (
  {
    MCC = "@PLMN_SUPPORT_MCC@"; MNC = "@PLMN_SUPPORT_MNC@"; TAC = @PLMN_SUPPORT_TAC@;  # YOUR PLMN CONFIG HERE
    SLICE_SUPPORT_LIST = (
      {SST = "@SST_0@"; SD = "@SD_0@"},  # YOUR NSSAI CONFIG HERE
      {SST = "@SST_1@"; SD = "@SD_1@"}   # YOUR NSSAI CONFIG HERE
     )
  }
  );
  
  INTERFACES:
  {
    # AMF binded interface for N1/N2 interface (NGAP) 
    NGAP_AMF: 
    {
      INTERFACE_NAME = "@AMF_INTERFACE_NAME_FOR_NGAP@";  # YOUR NETWORK CONFIG HERE
      IPV4_ADDRESS   = "read";
      PORT           = 38412;                            # YOUR NETWORK CONFIG HERE
      PPID           = 60;                               # YOUR NETWORK CONFIG HERE
    };  
   
    # AMF binded interface for SBI (N11 (SMF)/N12 (AUSF), etc.)
    N11:
    {
      INTERFACE_NAME = "@AMF_INTERFACE_NAME_FOR_N11@"; # YOUR NETWORK CONFIG HERE
      IPV4_ADDRESS   = "read"; 
      PORT           = 80;                             # YOUR NETWORK CONFIG HERE
      API_VERSION    = "v1";                           # YOUR AMF API VERSION CONFIG HERE
      HTTP2_PORT     = 8080;                           # YOUR NETWORK CONFIG HERE      
      
      SMF_INSTANCES_POOL = (
        {SMF_INSTANCE_ID = @SMF_INSTANCE_ID_0@; IPV4_ADDRESS = "@SMF_IPV4_ADDR_0@"; PORT = "80"; HTTP2_PORT = 8080, VERSION = "@SMF_HTTP_VERSION_0@"; FQDN = "@SMF_FQDN_0@", SELECTED = "true"}, # YOUR SMF CONFIG HERE
        {SMF_INSTANCE_ID = @SMF_INSTANCE_ID_1@; IPV4_ADDRESS = "@SMF_IPV4_ADDR_1@"; PORT = "80"; HTTP2_PORT = 8080, VERSION = "@SMF_HTTP_VERSION_1@"; FQDN = "@SMF_FQDN_1@", SELECTED = "false"} # YOUR SMF CONFIG HERE
      );
    };
     
    NRF :
    {
      IPV4_ADDRESS = "@NRF_IPV4_ADDRESS@";  # YOUR NRF CONFIG HERE
      PORT         = @NRF_PORT@;            # YOUR NRF CONFIG HERE (default: 80)
      API_VERSION  = "@NRF_API_VERSION@";   # YOUR NRF API VERSION FOR SBI CONFIG HERE
      FQDN         = "@NRF_FQDN@"           # YOUR NRF FQDN CONFIG HERE
    };
    
    AUSF :
    {
      IPV4_ADDRESS = "@AUSF_IPV4_ADDRESS@";  # YOUR AUSF CONFIG HERE
      PORT         = @AUSF_PORT@;            # YOUR AUSF CONFIG HERE (default: 80)
      API_VERSION  = "@AUSF_API_VERSION@";   # YOUR AUSF API VERSION FOR SBI CONFIG HERE
      FQDN         = "@AUSF_FQDN@"           # YOUR AUSF FQDN CONFIG HERE
    };

    NSSF :
    {
      IPV4_ADDRESS = "@NSSF_IPV4_ADDRESS@";  # YOUR NSSF CONFIG HERE
      PORT         = @NSSF_PORT@;            # YOUR NSSF CONFIG HERE (default: 80)
      API_VERSION  = "@NSSF_API_VERSION@";   # YOUR NSSF API VERSION FOR SBI CONFIG HERE
      FQDN         = "@NSSF_FQDN@"           # YOUR NSSF FQDN CONFIG HERE
    };
  };  

  SUPPORT_FEATURES: 
  {
     # STRING, {"yes", "no"}, 
     NF_REGISTRATION = "@NF_REGISTRATION@";  # Set to yes if AMF resgisters to an NRF
     NRF_SELECTION   = "@NRF_SELECTION@";    # Set to yes to enable NRF discovery and selection
     SMF_SELECTION   = "@SMF_SELECTION@";    # Set to yes to enable SMF discovery and selection
     EXTERNAL_AUSF   = "@EXTERNAL_AUSF@";    # Set to yes if AMF works with an external AUSF
     EXTERNAL_UDM    = "@EXTERNAL_UDM@";     # Set to yes if AMF works with an external UDM
     USE_FQDN_DNS    = "@USE_FQDN_DNS@";     # Set to yes if AMF relies on a DNS to resolve NRF/SMF/UDM/AUSF's FQDN
     USE_HTTP2       = "no";                 # Set to yes to enable HTTP2 for AMF server
}
  
  AUTHENTICATION:
  {
    ## MySQL mandatory options
    MYSQL_server = "@MYSQL_SERVER@"; # MySQL Server address
    MYSQL_user   = "@MYSQL_USER@";   # Database server login
    MYSQL_pass   = "@MYSQL_PASS@";   # Database server password
    MYSQL_db     = "@MYSQL_DB@";     # Your database name
    
    ## OP
    OPERATOR_key = "@OPERATOR_KEY@"; # OP key matching your database
    RANDOM = "true";
  };
  
  NAS:
  {
    ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST = @INT_ALGO_LIST@;  #Default [ "NIA0" , "NIA1" , "NIA2" ];
    ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST = @CIPH_ALGO_LIST@; #Default [ "NEA0" , "NEA1" , "NEA2" ];
  };
  
};


MODULES =
{
  NGAP_MESSAGE = (
    {MSG_NAME = "NGSetupRequest"; ProcedureCode = 21; TypeOfMessage = "initialMessage"}
  );
};
