From 982ac61894ba5ac7b532661773df0cae859bb4f1 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Mon, 21 Nov 2022 22:06:29 +0900 Subject: [PATCH] Prometheus metrics set to default --- configs/310014.yaml.in | 68 ++-- configs/csfb.yaml.in | 68 ++-- configs/meson.build | 12 +- configs/non3gpp.yaml.in | 68 ++-- configs/open5gs/amf.yaml.in | 2 +- configs/open5gs/mme.yaml.in | 4 +- configs/open5gs/smf.yaml.in | 2 +- configs/sample.yaml.in | 77 +++-- configs/slice.yaml.in | 68 ++-- configs/srslte.yaml.in | 68 ++-- configs/volte.yaml.in | 68 ++-- configs/vonr.yaml.in | 68 ++-- debian/control | 1 + docker/README.md | 4 +- docker/alpine/latest/base/Dockerfile | 1 + docker/debian/latest/base/Dockerfile | 1 + docker/debian/stretch | 1 - docker/fedora/29 | 1 - docker/fedora/30 | 1 - docker/fedora/31 | 1 - docker/fedora/32 | 1 - docker/fedora/33 | 1 - docker/fedora/latest/base/Dockerfile | 1 + docker/ubuntu/groovy | 1 - docker/ubuntu/hirsute | 1 - docker/{debian/buster => ubuntu/jammy} | 0 docker/{debian/sid => ubuntu/kinetic} | 0 docker/ubuntu/latest/base/Dockerfile | 1 + .../guide/02-building-open5gs-from-sources.md | 2 +- docs/_docs/platform/02-centos.md | 13 +- docs/_docs/platform/03-fedora.md | 2 +- .../_docs/platform/05-macosx-apple-silicon.md | 4 +- docs/_docs/platform/06-macosx-intel.md | 4 +- docs/_docs/platform/07-freebsd.md | 47 ++- docs/_docs/platform/08-alpine.md | 2 +- docs/_docs/tutorial/04-metrics-prometheus.md | 36 +- lib/core/meson.build | 7 +- lib/metrics/context.h | 7 + lib/metrics/meson.build | 51 ++- lib/metrics/prometheus/context.c | 312 ++++++++++++++---- lib/sbi/context.h | 2 +- meson.build | 27 +- meson_options.txt | 1 - src/amf/metrics.c | 7 +- src/amf/metrics.h | 3 + src/meson.build | 6 +- src/mme/metrics.c | 5 +- src/mme/metrics.h | 3 + src/mme/s1ap-handler.c | 17 +- src/smf/metrics.c | 5 +- src/smf/metrics.h | 2 + subprojects/prometheus-client-c.wrap | 2 +- tests/app/meson.build | 6 +- tests/common/meson.build | 2 +- tests/non3gpp/meson.build | 2 +- tests/volte/meson.build | 2 +- vagrant/freebsd/Vagrantfile | 2 +- 57 files changed, 723 insertions(+), 448 deletions(-) delete mode 120000 docker/debian/stretch delete mode 120000 docker/fedora/29 delete mode 120000 docker/fedora/30 delete mode 120000 docker/fedora/31 delete mode 120000 docker/fedora/32 delete mode 120000 docker/fedora/33 delete mode 120000 docker/ubuntu/groovy delete mode 120000 docker/ubuntu/hirsute rename docker/{debian/buster => ubuntu/jammy} (100%) rename docker/{debian/sid => ubuntu/kinetic} (100%) delete mode 100644 meson_options.txt diff --git a/configs/310014.yaml.in b/configs/310014.yaml.in index c424df939..475fc9fff 100644 --- a/configs/310014.yaml.in +++ b/configs/310014.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -106,14 +106,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -170,14 +170,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -188,14 +188,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/csfb.yaml.in b/configs/csfb.yaml.in index bd279a4d5..90fe516f7 100644 --- a/configs/csfb.yaml.in +++ b/configs/csfb.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -140,14 +140,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -204,14 +204,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -222,14 +222,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/meson.build b/configs/meson.build index f5fdcfdcc..ce78ca9b4 100644 --- a/configs/meson.build +++ b/configs/meson.build @@ -22,13 +22,13 @@ conf_data.set('sysconfdir', sysconfdir) conf_data.set('libdir', libdir) conf_data.set('localstatedir', localstatedir) -open5gs_builddir = meson.build_root() -conf_data.set('open5gs_builddir', open5gs_builddir) +build_configs_dir = join_paths(open5gs_build_dir, 'configs') +conf_data.set('build_configs_dir', build_configs_dir) -freediameter_extensions_builddir = join_paths( - meson.build_root(), 'subprojects', 'freeDiameter', 'extensions') -conf_data.set('freediameter_extensions_builddir', - freediameter_extensions_builddir) +build_subprojects_freeDiameter_extensions_dir = join_paths( + open5gs_build_dir, 'subprojects', 'freeDiameter', 'extensions') +conf_data.set('build_subprojects_freeDiameter_extensions_dir', + build_subprojects_freeDiameter_extensions_dir) example_conf = ''' sample.yaml diff --git a/configs/non3gpp.yaml.in b/configs/non3gpp.yaml.in index f8f6bd9b6..3408f8142 100644 --- a/configs/non3gpp.yaml.in +++ b/configs/non3gpp.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -106,14 +106,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -172,14 +172,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -192,14 +192,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in index 0a69f3bd0..f84ed59b8 100644 --- a/configs/open5gs/amf.yaml.in +++ b/configs/open5gs/amf.yaml.in @@ -344,7 +344,7 @@ amf: ngap: - addr: 127.0.0.5 metrics: - addr: 127.0.0.5 + - addr: 127.0.0.5 port: 9090 guami: - plmn_id: diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in index 384d8f885..5ae432983 100644 --- a/configs/open5gs/mme.yaml.in +++ b/configs/open5gs/mme.yaml.in @@ -255,8 +255,8 @@ mme: gtpc: - addr: 127.0.0.2 metrics: - addr: 127.0.0.2 - port: 9090 + - addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in index 9b7ad5083..8cf27a438 100644 --- a/configs/open5gs/smf.yaml.in +++ b/configs/open5gs/smf.yaml.in @@ -517,7 +517,7 @@ smf: - addr: 127.0.0.4 - addr: ::1 metrics: - addr: 127.0.0.4 + - addr: 127.0.0.4 port: 9090 subnet: - addr: 10.45.0.1/16 diff --git a/configs/sample.yaml.in b/configs/sample.yaml.in index 05ee07579..6b679b745 100644 --- a/configs/sample.yaml.in +++ b/configs/sample.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -55,6 +55,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -91,6 +94,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -106,14 +112,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -148,6 +154,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 @@ -195,14 +204,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -213,14 +222,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/slice.yaml.in b/configs/slice.yaml.in index 11edcd7fb..bbb299902 100644 --- a/configs/slice.yaml.in +++ b/configs/slice.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -106,14 +106,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -174,14 +174,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -192,14 +192,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/srslte.yaml.in b/configs/srslte.yaml.in index 5bcf471f8..d622da78b 100644 --- a/configs/srslte.yaml.in +++ b/configs/srslte.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -106,14 +106,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -170,14 +170,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -188,14 +188,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/volte.yaml.in b/configs/volte.yaml.in index c408ff6ab..1fdaa3cc2 100644 --- a/configs/volte.yaml.in +++ b/configs/volte.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -109,14 +109,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -173,14 +173,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -193,14 +193,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/configs/vonr.yaml.in b/configs/vonr.yaml.in index de859b7cc..a40fbe18c 100644 --- a/configs/vonr.yaml.in +++ b/configs/vonr.yaml.in @@ -5,13 +5,13 @@ logger: tls: enabled: no server: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testserver.key - cert: @open5gs_builddir@/configs/open5gs/tls/testserver.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testserver.key + cert: @build_configs_dir@/open5gs/tls/testserver.crt client: - cacert: @open5gs_builddir@/configs/open5gs/tls/ca.crt - key: @open5gs_builddir@/configs/open5gs/tls/testclient.key - cert: @open5gs_builddir@/configs/open5gs/tls/testclient.crt + cacert: @build_configs_dir@/open5gs/tls/ca.crt + key: @build_configs_dir@/open5gs/tls/testclient.key + cert: @build_configs_dir@/open5gs/tls/testclient.crt parameter: # no_nrf: true @@ -39,14 +39,14 @@ mme: listen_on: 127.0.0.2 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: hss.localdomain addr: 127.0.0.8 @@ -109,14 +109,14 @@ smf: listen_on: 127.0.0.4 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: pcrf.localdomain addr: 127.0.0.9 @@ -173,14 +173,14 @@ hss: listen_on: 127.0.0.8 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: mme.localdomain addr: 127.0.0.2 @@ -191,14 +191,14 @@ pcrf: listen_on: 127.0.0.9 no_fwd: true load_extension: - - module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx conf: 0x8888 - - module: @freediameter_extensions_builddir@/dict_rfc5777.fdx - - module: @freediameter_extensions_builddir@/dict_mip6i.fdx - - module: @freediameter_extensions_builddir@/dict_nasreq.fdx - - module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx - - module: @freediameter_extensions_builddir@/dict_dcca.fdx - - module: @freediameter_extensions_builddir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx + - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx connect: - identity: smf.localdomain addr: 127.0.0.4 diff --git a/debian/control b/debian/control index 271c2c361..395737437 100644 --- a/debian/control +++ b/debian/control @@ -7,6 +7,7 @@ Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), + cmake, flex, bison, libgnutls28-dev, diff --git a/docker/README.md b/docker/README.md index 4b7793495..082834ad4 100644 --- a/docker/README.md +++ b/docker/README.md @@ -98,7 +98,7 @@ export DEBEMAIL='acetcom@gmail.com' ``` $ dch -i - $ meson subprojects download freeDiameter + $ meson subprojects download freeDiameter prometheus-client-c $ debuild -S -uc -us -d $ osc co home:acetcom:open5gs latest $ cd home\:acetcom\:open5gs/latest/ @@ -110,7 +110,7 @@ export DEBEMAIL='acetcom@gmail.com' ``` $ dch -i - $ meson subprojects download freeDiameter + $ meson subprojects download freeDiameter prometheus-client-c $ debuild -S -d $ dput ppa:open5gs/latest *.source.changes ``` diff --git a/docker/alpine/latest/base/Dockerfile b/docker/alpine/latest/base/Dockerfile index 9bda898bc..69c43e86c 100644 --- a/docker/alpine/latest/base/Dockerfile +++ b/docker/alpine/latest/base/Dockerfile @@ -10,6 +10,7 @@ RUN apk update && \ bison \ flex \ git \ + cmake \ meson \ bash \ linux-headers \ diff --git a/docker/debian/latest/base/Dockerfile b/docker/debian/latest/base/Dockerfile index c7de86eb2..072628d16 100644 --- a/docker/debian/latest/base/Dockerfile +++ b/docker/debian/latest/base/Dockerfile @@ -16,6 +16,7 @@ RUN apt-get update && \ flex \ bison \ git \ + cmake \ meson \ libsctp-dev \ libgnutls28-dev \ diff --git a/docker/debian/stretch b/docker/debian/stretch deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/debian/stretch +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/29 b/docker/fedora/29 deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/fedora/29 +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/30 b/docker/fedora/30 deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/fedora/30 +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/31 b/docker/fedora/31 deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/fedora/31 +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/32 b/docker/fedora/32 deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/fedora/32 +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/33 b/docker/fedora/33 deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/fedora/33 +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/fedora/latest/base/Dockerfile b/docker/fedora/latest/base/Dockerfile index d85a5ae05..a018aea81 100644 --- a/docker/fedora/latest/base/Dockerfile +++ b/docker/fedora/latest/base/Dockerfile @@ -12,6 +12,7 @@ RUN dnf -y install \ flex \ bison \ git \ + cmake \ lksctp-tools-devel \ libidn-devel \ gnutls-devel \ diff --git a/docker/ubuntu/groovy b/docker/ubuntu/groovy deleted file mode 120000 index fdbdcf25e..000000000 --- a/docker/ubuntu/groovy +++ /dev/null @@ -1 +0,0 @@ -../debian/latest \ No newline at end of file diff --git a/docker/ubuntu/hirsute b/docker/ubuntu/hirsute deleted file mode 120000 index b9bc2fdcb..000000000 --- a/docker/ubuntu/hirsute +++ /dev/null @@ -1 +0,0 @@ -latest \ No newline at end of file diff --git a/docker/debian/buster b/docker/ubuntu/jammy similarity index 100% rename from docker/debian/buster rename to docker/ubuntu/jammy diff --git a/docker/debian/sid b/docker/ubuntu/kinetic similarity index 100% rename from docker/debian/sid rename to docker/ubuntu/kinetic diff --git a/docker/ubuntu/latest/base/Dockerfile b/docker/ubuntu/latest/base/Dockerfile index c7de86eb2..072628d16 100644 --- a/docker/ubuntu/latest/base/Dockerfile +++ b/docker/ubuntu/latest/base/Dockerfile @@ -16,6 +16,7 @@ RUN apt-get update && \ flex \ bison \ git \ + cmake \ meson \ libsctp-dev \ libgnutls28-dev \ diff --git a/docs/_docs/guide/02-building-open5gs-from-sources.md b/docs/_docs/guide/02-building-open5gs-from-sources.md index a98fb8af8..226ee8276 100644 --- a/docs/_docs/guide/02-building-open5gs-from-sources.md +++ b/docs/_docs/guide/02-building-open5gs-from-sources.md @@ -60,7 +60,7 @@ $ sudo ip link set ogstun up Install the dependencies for building the source code. ```bash -$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson +$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson ``` Git clone. diff --git a/docs/_docs/platform/02-centos.md b/docs/_docs/platform/02-centos.md index 42ea78eae..414cf2f23 100644 --- a/docs/_docs/platform/02-centos.md +++ b/docs/_docs/platform/02-centos.md @@ -86,13 +86,13 @@ $ sudo dnf config-manager --set-enabled elrepo-testing Create a repository file to install the MongoDB packages: ```bash -$ sudo sh -c 'cat << EOF > /etc/yum.repos.d/mongodb-org-3.6.repo -[mongodb-org-3.6] +$ sudo sh -c 'cat << EOF > /etc/yum.repos.d/mongodb-org-6.0.repo +[mongodb-org-6.0] name=MongoDB Repository -baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.6/x86_64/ +baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 -gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc +gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc EOF' ``` @@ -109,7 +109,7 @@ a base CentOS Stream 8 installation. ```bash -$ sudo dnf install python3 meson ninja-build gcc gcc-c++ flex bison git lksctp-tools-devel libidn-devel gnutls-devel libgcrypt-devel openssl-devel cyrus-sasl-devel libyaml-devel mongo-c-driver-devel libmicrohttpd-devel libcurl-devel libnghttp2-devel libtalloc-devel +$ sudo dnf install python3 meson cmake ninja-build gcc gcc-c++ flex bison git cmake lksctp-tools-devel libidn-devel gnutls-devel libgcrypt-devel openssl-devel cyrus-sasl-devel libyaml-devel mongo-c-driver-devel libmicrohttpd-devel libcurl-devel libnghttp2-devel libtalloc-devel ``` ### Install iproute IP interface tools. @@ -341,6 +341,7 @@ open5gs-hssd open5gs-pcfd open5gs-sgwud open5gs-upfd Install Node.js: ```bash +$ curl -sL https://rpm.nodesource.com/setup_18.x | sudo -E bash - $ sudo dnf install nodejs ``` @@ -354,5 +355,5 @@ $ npm ci The WebUI runs as an [npm](https://www.npmjs.com/) script. ```bash -$ npm run dev +$ DB_URI=mongodb://127.0.0.1/open5gs HOSTNAME=0.0.0.0 npm run dev ``` diff --git a/docs/_docs/platform/03-fedora.md b/docs/_docs/platform/03-fedora.md index 526b159a4..0f218b3f2 100644 --- a/docs/_docs/platform/03-fedora.md +++ b/docs/_docs/platform/03-fedora.md @@ -70,7 +70,7 @@ $ ip link show Install the depedencies for building the source code. ```bash -$ sudo dnf install python3 ninja-build gcc gcc-c++ flex bison git lksctp-tools-devel libidn-devel gnutls-devel libgcrypt-devel openssl-devel cyrus-sasl-devel libyaml-devel mongo-c-driver-devel libmicrohttpd-devel libcurl-devel libnghttp2-devel libtalloc-devel iproute +$ sudo dnf install python3 ninja-build gcc gcc-c++ flex bison git cmake lksctp-tools-devel libidn-devel gnutls-devel libgcrypt-devel openssl-devel cyrus-sasl-devel libyaml-devel mongo-c-driver-devel libmicrohttpd-devel libcurl-devel libnghttp2-devel libtalloc-devel iproute ``` Install Meson diff --git a/docs/_docs/platform/05-macosx-apple-silicon.md b/docs/_docs/platform/05-macosx-apple-silicon.md index b22e00c9b..126c1e4fa 100644 --- a/docs/_docs/platform/05-macosx-apple-silicon.md +++ b/docs/_docs/platform/05-macosx-apple-silicon.md @@ -90,13 +90,13 @@ $ sudo pfctl -e -f /etc/pf.anchors/org.open5gs Install the depedencies for building the source code. ```bash -$ brew install mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 pkg-config bison libusrsctp libtins talloc +$ brew install mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 pkg-config bison libusrsctp libtins talloc cmake ``` Configure Homebrew PATH ```bash $ export PATH="/opt/homebrew/opt/bison/bin:/opt/homebrew/bin:$PATH" -$ export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" +$ export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH" $ export LIBRARY_PATH=/opt/homebrew/lib $ export C_INCLUDE_PATH=/opt/homebrew/include $ export CPLUS_INCLUDE_PATH=/opt/homebrew/include diff --git a/docs/_docs/platform/06-macosx-intel.md b/docs/_docs/platform/06-macosx-intel.md index f29b30ee4..a006d9d5a 100644 --- a/docs/_docs/platform/06-macosx-intel.md +++ b/docs/_docs/platform/06-macosx-intel.md @@ -90,7 +90,7 @@ $ sudo pfctl -e -f /etc/pf.anchors/org.open5gs Install the depedencies for building the source code. ```bash -$ brew install mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 pkg-config libusrsctp libtins talloc +$ brew install mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 pkg-config libusrsctp libtins talloc cmake ``` Install Bison PATH @@ -101,7 +101,7 @@ $ export PATH="/usr/local/opt/bison/bin:$PATH" Configure OpenSSL PKG_CONFIG_PATH ```bash -$ export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" +$ export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH" ``` Install Meson using Homebrew. diff --git a/docs/_docs/platform/07-freebsd.md b/docs/_docs/platform/07-freebsd.md index 6a872c118..0ee173496 100644 --- a/docs/_docs/platform/07-freebsd.md +++ b/docs/_docs/platform/07-freebsd.md @@ -3,10 +3,10 @@ title: FreeBSD head_inline: "" --- -This guide is based on **FreeBSD-11.4-STABLE**. +This guide is based on **FreeBSD-13.1-STABLE**. {: .blue} -## Install **FreeBSD-11.4-STABLE** from Vagrant box (optional) +## Install **FreeBSD-13.1-STABLE** from Vagrant box (optional) --- Vagrant provides a simple way to create and deploy Virtual Machines from pre-built images using VirtualBox, libvirt, or VMWare as a hypervisor engine. @@ -20,13 +20,13 @@ The instructions to install Vagrant are provided at [vagrantup.com](https://www.vagrantup.com/). -### Create a FreeBSD-11.4-STABLE Virtual Machine using Vagrant +### Create a FreeBSD-13.1-STABLE Virtual Machine using Vagrant --- Use the supplied `Vagrantfile` in the `vagrant` directory to create the virtual machine. -Note that this Vagrantfile is identical to the base FreeBSD 11 box, with +Note that this Vagrantfile is identical to the base FreeBSD 13 box, with the exception that the amount of virtual memory has been increased to 1GB: ```bash @@ -37,7 +37,7 @@ vagrant up --provider virtualbox ### Log into the newly created FreeBSD VM --- -Use SSH to log into the FreeBSD 11 VM: +Use SSH to log into the FreeBSD 13 VM: ```bash vagrant ssh @@ -45,17 +45,17 @@ vagrant ssh Note that the Open5GS source is *not* copied into the VM. The instructions below provide the step by step instructions for setting up Open5GS for -either a bare metal or virtual FreeBSD 11 system. +either a bare metal or virtual FreeBSD 13 system. The rest of the commands below are performed inside the FreeBSD VM as the -user 'vagrant', or on your bare metal FreeBSD 11 system as any normal user. +user 'vagrant', or on your bare metal FreeBSD 13 system as any normal user. ### Getting MongoDB --- Install MongoDB with package manager. ```bash -$ sudo pkg install mongodb44 +$ sudo pkg install mongodb50 ``` Run MongoDB server. @@ -102,12 +102,37 @@ $ sudo sysctl -w net.inet6.ip6.forwarding=1 `$ sudo ./misc/netconf.sh` {: .notice--info} +### Load the SCTP kernel module +--- + +Update `/etc/rc.conf` to load the SCTP kernel module. + +```diff +$ diff -u /etc/rc.conf.old /etc/rc.conf.new +--- /etc/rc.conf.old 2022-11-19 12:35:07.718151000 +0000 ++++ /etc/rc.conf.new 2022-11-19 12:34:59.160560000 +0000 +@@ -11,3 +11,4 @@ + sendmail_submit_enable="NO" + sendmail_outbound_enable="NO" + sendmail_msp_queue_enable="NO" ++kld_list="sctp" +``` + +This is important that you must reboot as shown below. + +```bash +[host] $ vagrant halt +[host] $ vagrant up --provider virtualbox +[host] $ # ssh back into the VM after it reboots... +[host] $ vagrant ssh +``` + ### Building Open5GS --- Install the depedencies for building the source code. ```bash -$ sudo pkg install meson ninja gcc bison gsed pkgconf git mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 talloc +$ sudo pkg install meson cmake ninja gcc bison gsed pkgconf git cmake mongo-c-driver gnutls libgcrypt libidn libyaml libmicrohttpd nghttp2 talloc ``` Configure gcc PATH @@ -136,7 +161,7 @@ $ meson build --prefix=`pwd`/install $ ninja -C build ``` -**Note:** No source code changes are required for FreeBSD 11.x version. However, in FreeBSD 12.x version, we'll getting a crash with segmentation fault when calling basename(3). To avoid this, you need to change the freeDiameter source code as below. +**Note:** No source code changes are required for FreeBSD 11.x version. However, in FreeBSD 12.x/13.x version, we'll getting a crash with segmentation fault when calling basename(3). To avoid this, you need to change the freeDiameter source code as below. {: .blue} ```diff @@ -200,7 +225,7 @@ $ cd ../ [Node.js](https://nodejs.org/) is required to build WebUI of Open5GS ```bash -$ sudo pkg install node +$ sudo pkg install npm ``` Install the dependencies to run WebUI diff --git a/docs/_docs/platform/08-alpine.md b/docs/_docs/platform/08-alpine.md index 09b691ff5..bb05e4d53 100644 --- a/docs/_docs/platform/08-alpine.md +++ b/docs/_docs/platform/08-alpine.md @@ -53,7 +53,7 @@ $ ip link show Install the depedencies for building the source code. ```bash -$ sudo apk add alpine-sdk bison flex git meson bash sudo linux-headers bsd-compat-headers yaml-dev lksctp-tools-dev gnutls-dev libgcrypt-dev libidn-dev mongo-c-driver-dev libmicrohttpd-dev curl-dev nghttp2-dev talloc-dev +$ sudo apk add alpine-sdk bison flex git cmake meson bash sudo linux-headers bsd-compat-headers yaml-dev lksctp-tools-dev gnutls-dev libgcrypt-dev libidn-dev mongo-c-driver-dev libmicrohttpd-dev curl-dev nghttp2-dev talloc-dev ``` Git clone. diff --git a/docs/_docs/tutorial/04-metrics-prometheus.md b/docs/_docs/tutorial/04-metrics-prometheus.md index 8e36bb14b..72b314c44 100644 --- a/docs/_docs/tutorial/04-metrics-prometheus.md +++ b/docs/_docs/tutorial/04-metrics-prometheus.md @@ -12,25 +12,14 @@ When this method is used, any open5gs program exporting metrics becomes a Prometheus server, which is basically an HTTP server serving Prometheus data to the Prometheus scrapper. -Note: Only open5gs-smfd supports exporting metrics so far, though other may +Note: AMF, MME and SMF support exporting metrics so far, though other may hopefully follow soon. #### 1. Enable Prometheus support during build Open5GS programs use a generic internal API available in libogsmetrics. This library implements the API based on configuration passed during open5gs build -time. By default, the library will be built using the `void` implementation, -which is basically a NO-OP implementation. - -In order to use the Prometheus, the `prometheus` metrics implementation needs to -be selected at build time: - -``` -meson configure -Dmetrics_impl=prometheus build -``` - -This will enable building the implementation under lib/metrics/prometheus/, -which uses: +time. By default, the library will be built under lib/metrics/prometheus/, which uses: * prometheus-client-c project (libprom): To generate the Prometheus expected output format of the metrics @@ -45,9 +34,8 @@ building the prometheus libmetrics implementation. #### 2. Configuring for runtime -By default the created Prometheus HTTP server will be listening on `0.0.0.0` -port `9090`. -This can be configured under the following config file options: +A Prometheus HTTP server can be created from the following config file options. +A HTTP server is not created if 'metrics' is not defined. ``` # @@ -57,12 +45,18 @@ This can be configured under the following config file options: # # o Metrics Server(http://:9090) # metrics: -# addr: 0.0.0.0 -# port: 9090 +# - addr: 0.0.0.0 +# port: 9090 # -metrics: - addr: 0.0.0.0 - port: 9090 +# o Metrics Server(127.0.0.5:9090, [::1]:9090) +# metrics: +# - addr: 127.0.0.5 +# - addr: ::1 +# +amf: + metrics: + - addr: 127.0.0.5 + port: 9090 ``` Note: You may want to change the default IP address or port if you are running diff --git a/lib/core/meson.build b/lib/core/meson.build index d84b6a5c7..af64a7fee 100644 --- a/lib/core/meson.build +++ b/lib/core/meson.build @@ -155,7 +155,12 @@ else endif # Check for /dev/urandom -if run_command('[', '-c', '/dev/urandom', ']').returncode() == 0 +if meson.version().version_compare('>=0.47.0') + dev_urandom = run_command('[', '-c', '/dev/urandom', ']', check: false) +else + dev_urandom = run_command('[', '-c', '/dev/urandom', ']') +endif +if dev_urandom.returncode() == 0 libcore_conf.set_quoted('OGS_DEV_RANDOM', '/dev/urandom', description: 'a suitable file to read random data from') endif diff --git a/lib/metrics/context.h b/lib/metrics/context.h index 072104a06..3de2446bc 100644 --- a/lib/metrics/context.h +++ b/lib/metrics/context.h @@ -28,6 +28,8 @@ extern "C" { #endif +typedef struct ogs_metrics_server_s ogs_metrics_server_t; + typedef enum ogs_metrics_metric_type_s { OGS_METRICS_METRIC_TYPE_COUNTER, OGS_METRICS_METRIC_TYPE_GAUGE, @@ -41,6 +43,11 @@ void ogs_metrics_context_final(void); ogs_metrics_context_t *ogs_metrics_self(void); int ogs_metrics_context_parse_config(const char *local); +ogs_metrics_server_t *ogs_metrics_server_add( + ogs_sockaddr_t *addr, ogs_sockopt_t *option); +void ogs_metrics_server_remove(ogs_metrics_server_t *server); +void ogs_metrics_server_remove_all(void); + typedef struct ogs_metrics_spec_s ogs_metrics_spec_t; ogs_metrics_spec_t *ogs_metrics_spec_new( ogs_metrics_context_t *ctx, ogs_metrics_metric_type_t type, diff --git a/lib/metrics/meson.build b/lib/metrics/meson.build index fbb8fd93f..ff11e34bd 100644 --- a/lib/metrics/meson.build +++ b/lib/metrics/meson.build @@ -23,29 +23,55 @@ libmetrics_file_list = ''' libmetrics_dependencies = [libapp_dep] -metrics_impl_optval = get_option('metrics_impl') +#metrics_impl_optval = get_option('metrics_impl') -if metrics_impl_optval == 'prometheus' - # Note: This requires meson >= 0.51.0: - # 0.47.0: {'check arg in run_command'} - # 0.50.0: {'CMake Module'} - # 0.51.0: {'subproject'} +#if metrics_impl_optval == 'prometheus' +if meson.version().version_compare('>=0.51.0') +# Note: This requires meson >= 0.51.0: +# 0.47.0: {'check arg in run_command'} +# 0.50.0: {'CMake Module'} +# 0.51.0: {'subproject'} libmicrohttpd_dep = dependency('libmicrohttpd', version: '>=0.9.40') cmake = import('cmake') +# Ubuntu Bionic cannot parse meson's dictionary +# because the meson version is less than v0.47.0. +# +# We will change to using meson's dictionary +# after April 2023 when Ubuntu bionic is deprecated. +# +# if meson.version().version_compare('>=0.55.0') +# opt_var = cmake.subproject_options() +# opt_var.add_cmake_defines({'CMAKE_INSTALL_LIBDIR': libdir}) +# prometheus_client_c_proj = cmake.subproject( +# 'prometheus-client-c', options: opt_var) +# else +# prometheus_client_c_proj = cmake.subproject('prometheus-client-c') +# endif prometheus_client_c_proj = cmake.subproject('prometheus-client-c') - # generated cmake subproject seems to include - # open5gs/subprojects/prometheus-client-c/__CMake_build as include, which - # doesn't exist and fail: - missing_include_dir = join_paths(meson.current_source_dir(), '../../subprojects/prometheus-client-c/__CMake_build') - run_command('mkdir', '-p', missing_include_dir, check: true) + +# +# @acetcom +# We removed -Werror=missing-include-dirs in possible_cc_flags +# +# @pepsin +# generated cmake subproject seems to include +# open5gs/subprojects/prometheus-client-c/__CMake_build as include, which +# doesn't exist and fail: +# +# missing_include_dir = join_paths(meson.current_source_dir(), '../../subprojects/prometheus-client-c/__CMake_build') +# if meson.version().version_compare('>=0.47.0') +# run_command('mkdir', '-p', missing_include_dir, check: true) +# else +# run_command('mkdir', '-p', missing_include_dir) +# endif libprom_dep = prometheus_client_c_proj.dependency('prom') libmetrics_dependencies = libmetrics_dependencies + [libprom_dep, libmicrohttpd_dep] libmetrics_file_list = libmetrics_file_list + ' prometheus/context.c' else - libmetrics_file_list = libmetrics_file_list + ' void/context.c' + libmetrics_file_list = libmetrics_file_list + ' void/context.c' endif libmetrics_sources = files(libmetrics_file_list.split()) @@ -58,6 +84,7 @@ libmetrics = library('ogsmetrics', c_args : '-DOGS_METRICS_COMPILATION', include_directories : [libmetrics_inc, libinc], dependencies : libmetrics_dependencies, + install_rpath: libdir, install : true) libmetrics_dep = declare_dependency( diff --git a/lib/metrics/prometheus/context.c b/lib/metrics/prometheus/context.c index d72640f01..0029b69a3 100644 --- a/lib/metrics/prometheus/context.c +++ b/lib/metrics/prometheus/context.c @@ -27,15 +27,17 @@ #define MAX_LABELS 8 typedef struct ogs_metrics_context_s { - //uint32_t port; /* METRICS local port */ - - //ogs_sock_t *metricsc_sock; /* METRICS IPv4 Socket */ - ogs_socknode_t node; - + ogs_list_t server_list; ogs_list_t spec_list; - struct MHD_Daemon *mhd_server; + + uint16_t metrics_port; } ogs_metrics_context_t; +typedef struct ogs_metrics_server_s { + ogs_socknode_t node; + struct MHD_Daemon *mhd; +} ogs_metrics_server_t; + typedef struct ogs_metrics_spec_s { ogs_metrics_context_t *ctx; /* backpointer */ ogs_list_t entry; /* included in ogs_metrics_context_t */ @@ -59,6 +61,7 @@ typedef struct ogs_metrics_inst_s { static ogs_metrics_context_t self; static int context_initialized = 0; static OGS_POOL(metrics_spec_pool, ogs_metrics_spec_t); +static OGS_POOL(metrics_server_pool, ogs_metrics_server_t); void ogs_metrics_context_init(void) { @@ -73,6 +76,9 @@ void ogs_metrics_context_init(void) ogs_list_init(&self.spec_list); prom_collector_registry_default_init(); + ogs_list_init(&self.server_list); + ogs_pool_init(&metrics_server_pool, ogs_app()->pool.nf); + context_initialized = 1; } @@ -81,20 +87,15 @@ void ogs_metrics_context_final(void) ogs_metrics_spec_t *spec = NULL, *next = NULL; ogs_assert(context_initialized == 1); - if (self.mhd_server) - ogs_metrics_context_close(&self); - ogs_list_for_each_entry_safe(&self.spec_list, next, spec, entry) { ogs_metrics_spec_free(spec); } prom_collector_registry_destroy(PROM_COLLECTOR_REGISTRY_DEFAULT); - if (self.node.addr) { - ogs_freeaddrinfo(self.node.addr); - self.node.addr = NULL; - } + ogs_metrics_server_remove_all(); ogs_pool_final(&metrics_spec_pool); + ogs_pool_final(&metrics_server_pool); context_initialized = 0; } @@ -104,19 +105,25 @@ ogs_metrics_context_t *ogs_metrics_self(void) return &self; } +static int ogs_metrics_context_prepare(void) +{ + self.metrics_port = DEFAULT_PROMETHEUS_HTTP_PORT; + + return OGS_OK; +} + int ogs_metrics_context_parse_config(const char *local) { - int family = AF_UNSPEC; - const char *hostname = NULL; - uint16_t port = DEFAULT_PROMETHEUS_HTTP_PORT; - ogs_sockaddr_t *addr = NULL; + int rv; yaml_document_t *document = NULL; ogs_yaml_iter_t root_iter; - const char *v; document = ogs_app()->document; ogs_assert(document); + rv = ogs_metrics_context_prepare(); + if (rv != OGS_OK) return rv; + ogs_yaml_iter_init(&root_iter, document); while (ogs_yaml_iter_next(&root_iter)) { const char *root_key = ogs_yaml_iter_key(&root_iter); @@ -128,32 +135,212 @@ int ogs_metrics_context_parse_config(const char *local) const char *local_key = ogs_yaml_iter_key(&local_iter); ogs_assert(local_key); if (!strcmp(local_key, "metrics")) { - ogs_yaml_iter_t metrics_iter; - ogs_yaml_iter_recurse(&local_iter, &metrics_iter); - while (ogs_yaml_iter_next(&metrics_iter)) { - const char *metrics_key = ogs_yaml_iter_key(&metrics_iter); - ogs_assert(metrics_key); - if (!strcmp(metrics_key, "addr")) { - if ((v = ogs_yaml_iter_value(&metrics_iter))) - hostname = v; - } else if (!strcmp(metrics_key, "port")) { - if ((v = ogs_yaml_iter_value(&metrics_iter))) - port = atoi(v); + ogs_list_t list, list6; + ogs_socknode_t *node = NULL, *node6 = NULL; + + ogs_yaml_iter_t metrics_array, metrics_iter; + ogs_yaml_iter_recurse(&local_iter, &metrics_array); + do { + int i, family = AF_UNSPEC; + int num = 0; + const char *hostname[OGS_MAX_NUM_OF_HOSTNAME]; + + uint16_t port = self.metrics_port; + const char *dev = NULL; + ogs_sockaddr_t *addr = NULL; + + ogs_sockopt_t option; + bool is_option = false; + + if (ogs_yaml_iter_type(&metrics_array) == + YAML_MAPPING_NODE) { + memcpy(&metrics_iter, &metrics_array, + sizeof(ogs_yaml_iter_t)); + } else if (ogs_yaml_iter_type(&metrics_array) == + YAML_SEQUENCE_NODE) { + if (!ogs_yaml_iter_next(&metrics_array)) + break; + ogs_yaml_iter_recurse( + &metrics_array, &metrics_iter); + } else if (ogs_yaml_iter_type(&metrics_array) == + YAML_SCALAR_NODE) { + break; + } else + ogs_assert_if_reached(); + + while (ogs_yaml_iter_next(&metrics_iter)) { + const char *metrics_key = + ogs_yaml_iter_key(&metrics_iter); + ogs_assert(metrics_key); + if (!strcmp(metrics_key, "family")) { + const char *v = ogs_yaml_iter_value( + &metrics_iter); + if (v) family = atoi(v); + if (family != AF_UNSPEC && + family != AF_INET && family != AF_INET6) { + ogs_warn("Ignore family(%d) : " + "AF_UNSPEC(%d), " + "AF_INET(%d), AF_INET6(%d) ", + family, AF_UNSPEC, AF_INET, AF_INET6); + family = AF_UNSPEC; + } + } else if (!strcmp(metrics_key, "addr") || + !strcmp(metrics_key, "name")) { + ogs_yaml_iter_t hostname_iter; + ogs_yaml_iter_recurse(&metrics_iter, + &hostname_iter); + ogs_assert(ogs_yaml_iter_type(&hostname_iter) != + YAML_MAPPING_NODE); + + do { + if (ogs_yaml_iter_type(&hostname_iter) == + YAML_SEQUENCE_NODE) { + if (!ogs_yaml_iter_next( + &hostname_iter)) + break; + } + + ogs_assert(num < OGS_MAX_NUM_OF_HOSTNAME); + hostname[num++] = + ogs_yaml_iter_value(&hostname_iter); + } while ( + ogs_yaml_iter_type(&hostname_iter) == + YAML_SEQUENCE_NODE); + } else if (!strcmp(metrics_key, "port")) { + const char *v = ogs_yaml_iter_value( + &metrics_iter); + if (v) + port = atoi(v); + } else if (!strcmp(metrics_key, "dev")) { + dev = ogs_yaml_iter_value(&metrics_iter); + } else if (!strcmp(metrics_key, "option")) { + rv = ogs_app_config_parse_sockopt( + &metrics_iter, &option); + if (rv != OGS_OK) return rv; + is_option = true; + } else + ogs_warn("unknown key `%s`", metrics_key); } + + addr = NULL; + for (i = 0; i < num; i++) { + rv = ogs_addaddrinfo(&addr, + family, hostname[i], port, 0); + ogs_assert(rv == OGS_OK); + } + + ogs_list_init(&list); + ogs_list_init(&list6); + + if (addr) { + if (ogs_app()->parameter.no_ipv4 == 0) + ogs_socknode_add( + &list, AF_INET, addr, NULL); + if (ogs_app()->parameter.no_ipv6 == 0) + ogs_socknode_add( + &list6, AF_INET6, addr, NULL); + ogs_freeaddrinfo(addr); + } + + if (dev) { + rv = ogs_socknode_probe( + ogs_app()->parameter.no_ipv4 ? NULL : &list, + ogs_app()->parameter.no_ipv6 ? NULL : &list6, + dev, port, NULL); + ogs_assert(rv == OGS_OK); + } + + node = ogs_list_first(&list); + if (node) { + ogs_metrics_server_t *server = + ogs_metrics_server_add( + node->addr, is_option ? &option : NULL); + ogs_assert(server); + } + node6 = ogs_list_first(&list6); + if (node6) { + ogs_metrics_server_t *server = + ogs_metrics_server_add( + node6->addr, is_option ? &option : NULL); + ogs_assert(server); + } + + ogs_socknode_remove_all(&list); + ogs_socknode_remove_all(&list6); + + } while (ogs_yaml_iter_type(&metrics_array) == + YAML_SEQUENCE_NODE); + + if (ogs_list_first(&self.server_list) == 0) { + ogs_list_init(&list); + ogs_list_init(&list6); + + rv = ogs_socknode_probe( + ogs_app()->parameter.no_ipv4 ? NULL : &list, + ogs_app()->parameter.no_ipv6 ? NULL : &list6, + NULL, self.metrics_port, NULL); + ogs_assert(rv == OGS_OK); + + node = ogs_list_first(&list); + if (node) ogs_metrics_server_add(node->addr, NULL); + node6 = ogs_list_first(&list6); + if (node6) ogs_metrics_server_add(node6->addr, NULL); + + ogs_socknode_remove_all(&list); + ogs_socknode_remove_all(&list6); } } } } } - ogs_assert(OGS_OK == - ogs_addaddrinfo(&addr, family, hostname, port, AI_PASSIVE)); - if (self.node.addr) - ogs_freeaddrinfo(self.node.addr); - ogs_assert(OGS_OK == ogs_copyaddrinfo(&self.node.addr, addr)); - ogs_freeaddrinfo(addr); + return OGS_OK; } +ogs_metrics_server_t *ogs_metrics_server_add( + ogs_sockaddr_t *addr, ogs_sockopt_t *option) +{ + ogs_metrics_server_t *server = NULL; + + ogs_assert(addr); + + ogs_pool_alloc(&metrics_server_pool, &server); + ogs_assert(server); + memset(server, 0, sizeof(ogs_metrics_server_t)); + + ogs_assert(OGS_OK == ogs_copyaddrinfo(&server->node.addr, addr)); + if (option) + server->node.option = ogs_memdup(option, sizeof *option); + + ogs_list_add(&ogs_metrics_self()->server_list, server); + + return server; +} + +void ogs_metrics_server_remove(ogs_metrics_server_t *server) +{ + ogs_assert(server); + + ogs_list_remove(&ogs_metrics_self()->server_list, server); + + ogs_assert(server->node.addr); + ogs_freeaddrinfo(server->node.addr); + if (server->node.option) + ogs_free(server->node.option); + + ogs_pool_free(&metrics_server_pool, server); +} + +void ogs_metrics_server_remove_all(void) +{ + ogs_metrics_server_t *server = NULL, *next_server = NULL; + + ogs_list_for_each_safe( + &ogs_metrics_self()->server_list, next_server, server) { + ogs_metrics_server_remove(server); + } +} + static void mhd_server_run(short when, ogs_socket_t fd, void *data) { struct MHD_Daemon *mhd_daemon = data; @@ -244,16 +431,18 @@ static _MHD_Result mhd_server_access_handler(void *cls, struct MHD_Connection *c return ret; } -static int ogs_metrics_context_mhd_server_start(ogs_metrics_context_t *ctx) +static int ogs_metrics_context_server_start(ogs_metrics_server_t *server) { #define MAX_NUM_OF_MHD_OPTION_ITEM 8 struct MHD_OptionItem mhd_ops[MAX_NUM_OF_MHD_OPTION_ITEM]; const union MHD_DaemonInfo *mhd_info = NULL; int index = 0; char buf[OGS_ADDRSTRLEN]; - ogs_sockaddr_t *addr = ctx->node.addr; + ogs_sockaddr_t *addr = NULL; char *hostname = NULL; + ogs_assert(server); + addr = server->node.addr; ogs_assert(addr); #if MHD_VERSION >= 0x00095300 @@ -288,59 +477,68 @@ static int ogs_metrics_context_mhd_server_start(ogs_metrics_context_t *ctx) mhd_ops[index].ptr_value = NULL; index++; - if (ctx->mhd_server) { + if (server->mhd) { ogs_error("Prometheus HTTP server is already opened!"); return OGS_ERROR; } - ctx->mhd_server = MHD_start_daemon( + server->mhd = MHD_start_daemon( mhd_flags, 0, NULL, NULL, - mhd_server_access_handler, ctx, + mhd_server_access_handler, server, MHD_OPTION_ARRAY, mhd_ops, MHD_OPTION_END); - if (!ctx->mhd_server) { + if (!server->mhd) { ogs_error("Cannot start Prometheus HTTP server"); return OGS_ERROR; } /* Setup poll for server listening socket */ - mhd_info = MHD_get_daemon_info(ctx->mhd_server, MHD_DAEMON_INFO_LISTEN_FD); + mhd_info = MHD_get_daemon_info(server->mhd, MHD_DAEMON_INFO_LISTEN_FD); ogs_assert(mhd_info); - ctx->node.poll = ogs_pollset_add(ogs_app()->pollset, - OGS_POLLIN, mhd_info->listen_fd, mhd_server_run, ctx->mhd_server); - ogs_assert(ctx->node.poll); + server->node.poll = ogs_pollset_add(ogs_app()->pollset, + OGS_POLLIN, mhd_info->listen_fd, mhd_server_run, server->mhd); + ogs_assert(server->node.poll); hostname = ogs_gethostname(addr); if (hostname) - ogs_info("Prometheus mhd_server() [%s]:%d", hostname, OGS_PORT(addr)); + ogs_info("metrics_server() [http://%s]:%d", + hostname, OGS_PORT(addr)); else - ogs_info("Prometheus mhd_server() [%s]:%d", OGS_ADDR(addr, buf), OGS_PORT(addr)); + ogs_info("metrics_server() [http://%s]:%d", + OGS_ADDR(addr, buf), OGS_PORT(addr)); + return OGS_OK; } void ogs_metrics_context_open(ogs_metrics_context_t *ctx) { - ogs_assert(ogs_metrics_context_mhd_server_start(ctx) == OGS_OK); + ogs_metrics_server_t *server = NULL; + + ogs_list_for_each(&ctx->server_list, server) + ogs_metrics_context_server_start(server); } -static int ogs_metrics_context_mhd_server_stop(ogs_metrics_context_t *ctx) +static int ogs_metrics_context_server_stop(ogs_metrics_server_t *server) { - ogs_assert(ctx); + ogs_assert(server); - if (ctx->node.poll) - ogs_pollset_remove(ctx->node.poll); + if (server->node.poll) + ogs_pollset_remove(server->node.poll); - if (ctx->mhd_server) { - MHD_stop_daemon(ctx->mhd_server); - ctx->mhd_server = NULL; + if (server->mhd) { + MHD_stop_daemon(server->mhd); + server->mhd = NULL; } return OGS_OK; } void ogs_metrics_context_close(ogs_metrics_context_t *ctx) { - ogs_assert(ogs_metrics_context_mhd_server_stop(ctx) == OGS_OK); + ogs_metrics_server_t *server = NULL, *next = NULL; + + ogs_list_for_each_safe(&ctx->server_list, next, server) + ogs_metrics_context_server_stop(server); } ogs_metrics_spec_t *ogs_metrics_spec_new( @@ -394,7 +592,7 @@ void ogs_metrics_spec_free(ogs_metrics_spec_t *spec) ogs_metrics_inst_t *inst = NULL, *next = NULL; unsigned int i; - ogs_list_remove(&spec->ctx->spec_list, spec); + ogs_list_remove(&spec->ctx->spec_list, &spec->entry); ogs_list_for_each_entry_safe(&spec->inst_list, next, inst, entry) { ogs_metrics_inst_free(inst); diff --git a/lib/sbi/context.h b/lib/sbi/context.h index 40db75ff5..6aba80529 100644 --- a/lib/sbi/context.h +++ b/lib/sbi/context.h @@ -49,7 +49,7 @@ typedef struct ogs_sbi_discovery_config_s { typedef struct ogs_sbi_context_s { ogs_sbi_discovery_config_t discovery_config; /* SCP Discovery Delegated */ - uint32_t sbi_port; /* SBI local port */ + uint16_t sbi_port; /* SBI local port */ ogs_list_t server_list; ogs_list_t client_list; diff --git a/meson.build b/meson.build index 8540c3119..1b59f4525 100644 --- a/meson.build +++ b/meson.build @@ -20,6 +20,7 @@ project('open5gs', 'c', 'cpp', license : 'AGPL-3.0-or-later', meson_version : '>= 0.43.0', default_options : [ + 'warning_level=1', 'c_std=gnu89', ], ) @@ -32,6 +33,8 @@ libdir = join_paths(prefix, get_option('libdir')) sysconfdir = join_paths(prefix, get_option('sysconfdir')) localstatedir = join_paths(prefix, get_option('localstatedir')) +open5gs_build_dir = meson.current_build_dir() + cc = meson.get_compiler('c') host_system = host_machine.system() @@ -39,8 +42,13 @@ git = find_program('git', required: false) #python = import('python') #python3 = python.find_installation('python3') python3 = find_program('python3', 'python') +if meson.version().version_compare('>=0.55.0') +python3_exe = join_paths(python3.full_path()) +else python3_exe = join_paths(python3.path()) +endif mkdir_p = 'import os; os.makedirs("@0@", exist_ok=True) if not os.environ.get("DESTDIR") else False;' +symlink = 'import os; os.symlink("@0@", "@1@") if not os.environ.get("DESTDIR") and not os.path.islink("@1@") else False;' install_conf = 'import os; import shutil; shutil.copy("@0@", "@1@") if not os.environ.get("DESTDIR") and not os.path.isfile(os.path.join("@1@", os.path.split("@0@")[1])) else False;' cppcheck = find_program('cppcheck', required: false) clangtidy = find_program('run-clang-tidy', required: false) # requires clang-tools package @@ -48,7 +56,6 @@ if clangtidy.found() != true clangtidy = find_program('clang-tidy', required: false) endif - meson.add_install_script(python3_exe, '-c', mkdir_p.format(join_paths(localstatedir, 'log', 'open5gs'))) @@ -57,7 +64,6 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang' possible_cc_flags = [ '-Wextra', '-Wlogical-op', - '-Werror=missing-include-dirs', '-Werror=pointer-arith', '-Werror=init-self', '-Wfloat-equal', @@ -132,7 +138,8 @@ message('\n'.join([ ' bindir: ' + bindir, ' sysconfdir: ' + sysconfdir, ' localstatedir: ' + localstatedir, - ' source code location: ' + meson.source_root(), + ' build location: ' + meson.current_build_dir(), + ' source location: ' + meson.current_source_dir(), ' compiler: ' + cc.get_id(), ' debugging support: ' + get_option('buildtype'), '', @@ -142,9 +149,10 @@ message('\n'.join([ if cppcheck.found() run_target('analyze-cppcheck', command : [ 'misc/static_code_analyze.sh', - cppcheck.path(), - meson.build_root(), - meson.source_root() + meson.version().version_compare('>=0.55.0') ? + cppcheck.full_path() : cppcheck.path(), + meson.current_build_dir(), + meson.current_source_dir() ] ) endif @@ -152,9 +160,10 @@ endif if clangtidy.found() run_target('analyze-clang-tidy', command : [ 'misc/static_code_analyze.sh', - clangtidy.path(), - meson.build_root(), - meson.source_root() + meson.version().version_compare('>=0.55.0') ? + clangtidy.full_path() : clangtidy.path(), + meson.current_build_dir(), + meson.current_source_dir() ] ) endif diff --git a/meson_options.txt b/meson_options.txt deleted file mode 100644 index 9350a6b8f..000000000 --- a/meson_options.txt +++ /dev/null @@ -1 +0,0 @@ -option('metrics_impl', type : 'combo', choices : ['void', 'prometheus'], value : 'void', description : 'libogsmetrics implementation') diff --git a/src/amf/metrics.c b/src/amf/metrics.c index a3181291f..cf4af120e 100644 --- a/src/amf/metrics.c +++ b/src/amf/metrics.c @@ -65,12 +65,12 @@ amf_metrics_spec_def_t amf_metrics_spec_def_global[_AMF_METR_GLOB_MAX] = { .description = "gNodeBs", }, }; -static int amf_metrics_init_inst_global(void) +int amf_metrics_init_inst_global(void) { return amf_metrics_init_inst(amf_metrics_inst_global, amf_metrics_spec_global, _AMF_METR_GLOB_MAX, 0, NULL); } -static int amf_metrics_free_inst_global(void) +int amf_metrics_free_inst_global(void) { return amf_metrics_free_inst(amf_metrics_inst_global, _AMF_METR_GLOB_MAX); } @@ -90,7 +90,6 @@ int amf_metrics_open(void) int amf_metrics_close(void) { ogs_metrics_context_t *ctx = ogs_metrics_self(); - amf_metrics_free_inst_global(); ogs_metrics_context_close(ctx); return OGS_OK; -} \ No newline at end of file +} diff --git a/src/amf/metrics.h b/src/amf/metrics.h index 291b65845..fd9ef735e 100644 --- a/src/amf/metrics.h +++ b/src/amf/metrics.h @@ -15,6 +15,9 @@ typedef enum amf_metric_type_global_s { } amf_metric_type_global_t; extern ogs_metrics_inst_t *amf_metrics_inst_global[_AMF_METR_GLOB_MAX]; +int amf_metrics_init_inst_global(void); +int amf_metrics_free_inst_global(void); + static inline void amf_metrics_inst_global_set(amf_metric_type_global_t t, int val) { ogs_metrics_inst_set(amf_metrics_inst_global[t], val); } static inline void amf_metrics_inst_global_add(amf_metric_type_global_t t, int val) diff --git a/src/meson.build b/src/meson.build index d53fce06b..d313b6932 100644 --- a/src/meson.build +++ b/src/meson.build @@ -19,7 +19,11 @@ srcinc = include_directories('.') package_version = 'v' + meson.project_version() if git.found() - git_version = run_command('git', ['describe', '--abbrev=7', '--dirty=+']) + if meson.version().version_compare('>=0.47.0') + git_version = run_command('git', ['describe', '--abbrev=7', '--dirty=+'], check: false) + else + git_version = run_command('git', ['describe', '--abbrev=7', '--dirty=+']) + endif if git_version.returncode() == 0 package_version = git_version.stdout().strip() endif diff --git a/src/mme/metrics.c b/src/mme/metrics.c index 76c336407..e6a3f5f90 100644 --- a/src/mme/metrics.c +++ b/src/mme/metrics.c @@ -65,12 +65,12 @@ mme_metrics_spec_def_t mme_metrics_spec_def_global[_MME_METR_GLOB_MAX] = { .description = "eNodeBs", }, }; -static int mme_metrics_init_inst_global(void) +int mme_metrics_init_inst_global(void) { return mme_metrics_init_inst(mme_metrics_inst_global, mme_metrics_spec_global, _MME_METR_GLOB_MAX, 0, NULL); } -static int mme_metrics_free_inst_global(void) +int mme_metrics_free_inst_global(void) { return mme_metrics_free_inst(mme_metrics_inst_global, _MME_METR_GLOB_MAX); } @@ -90,7 +90,6 @@ int mme_metrics_open(void) int mme_metrics_close(void) { ogs_metrics_context_t *ctx = ogs_metrics_self(); - mme_metrics_free_inst_global(); ogs_metrics_context_close(ctx); return OGS_OK; } diff --git a/src/mme/metrics.h b/src/mme/metrics.h index 3fdcaa1e3..580315c45 100644 --- a/src/mme/metrics.h +++ b/src/mme/metrics.h @@ -16,6 +16,9 @@ typedef enum mme_metric_type_global_s { } mme_metric_type_global_t; extern ogs_metrics_inst_t *mme_metrics_inst_global[_MME_METR_GLOB_MAX]; +int mme_metrics_init_inst_global(void); +int mme_metrics_free_inst_global(void); + static inline void mme_metrics_inst_global_set(mme_metric_type_global_t t, int val) { ogs_metrics_inst_set(mme_metrics_inst_global[t], val); } static inline void mme_metrics_inst_global_add(mme_metric_type_global_t t, int val) diff --git a/src/mme/s1ap-handler.c b/src/mme/s1ap-handler.c index 530126f4d..0eaa3d1dd 100644 --- a/src/mme/s1ap-handler.c +++ b/src/mme/s1ap-handler.c @@ -1264,18 +1264,13 @@ void s1ap_handle_e_rab_setup_response( CriticalityDiagnostics->triggeringMessage; S1AP_Criticality_t *procedureCriticality = CriticalityDiagnostics->procedureCriticality; - if (procedureCode) { - ogs_debug("procedureCode: %lld", - (long long)procedureCode); - } - if (triggeringMessage) { - ogs_debug("triggeringMessage: %lld", - (long long)triggeringMessage); - } - if (procedureCriticality) { + if (procedureCode) + ogs_debug("procedureCode: %lld", (long long)*procedureCode); + if (triggeringMessage) + ogs_debug("triggeringMessage: %lld", (long long)*triggeringMessage); + if (procedureCriticality) ogs_debug("procedureCriticality: %lld", - (long long)procedureCriticality); - } + (long long)*procedureCriticality); } } diff --git a/src/smf/metrics.c b/src/smf/metrics.c index 2a85ef036..0604ad6c5 100644 --- a/src/smf/metrics.c +++ b/src/smf/metrics.c @@ -116,12 +116,12 @@ smf_metrics_spec_def_t smf_metrics_spec_def_global[_SMF_METR_GLOB_MAX] = { .description = "Active GTP peers", }, }; -static int smf_metrics_init_inst_global(void) +int smf_metrics_init_inst_global(void) { return smf_metrics_init_inst(smf_metrics_inst_global, smf_metrics_spec_global, _SMF_METR_GLOB_MAX, 0, NULL); } -static int smf_metrics_free_inst_global(void) +int smf_metrics_free_inst_global(void) { return smf_metrics_free_inst(smf_metrics_inst_global, _SMF_METR_GLOB_MAX); } @@ -195,7 +195,6 @@ int smf_metrics_open(void) int smf_metrics_close(void) { ogs_metrics_context_t *ctx = ogs_metrics_self(); - smf_metrics_free_inst_global(); ogs_metrics_context_close(ctx); return OGS_OK; } diff --git a/src/smf/metrics.h b/src/smf/metrics.h index c1971ba7a..94f75810d 100644 --- a/src/smf/metrics.h +++ b/src/smf/metrics.h @@ -25,6 +25,8 @@ typedef enum smf_metric_type_global_s { _SMF_METR_GLOB_MAX, } smf_metric_type_global_t; extern ogs_metrics_inst_t *smf_metrics_inst_global[_SMF_METR_GLOB_MAX]; +int smf_metrics_init_inst_global(void); +int smf_metrics_free_inst_global(void); static inline void smf_metrics_inst_global_set(smf_metric_type_global_t t, int val) { ogs_metrics_inst_set(smf_metrics_inst_global[t], val); } diff --git a/subprojects/prometheus-client-c.wrap b/subprojects/prometheus-client-c.wrap index 6627c0e45..2ee80f25d 100644 --- a/subprojects/prometheus-client-c.wrap +++ b/subprojects/prometheus-client-c.wrap @@ -1,7 +1,7 @@ [wrap-git] directory = prometheus-client-c url = https://github.com/open5gs/prometheus-client-c.git -revision = open5gs +revision = next [provide] dependency_names = libprom diff --git a/tests/app/meson.build b/tests/app/meson.build index bee11824e..30a7e6419 100644 --- a/tests/app/meson.build +++ b/tests/app/meson.build @@ -18,7 +18,7 @@ libtestapp_inc = include_directories('.') -libtestepc_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(meson.build_root()) +libtestepc_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(open5gs_build_dir) libtestepc_sources = files(''' epc-init.c @@ -46,7 +46,7 @@ executable('epc', include_directories : srcinc, dependencies : libtestepc_dep) -libtest5gc_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(meson.build_root()) +libtest5gc_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(open5gs_build_dir) libtest5gc_sources = files(''' 5gc-init.c @@ -74,7 +74,7 @@ executable('5gc', include_directories : srcinc, dependencies : libtest5gc_dep) -libtestapp_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(meson.build_root()) +libtestapp_cc_args = '-DDEFAULT_CONFIG_FILENAME="@0@/configs/sample.yaml"'.format(open5gs_build_dir) libtestapp_sources = files(''' app-init.c diff --git a/tests/common/meson.build b/tests/common/meson.build index b670aff25..39ed57639 100644 --- a/tests/common/meson.build +++ b/tests/common/meson.build @@ -16,7 +16,7 @@ # along with this program. If not, see . libtestcommon_conf = configuration_data() -libtestcommon_conf.set_quoted('MESON_BUILD_ROOT', meson.build_root()) +libtestcommon_conf.set_quoted('MESON_BUILD_ROOT', open5gs_build_dir) configure_file(output : 'test-config-private.h', configuration : libtestcommon_conf) diff --git a/tests/non3gpp/meson.build b/tests/non3gpp/meson.build index e58e63753..cc7946c82 100644 --- a/tests/non3gpp/meson.build +++ b/tests/non3gpp/meson.build @@ -32,7 +32,7 @@ testapp_non3gpp_sources = files(''' testapp_non3gpp_exe = executable('non3gpp', sources : testapp_non3gpp_sources, c_args : [testunit_core_cc_flags, - '-DFD_EXT_DIR="@0@"'.format(freediameter_extensions_builddir)], + '-DFD_EXT_DIR="@0@"'.format(build_subprojects_freeDiameter_extensions_dir)], dependencies : libtestepc_dep) test('non3gpp', testapp_non3gpp_exe, is_parallel : false, suite: 'epc') diff --git a/tests/volte/meson.build b/tests/volte/meson.build index c7b19168a..5b218d180 100644 --- a/tests/volte/meson.build +++ b/tests/volte/meson.build @@ -33,7 +33,7 @@ testapp_volte_sources = files(''' testapp_volte_exe = executable('volte', sources : testapp_volte_sources, c_args : [testunit_core_cc_flags, - '-DFD_EXT_DIR="@0@"'.format(freediameter_extensions_builddir)], + '-DFD_EXT_DIR="@0@"'.format(build_subprojects_freeDiameter_extensions_dir)], dependencies : libtestepc_dep) test('volte', testapp_volte_exe, is_parallel : false, suite: 'epc') diff --git a/vagrant/freebsd/Vagrantfile b/vagrant/freebsd/Vagrantfile index d8540390e..cd6beca8c 100644 --- a/vagrant/freebsd/Vagrantfile +++ b/vagrant/freebsd/Vagrantfile @@ -12,7 +12,7 @@ Vagrant.configure("2") do |config| # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. - config.vm.box = "freebsd/FreeBSD-11.4-STABLE" + config.vm.box = "freebsd/FreeBSD-13.1-STABLE" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs