factory

package
v1.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServiceTraffInflu  string = "3gpp-traffic-influence"
	ServicePfdMng      string = "3gpp-pfd-management"
	ServiceNefPfd      string = string(models.ServiceName_NNEF_PFDMANAGEMENT)
	ServiceNefOam      string = "nnef-oam"
	ServiceNefCallback string = "nnef-callback"
)
View Source
const (
	NefDefaultTLSKeyLogPath      = "./log/nefsslkey.log"
	NefDefaultCertPemPath        = "./cert/nef.pem"
	NefDefaultPrivateKeyPath     = "./cert/nef.key"
	NefDefaultConfigPath         = "./config/nefcfg.yaml"
	NefExpectedConfigVersion     = "1.0.1"
	NefDefaultNfInstanceIdEnvVar = "NEF_NF_INSTANCE_ID"
	NefSbiDefaultIPv4            = "127.0.0.5"
	NefSbiDefaultPort            = 8000
	NefSbiDefaultScheme          = "https"
	NefMetricsDefaultEnabled     = false
	NefMetricsDefaultPort        = 9091
	NefMetricsDefaultScheme      = "https"
	NefMetricsDefaultNamespace   = "free5gc"
	NefDefaultNrfUri             = "https://127.0.0.10:8000"
	TraffInfluResUriPrefix       = "/" + ServiceTraffInflu + "/v1"
	PfdMngResUriPrefix           = "/" + ServicePfdMng + "/v1"
	NefPfdMngResUriPrefix        = "/" + ServiceNefPfd + "/v1"
	NefOamResUriPrefix           = "/" + ServiceNefOam + "/v1"
	NefCallbackResUriPrefix      = "/" + ServiceNefCallback + "/v1"
)

Variables

This section is empty.

Functions

func InitConfigFactory

func InitConfigFactory(f string, cfg *Config) error

TODO: Support configuration update from REST api

Types

type Config

type Config struct {
	Info          *Info          `yaml:"info" valid:"required"`
	Configuration *Configuration `yaml:"configuration" valid:"required"`
	Logger        *Logger        `yaml:"logger" valid:"required"`
	sync.RWMutex
}

func ReadConfig

func ReadConfig(cfgPath string) (*Config, error)

func (*Config) AreMetricsEnabled added in v1.2.1

func (c *Config) AreMetricsEnabled() bool

func (*Config) GetCertKeyPath added in v1.1.0

func (c *Config) GetCertKeyPath() string

func (*Config) GetCertPemPath added in v1.1.0

func (c *Config) GetCertPemPath() string

func (*Config) GetLogEnable

func (c *Config) GetLogEnable() bool

func (*Config) GetLogLevel

func (c *Config) GetLogLevel() string

func (*Config) GetLogReportCaller

func (c *Config) GetLogReportCaller() bool

func (*Config) GetMetricsBindingAddr added in v1.2.1

func (c *Config) GetMetricsBindingAddr() string

func (*Config) GetMetricsBindingIP added in v1.2.1

func (c *Config) GetMetricsBindingIP() string

func (*Config) GetMetricsCertKeyPath added in v1.2.1

func (c *Config) GetMetricsCertKeyPath() string

func (*Config) GetMetricsCertPemPath added in v1.2.1

func (c *Config) GetMetricsCertPemPath() string

func (*Config) GetMetricsNamespace added in v1.2.1

func (c *Config) GetMetricsNamespace() string

func (*Config) GetMetricsPort added in v1.2.1

func (c *Config) GetMetricsPort() int

func (*Config) GetMetricsScheme added in v1.2.1

func (c *Config) GetMetricsScheme() string

func (*Config) GetNfInstanceId added in v1.2.1

func (c *Config) GetNfInstanceId() string

func (*Config) NFServices

func (c *Config) NFServices() []models.NrfNfManagementNfService

func (*Config) NrfCertPem

func (c *Config) NrfCertPem() string

func (*Config) NrfUri

func (c *Config) NrfUri() string

func (*Config) Print

func (c *Config) Print()

func (*Config) SbiBindingAddr

func (c *Config) SbiBindingAddr() string

func (*Config) SbiBindingIP

func (c *Config) SbiBindingIP() string

func (*Config) SbiPort

func (c *Config) SbiPort() int

func (*Config) SbiRegisterAddr

func (c *Config) SbiRegisterAddr() string

func (*Config) SbiRegisterIP

func (c *Config) SbiRegisterIP() string

func (*Config) SbiScheme

func (c *Config) SbiScheme() string

func (*Config) SbiUri

func (c *Config) SbiUri() string

func (*Config) ServiceList

func (c *Config) ServiceList() []Service

func (*Config) ServiceUri

func (c *Config) ServiceUri(name string) string

func (*Config) SetLogEnable

func (c *Config) SetLogEnable(enable bool)

func (*Config) SetLogLevel

func (c *Config) SetLogLevel(level string)

func (*Config) SetLogReportCaller

func (c *Config) SetLogReportCaller(reportCaller bool)

func (*Config) Validate

func (c *Config) Validate() (bool, error)

func (*Config) Version

func (c *Config) Version() string

type Configuration

type Configuration struct {
	NfInstanceId string    `yaml:"nfInstanceId,omitempty" valid:"optional,uuidv4"`
	Sbi          *Sbi      `yaml:"sbi,omitempty" valid:"required"`
	Metrics      *Metrics  `yaml:"metrics,omitempty" valid:"optional"`
	NrfUri       string    `yaml:"nrfUri,omitempty" valid:"required"`
	NrfCertPem   string    `yaml:"nrfCertPem,omitempty" valid:"optional"`
	ServiceList  []Service `yaml:"serviceList,omitempty" valid:"required"`
}

type Info

type Info struct {
	Version     string `yaml:"version,omitempty" valid:"type(string)"`
	Description string `yaml:"description,omitempty" valid:"type(string)"`
}

type Logger

type Logger struct {
	Enable       bool   `yaml:"enable" valid:"type(bool)"`
	Level        string `yaml:"level" valid:"required,in(trace|debug|info|warn|error|fatal|panic)"`
	ReportCaller bool   `yaml:"reportCaller" valid:"type(bool)"`
}

type Metrics added in v1.2.1

type Metrics struct {
	Enable      bool   `yaml:"enable" valid:"optional"`
	Scheme      string `yaml:"scheme" valid:"required,scheme"`
	BindingIPv4 string `yaml:"bindingIPv4,omitempty" valid:"required,host"` // IP used to run the server in the node.
	Port        int    `yaml:"port,omitempty" valid:"optional,port"`
	Tls         *Tls   `yaml:"tls,omitempty" valid:"optional"`
	Namespace   string `yaml:"namespace" valid:"optional"`
}

type Sbi

type Sbi struct {
	Scheme       string `yaml:"scheme" valid:"scheme,required"`
	RegisterIPv4 string `yaml:"registerIPv4,omitempty" valid:"host,required"` // IP that is registered at NRF.
	// IPv6Addr  string `yaml:"ipv6Addr,omitempty"`
	BindingIPv4 string `yaml:"bindingIPv4,omitempty" valid:"host,required"` // IP used to run the server in the node.
	Port        int    `yaml:"port,omitempty" valid:"port,optional"`
	Tls         *Tls   `yaml:"tls,omitempty" valid:"optional"`
}

type Service

type Service struct {
	ServiceName string `yaml:"serviceName"`
	SuppFeat    string `yaml:"suppFeat,omitempty"`
}

type Tls

type Tls struct {
	Pem string `yaml:"pem,omitempty" valid:"type(string),minstringlength(1),required"`
	Key string `yaml:"key,omitempty" valid:"type(string),minstringlength(1),required"`
}