Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-SMF
Commits
5a94d11f
Unverified
Commit
5a94d11f
authored
Sep 11, 2021
by
kharade
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use common SBI flag for http version
parent
a9b5db1e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
25 deletions
+22
-25
etc/smf.conf
etc/smf.conf
+1
-1
src/api-server/smf-http2-server.cpp
src/api-server/smf-http2-server.cpp
+9
-10
src/smf_app/smf_app.cpp
src/smf_app/smf_app.cpp
+5
-5
src/smf_app/smf_config.cpp
src/smf_app/smf_config.cpp
+5
-8
src/smf_app/smf_config.hpp
src/smf_app/smf_config.hpp
+2
-1
No files found.
etc/smf.conf
View file @
5a94d11f
...
@@ -89,6 +89,7 @@ SMF =
...
@@ -89,6 +89,7 @@ SMF =
# but you may need to set to yes for UE that do not explicitly request a PDN address through NAS signalling
# but you may need to set to yes for UE that do not explicitly request a PDN address through NAS signalling
USE_LOCAL_SUBSCRIPTION_INFO
=
"yes"
;
# Set to yes if SMF uses local subscription information instead of from an UDM
USE_LOCAL_SUBSCRIPTION_INFO
=
"yes"
;
# Set to yes if SMF uses local subscription information instead of from an UDM
USE_FQDN_DNS
=
"@USE_FQDN_DNS@"
;
# Set to yes if AMF/UDM/NRF/UPF will relying on a DNS to resolve FQDN
USE_FQDN_DNS
=
"@USE_FQDN_DNS@"
;
# Set to yes if AMF/UDM/NRF/UPF will relying on a DNS to resolve FQDN
HTTP_VERSION
= @
HTTP_VERSION
@;
# YOUR NRF CONFIG HERE (default: 1)
}
}
AMF
:
AMF
:
...
@@ -111,7 +112,6 @@ SMF =
...
@@ -111,7 +112,6 @@ SMF =
{
{
IPV4_ADDRESS
=
"@NRF_IPV4_ADDRESS@"
;
# YOUR NRF CONFIG HERE
IPV4_ADDRESS
=
"@NRF_IPV4_ADDRESS@"
;
# YOUR NRF CONFIG HERE
PORT
= @
NRF_PORT
@;
# YOUR NRF CONFIG HERE (default: 80)
PORT
= @
NRF_PORT
@;
# YOUR NRF CONFIG HERE (default: 80)
HTTP_VERSION
= @
HTTP_VERSION
@;
# YOUR NRF CONFIG HERE (default: 1)
API_VERSION
=
"@NRF_API_VERSION@"
;
# YOUR NRF API VERSION FOR SBI CONFIG HERE
API_VERSION
=
"@NRF_API_VERSION@"
;
# YOUR NRF API VERSION FOR SBI CONFIG HERE
FQDN
=
"@NRF_FQDN@"
# YOUR NRF FQDN CONFIG HERE
FQDN
=
"@NRF_FQDN@"
# YOUR NRF FQDN CONFIG HERE
};
};
...
...
src/api-server/smf-http2-server.cpp
View file @
5a94d11f
...
@@ -561,7 +561,7 @@ void smf_http2_server::nf_status_notify_handler(
...
@@ -561,7 +561,7 @@ void smf_http2_server::nf_status_notify_handler(
smf
::
data_notification_msg
notification_msg
=
{};
smf
::
data_notification_msg
notification_msg
=
{};
nlohmann
::
json
json_data
=
{};
nlohmann
::
json
json_data
=
{};
std
::
string
content_type
=
"application/json"
;
std
::
string
content_type
=
"application/
problem+
json"
;
// convert from NotificationData to data_notification_msg
// convert from NotificationData to data_notification_msg
xgpp_conv
::
data_notification_from_openapi
(
notificationData
,
notification_msg
);
xgpp_conv
::
data_notification_from_openapi
(
notificationData
,
notification_msg
);
...
@@ -570,23 +570,22 @@ void smf_http2_server::nf_status_notify_handler(
...
@@ -570,23 +570,22 @@ void smf_http2_server::nf_status_notify_handler(
std
::
shared_ptr
<
itti_sbi_notification_data
>
itti_msg
=
std
::
shared_ptr
<
itti_sbi_notification_data
>
itti_msg
=
std
::
make_shared
<
itti_sbi_notification_data
>
(
TASK_SMF_SBI
,
TASK_SMF_APP
);
std
::
make_shared
<
itti_sbi_notification_data
>
(
TASK_SMF_SBI
,
TASK_SMF_APP
);
itti_msg
->
notification_msg
=
notification_msg
;
itti_msg
->
notification_msg
=
notification_msg
;
itti_msg
->
http_version
=
1
;
itti_msg
->
http_version
=
2
;
ProblemDetails
problem_details
=
{};
ProblemDetails
problem_details
=
{};
uint8_t
http_code
=
0
;
uint8_t
http_code
=
0
;
header_map
h
;
header_map
h
;
h
.
emplace
(
"location"
,
header_value
{
m_address
+
"/nsmf-nfstatus-notify/v1/subscriptions"
});
h
.
emplace
(
"content-type"
,
header_value
{
content_type
});
response
.
write_head
(
http_code
,
h
);
response
.
end
(
json_data
.
dump
().
c_str
());
if
(
m_smf_app
->
handle_nf_status_notification
(
if
(
m_smf_app
->
handle_nf_status_notification
(
itti_msg
,
problem_details
,
http_code
))
itti_msg
,
problem_details
,
http_code
))
{
http_code
=
204
;
response
.
write_head
(
http_code
,
h
);
response
.
end
();
response
.
end
();
else
}
else
{
to_json
(
json_data
,
problem_details
);
h
.
emplace
(
"content-type"
,
header_value
{
content_type
});
response
.
end
(
json_data
.
dump
().
c_str
());
response
.
end
(
json_data
.
dump
().
c_str
());
}
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
smf_http2_server
::
stop
()
{
void
smf_http2_server
::
stop
()
{
...
...
src/smf_app/smf_app.cpp
View file @
5a94d11f
...
@@ -1625,7 +1625,7 @@ void smf_app::timer_nrf_heartbeat_timeout(
...
@@ -1625,7 +1625,7 @@ void smf_app::timer_nrf_heartbeat_timeout(
patch_item
.
setValue
(
"REGISTERED"
);
patch_item
.
setValue
(
"REGISTERED"
);
itti_msg
->
patch_items
.
push_back
(
patch_item
);
itti_msg
->
patch_items
.
push_back
(
patch_item
);
itti_msg
->
smf_instance_id
=
smf_instance_id
;
itti_msg
->
smf_instance_id
=
smf_instance_id
;
itti_msg
->
http_version
=
smf_cfg
.
nrf_addr
.
http_version
;
itti_msg
->
http_version
=
smf_cfg
.
http_version
;
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
if
(
RETURNok
!=
ret
)
{
if
(
RETURNok
!=
ret
)
{
...
@@ -2072,7 +2072,7 @@ void smf_app::trigger_nf_registration_request() {
...
@@ -2072,7 +2072,7 @@ void smf_app::trigger_nf_registration_request() {
std
::
make_shared
<
itti_n11_register_nf_instance_request
>
(
std
::
make_shared
<
itti_n11_register_nf_instance_request
>
(
TASK_SMF_APP
,
TASK_SMF_SBI
);
TASK_SMF_APP
,
TASK_SMF_SBI
);
itti_msg
->
profile
=
nf_instance_profile
;
itti_msg
->
profile
=
nf_instance_profile
;
itti_msg
->
http_version
=
smf_cfg
.
nrf_addr
.
http_version
;
itti_msg
->
http_version
=
smf_cfg
.
http_version
;
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
if
(
RETURNok
!=
ret
)
{
if
(
RETURNok
!=
ret
)
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
error
(
...
@@ -2090,7 +2090,7 @@ void smf_app::trigger_nf_deregistration() {
...
@@ -2090,7 +2090,7 @@ void smf_app::trigger_nf_deregistration() {
std
::
make_shared
<
itti_n11_deregister_nf_instance
>
(
std
::
make_shared
<
itti_n11_deregister_nf_instance
>
(
TASK_SMF_APP
,
TASK_SMF_SBI
);
TASK_SMF_APP
,
TASK_SMF_SBI
);
itti_msg
->
smf_instance_id
=
smf_instance_id
;
itti_msg
->
smf_instance_id
=
smf_instance_id
;
itti_msg
->
http_version
=
smf_cfg
.
nrf_addr
.
http_version
;
itti_msg
->
http_version
=
smf_cfg
.
http_version
;
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
if
(
RETURNok
!=
ret
)
{
if
(
RETURNok
!=
ret
)
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
error
(
...
@@ -2111,7 +2111,7 @@ void smf_app::trigger_upf_status_notification_subscribe() {
...
@@ -2111,7 +2111,7 @@ void smf_app::trigger_upf_status_notification_subscribe() {
nlohmann
::
json
json_data
=
{};
nlohmann
::
json
json_data
=
{};
unsigned
int
port
=
smf_cfg
.
sbi
.
port
;
unsigned
int
port
=
smf_cfg
.
sbi
.
port
;
if
(
smf_cfg
.
nrf_addr
.
http_version
==
2
)
port
=
smf_cfg
.
sbi_http2_port
;
if
(
smf_cfg
.
http_version
==
2
)
port
=
smf_cfg
.
sbi_http2_port
;
// TODO: remove hardcoded values
// TODO: remove hardcoded values
json_data
[
"nfStatusNotificationUri"
]
=
json_data
[
"nfStatusNotificationUri"
]
=
std
::
string
(
inet_ntoa
(
*
((
struct
in_addr
*
)
&
smf_cfg
.
sbi
.
addr4
)))
+
":"
+
std
::
string
(
inet_ntoa
(
*
((
struct
in_addr
*
)
&
smf_cfg
.
sbi
.
addr4
)))
+
":"
+
...
@@ -2131,7 +2131,7 @@ void smf_app::trigger_upf_status_notification_subscribe() {
...
@@ -2131,7 +2131,7 @@ void smf_app::trigger_upf_status_notification_subscribe() {
itti_msg
->
url
=
url
;
itti_msg
->
url
=
url
;
itti_msg
->
json_data
=
json_data
;
itti_msg
->
json_data
=
json_data
;
itti_msg
->
http_version
=
smf_cfg
.
nrf_addr
.
http_version
;
itti_msg
->
http_version
=
smf_cfg
.
http_version
;
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
int
ret
=
itti_inst
->
send_msg
(
itti_msg
);
if
(
RETURNok
!=
ret
)
{
if
(
RETURNok
!=
ret
)
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
error
(
...
...
src/smf_app/smf_config.cpp
View file @
5a94d11f
...
@@ -560,6 +560,7 @@ int smf_config::load(const string& config_file) {
...
@@ -560,6 +560,7 @@ int smf_config::load(const string& config_file) {
const
Setting
&
support_features
=
const
Setting
&
support_features
=
smf_cfg
[
SMF_CONFIG_STRING_SUPPORT_FEATURES
];
smf_cfg
[
SMF_CONFIG_STRING_SUPPORT_FEATURES
];
string
opt
;
string
opt
;
unsigned
int
httpVersion
=
{
0
};
support_features
.
lookupValue
(
support_features
.
lookupValue
(
SMF_CONFIG_STRING_SUPPORT_FEATURES_REGISTER_NRF
,
opt
);
SMF_CONFIG_STRING_SUPPORT_FEATURES_REGISTER_NRF
,
opt
);
if
(
boost
::
iequals
(
opt
,
"yes"
))
{
if
(
boost
::
iequals
(
opt
,
"yes"
))
{
...
@@ -599,6 +600,10 @@ int smf_config::load(const string& config_file) {
...
@@ -599,6 +600,10 @@ int smf_config::load(const string& config_file) {
use_fqdn_dns
=
false
;
use_fqdn_dns
=
false
;
}
}
support_features
.
lookupValue
(
SMF_CONFIG_STRING_SUPPORT_FEATURES_SBI_HTTP_VERSION
,
httpVersion
);
http_version
=
httpVersion
;
}
catch
(
const
SettingNotFoundException
&
nfex
)
{
}
catch
(
const
SettingNotFoundException
&
nfex
)
{
Logger
::
smf_app
().
error
(
Logger
::
smf_app
().
error
(
"%s : %s, using defaults"
,
nfex
.
what
(),
nfex
.
getPath
());
"%s : %s, using defaults"
,
nfex
.
what
(),
nfex
.
getPath
());
...
@@ -760,16 +765,8 @@ int smf_config::load(const string& config_file) {
...
@@ -760,16 +765,8 @@ int smf_config::load(const string& config_file) {
const
Setting
&
nrf_cfg
=
smf_cfg
[
SMF_CONFIG_STRING_NRF
];
const
Setting
&
nrf_cfg
=
smf_cfg
[
SMF_CONFIG_STRING_NRF
];
struct
in_addr
nrf_ipv4_addr
=
{};
struct
in_addr
nrf_ipv4_addr
=
{};
unsigned
int
nrf_port
=
{
0
};
unsigned
int
nrf_port
=
{
0
};
unsigned
int
httpVersion
=
{
0
};
std
::
string
nrf_api_version
=
{};
std
::
string
nrf_api_version
=
{};
if
(
!
(
nrf_cfg
.
lookupValue
(
SMF_CONFIG_STRING_NRF_HTTP_VERSION
,
httpVersion
)))
{
Logger
::
smf_app
().
error
(
SMF_CONFIG_STRING_NRF_HTTP_VERSION
"failed"
);
throw
(
SMF_CONFIG_STRING_NRF_HTTP_VERSION
"failed"
);
}
nrf_addr
.
http_version
=
httpVersion
;
if
(
!
use_fqdn_dns
)
{
if
(
!
use_fqdn_dns
)
{
nrf_cfg
.
lookupValue
(
SMF_CONFIG_STRING_NRF_IPV4_ADDRESS
,
astring
);
nrf_cfg
.
lookupValue
(
SMF_CONFIG_STRING_NRF_IPV4_ADDRESS
,
astring
);
IPV4_STR_ADDR_TO_INADDR
(
IPV4_STR_ADDR_TO_INADDR
(
...
...
src/smf_app/smf_config.hpp
View file @
5a94d11f
...
@@ -110,7 +110,6 @@
...
@@ -110,7 +110,6 @@
#define SMF_CONFIG_STRING_NRF "NRF"
#define SMF_CONFIG_STRING_NRF "NRF"
#define SMF_CONFIG_STRING_NRF_IPV4_ADDRESS "IPV4_ADDRESS"
#define SMF_CONFIG_STRING_NRF_IPV4_ADDRESS "IPV4_ADDRESS"
#define SMF_CONFIG_STRING_NRF_PORT "PORT"
#define SMF_CONFIG_STRING_NRF_PORT "PORT"
#define SMF_CONFIG_STRING_NRF_HTTP_VERSION "HTTP_VERSION"
#define SMF_CONFIG_STRING_LOCAL_CONFIGURATION "LOCAL_CONFIGURATION"
#define SMF_CONFIG_STRING_LOCAL_CONFIGURATION "LOCAL_CONFIGURATION"
#define SMF_CONFIG_STRING_SESSION_MANAGEMENT_SUBSCRIPTION_LIST \
#define SMF_CONFIG_STRING_SESSION_MANAGEMENT_SUBSCRIPTION_LIST \
...
@@ -140,6 +139,7 @@
...
@@ -140,6 +139,7 @@
#define SMF_CONFIG_STRING_NAS_FORCE_PUSH_PCO \
#define SMF_CONFIG_STRING_NAS_FORCE_PUSH_PCO \
"FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS"
"FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS"
#define SMF_CONFIG_STRING_SUPPORT_FEATURES_USE_FQDN_DNS "USE_FQDN_DNS"
#define SMF_CONFIG_STRING_SUPPORT_FEATURES_USE_FQDN_DNS "USE_FQDN_DNS"
#define SMF_CONFIG_STRING_SUPPORT_FEATURES_SBI_HTTP_VERSION "HTTP_VERSION"
#define SMF_MAX_ALLOCATED_PDN_ADDRESSES 1024
#define SMF_MAX_ALLOCATED_PDN_ADDRESSES 1024
...
@@ -222,6 +222,7 @@ class smf_config {
...
@@ -222,6 +222,7 @@ class smf_config {
bool
discover_upf
;
bool
discover_upf
;
bool
use_local_subscription_info
;
bool
use_local_subscription_info
;
bool
use_fqdn_dns
;
bool
use_fqdn_dns
;
unsigned
int
http_version
;
struct
{
struct
{
struct
in_addr
ipv4_addr
;
struct
in_addr
ipv4_addr
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment