open5gs/lib/sbi/types.h

169 lines
7.2 KiB
C

/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined(OGS_SBI_INSIDE) && !defined(OGS_SBI_COMPILATION)
#error "This header cannot be included directly."
#endif
#ifndef OGS_SBI_TYPES_H
#define OGS_SBI_TYPES_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
OGS_SBI_SERVICE_TYPE_NULL = 0,
OGS_SBI_SERVICE_TYPE_NNRF_NFM,
OGS_SBI_SERVICE_TYPE_NNRF_DISC,
OGS_SBI_SERVICE_TYPE_NNRF_OAUTH2,
OGS_SBI_SERVICE_TYPE_NUDM_SDM,
OGS_SBI_SERVICE_TYPE_NUDM_UECM,
OGS_SBI_SERVICE_TYPE_NUDM_UEAU,
OGS_SBI_SERVICE_TYPE_NUDM_EE,
OGS_SBI_SERVICE_TYPE_NUDM_PP,
OGS_SBI_SERVICE_TYPE_NUDM_NIDDAU,
OGS_SBI_SERVICE_TYPE_NUDM_MT,
OGS_SBI_SERVICE_TYPE_NAMF_COMM,
OGS_SBI_SERVICE_TYPE_NAMF_EVTS,
OGS_SBI_SERVICE_TYPE_NAMF_MT,
OGS_SBI_SERVICE_TYPE_NAMF_LOC,
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION,
OGS_SBI_SERVICE_TYPE_NSMF_EVENT_EXPOSURE,
OGS_SBI_SERVICE_TYPE_NSMF_NIDD,
OGS_SBI_SERVICE_TYPE_NAUSF_AUTH,
OGS_SBI_SERVICE_TYPE_NAUSF_SORPROTECTION,
OGS_SBI_SERVICE_TYPE_NAUSF_UPUPROTECTION,
OGS_SBI_SERVICE_TYPE_NNEF_PFDMANAGEMENT,
OGS_SBI_SERVICE_TYPE_NNEF_SMCONTEXT,
OGS_SBI_SERVICE_TYPE_NNEF_EVENTEXPOSURE,
OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL,
OGS_SBI_SERVICE_TYPE_NPCF_SMPOLICYCONTROL,
OGS_SBI_SERVICE_TYPE_NPCF_POLICYAUTHORIZATION,
OGS_SBI_SERVICE_TYPE_NPCF_BDTPOLICYCONTROL,
OGS_SBI_SERVICE_TYPE_NPCF_EVENTEXPOSURE,
OGS_SBI_SERVICE_TYPE_NPCF_UE_POLICY_CONTROL,
OGS_SBI_SERVICE_TYPE_NSMSF_SMS,
OGS_SBI_SERVICE_TYPE_NNSSF_NSSELECTION,
OGS_SBI_SERVICE_TYPE_NNSSF_NSSAIAVAILABILITY,
OGS_SBI_SERVICE_TYPE_NUDR_DR,
OGS_SBI_SERVICE_TYPE_NUDR_GROUP_ID_MAP,
OGS_SBI_SERVICE_TYPE_NLMF_LOC,
OGS_SBI_SERVICE_TYPE_N5G_EIR_EIC,
OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT,
OGS_SBI_SERVICE_TYPE_NCHF_SPENDINGLIMITCONTROL,
OGS_SBI_SERVICE_TYPE_NCHF_CONVERGEDCHARGING,
OGS_SBI_SERVICE_TYPE_NCHF_OFFLINEONLYCHARGING,
OGS_SBI_SERVICE_TYPE_NNWDAF_EVENTSSUBSCRIPTION,
OGS_SBI_SERVICE_TYPE_NNWDAF_ANALYTICSINFO,
OGS_SBI_SERVICE_TYPE_NGMLC_LOC,
OGS_SBI_SERVICE_TYPE_NUCMF_PROVISIONING,
OGS_SBI_SERVICE_TYPE_NUCMF_UECAPABILITYMANAGEMENT,
OGS_SBI_SERVICE_TYPE_NHSS_SDM,
OGS_SBI_SERVICE_TYPE_NHSS_UECM,
OGS_SBI_SERVICE_TYPE_NHSS_UEAU,
OGS_SBI_SERVICE_TYPE_NHSS_EE,
OGS_SBI_SERVICE_TYPE_NHSS_IMS_SDM,
OGS_SBI_SERVICE_TYPE_NHSS_IMS_UECM,
OGS_SBI_SERVICE_TYPE_NHSS_IMS_UEAU,
OGS_SBI_SERVICE_TYPE_NSEPP_TELESCOPIC,
OGS_SBI_SERVICE_TYPE_NSORAF_SOR,
OGS_SBI_SERVICE_TYPE_NSPAF_SECURED_PACKET,
OGS_SBI_SERVICE_TYPE_NUDSF_DR,
OGS_SBI_SERVICE_TYPE_NNSSAAF_NSSAA,
OGS_SBI_MAX_NUM_OF_SERVICE_TYPE,
} ogs_sbi_service_type_e;
#define OGS_SBI_SERVICE_NAME_NNRF_NFM "nnrf-nfm"
#define OGS_SBI_SERVICE_NAME_NNRF_DISC "nnrf-disc"
#define OGS_SBI_SERVICE_NAME_NNRF_OAUTH2 "nnrf-oauth2"
#define OGS_SBI_SERVICE_NAME_NUDM_SDM "nudm-sdm"
#define OGS_SBI_SERVICE_NAME_NUDM_UECM "nudm-uecm"
#define OGS_SBI_SERVICE_NAME_NUDM_UEAU "nudm-ueau"
#define OGS_SBI_SERVICE_NAME_NUDM_EE "nudm-ee"
#define OGS_SBI_SERVICE_NAME_NUDM_PP "nudm-pp"
#define OGS_SBI_SERVICE_NAME_NUDM_NIDDAU "nudm-niddau"
#define OGS_SBI_SERVICE_NAME_NUDM_MT "nudm-mt"
#define OGS_SBI_SERVICE_NAME_NAMF_COMM "namf-comm"
#define OGS_SBI_SERVICE_NAME_NAMF_EVTS "namf-evts"
#define OGS_SBI_SERVICE_NAME_NAMF_MT "namf-mt"
#define OGS_SBI_SERVICE_NAME_NAMF_LOC "namf-loc"
#define OGS_SBI_SERVICE_NAME_NSMF_PDUSESSION "nsmf-pdusession"
#define OGS_SBI_SERVICE_NAME_NSMF_EVENT_EXPOSURE "nsmf-event-exposure"
#define OGS_SBI_SERVICE_NAME_NSMF_NIDD "nsmf-nidd"
#define OGS_SBI_SERVICE_NAME_NAUSF_AUTH "nausf-auth"
#define OGS_SBI_SERVICE_NAME_NAUSF_SORPROTECTION "nausf-sorprotection"
#define OGS_SBI_SERVICE_NAME_NAUSF_UPUPROTECTION "nausf-upuprotection"
#define OGS_SBI_SERVICE_NAME_NNEF_PFDMANAGEMENT "nnef-pfdmanagement"
#define OGS_SBI_SERVICE_NAME_NNEF_SMCONTEXT "nnef-smcontext"
#define OGS_SBI_SERVICE_NAME_NNEF_EVENTEXPOSURE "nnef-eventexposure"
#define OGS_SBI_SERVICE_NAME_NPCF_AM_POLICY_CONTROL "npcf-am-policy-control"
#define OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL "npcf-smpolicycontrol"
#define OGS_SBI_SERVICE_NAME_NPCF_POLICYAUTHORIZATION "npcf-policyauthorization"
#define OGS_SBI_SERVICE_NAME_NPCF_BDTPOLICYCONTROL "npcf-bdtpolicycontrol"
#define OGS_SBI_SERVICE_NAME_NPCF_EVENTEXPOSURE "npcf-eventexposure"
#define OGS_SBI_SERVICE_NAME_NPCF_UE_POLICY_CONTROL "npcf-ue-policy-control"
#define OGS_SBI_SERVICE_NAME_NSMSF_SMS "nsmsf-sms"
#define OGS_SBI_SERVICE_NAME_NNSSF_NSSELECTION "nnssf-nsselection"
#define OGS_SBI_SERVICE_NAME_NNSSF_NSSAIAVAILABILITY "nnssf-nssaiavailability"
#define OGS_SBI_SERVICE_NAME_NUDR_DR "nudr-dr"
#define OGS_SBI_SERVICE_NAME_NUDR_GROUP_ID_MAP "nudr-group-id-map"
#define OGS_SBI_SERVICE_NAME_NLMF_LOC "nlmf-loc"
#define OGS_SBI_SERVICE_NAME_N5G_EIR_EIC "n5g-eir-eic"
#define OGS_SBI_SERVICE_NAME_NBSF_MANAGEMENT "nbsf-management"
#define OGS_SBI_SERVICE_NAME_NCHF_SPENDINGLIMITCONTROL \
"nchf-spendinglimitcontrol"
#define OGS_SBI_SERVICE_NAME_NCHF_CONVERGEDCHARGING "nchf-convergedcharging"
#define OGS_SBI_SERVICE_NAME_NCHF_OFFLINEONLYCHARGING "nchf-offlineonlycharging"
#define OGS_SBI_SERVICE_NAME_NNWDAF_EVENTSSUBSCRIPTION \
"nnwdaf-eventssubscription"
#define OGS_SBI_SERVICE_NAME_NNWDAF_ANALYTICSINFO "nnwdaf-analyticsinfo"
#define OGS_SBI_SERVICE_NAME_NGMLC_LOC "ngmlc-loc"
#define OGS_SBI_SERVICE_NAME_NUCMF_PROVISIONING "nucmf-provisioning"
#define OGS_SBI_SERVICE_NAME_NUCMF_UECAPABILITYMANAGEMENT \
"nucmf-uecapabilitymanagement"
#define OGS_SBI_SERVICE_NAME_NHSS_SDM "nhss-sdm"
#define OGS_SBI_SERVICE_NAME_NHSS_UECM "nhss-uecm"
#define OGS_SBI_SERVICE_NAME_NHSS_UEAU "nhss-ueau"
#define OGS_SBI_SERVICE_NAME_NHSS_EE "nhss-ee"
#define OGS_SBI_SERVICE_NAME_NHSS_IMS_SDM "nhss-ims-sdm"
#define OGS_SBI_SERVICE_NAME_NHSS_IMS_UECM "nhss-ims-uecm"
#define OGS_SBI_SERVICE_NAME_NHSS_IMS_UEAU "nhss-ims-ueau"
#define OGS_SBI_SERVICE_NAME_NSEPP_TELESCOPIC "nsepp-telescopic"
#define OGS_SBI_SERVICE_NAME_NSORAF_SOR "nsoraf-sor"
#define OGS_SBI_SERVICE_NAME_NSPAF_SECURED_PACKET "nspaf-secured-packet"
#define OGS_SBI_SERVICE_NAME_NUDSF_DR "nudsf-dr"
#define OGS_SBI_SERVICE_NAME_NNSSAAF_NSSAA "nnssaaf-nssaa"
#define OGS_SBI_SERVICE_NAME_NAMF_CALLBACK "namf-callback"
#define OGS_SBI_SERVICE_NAME_NSMF_CALLBACK "nsmf-callback"
OpenAPI_nf_type_e ogs_sbi_service_type_to_nf_type(
ogs_sbi_service_type_e service_type);
const char *ogs_sbi_service_type_to_name(ogs_sbi_service_type_e service_type);
ogs_sbi_service_type_e ogs_sbi_service_type_from_name(const char *service_name);
#ifdef __cplusplus
}
#endif
#endif /* OGS_SBI_TYPES_H */