Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting Started

Installation

Add this flake to your Nix configuration:

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    smf-config.url = "git+https://gitlab.flux.utah.edu/mugahed/nixcore_doc";
  };

  outputs = { self, nixpkgs, smf-config }: {
    # Your configuration here
  };
}

Basic Usage

Using Default Configuration

The simplest way to generate the default smf.yaml:

let
  pkgs = import <nixpkgs> {};
  
  # Evaluate with defaults
  smfConfig = (pkgs.lib.evalModules {
    modules = [ smf-config.lib.mkSMFConfig ];
  }).config.smf.generated;
in
  smfConfig

Customizing Options

Override specific options:

{
  smf = {
    global.max.ue = 2048;
    logger.level = "debug";
    mtu = 1500;
    
    metrics.server = {
      address = "0.0.0.0";
      port = 9091;
    };
  };
}

Enabling Optional Features

{
  smf = {
    # Enable NRF connection
    sbi.client.nrf.uri = "http://127.0.0.10:7777";
    
    # Configure P-CSCF for IMS
    pCscf = [ "127.0.0.1" "::1" ];
    
    # Enable CTF
    ctf.enabled = "yes";
  };
}

Building Documentation Locally

# Build the documentation
nix build .#docs

# Serve locally
nix run .#serve
# Open http://localhost:8000