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
6c0a907b
Commit
6c0a907b
authored
Mar 05, 2021
by
luhan Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
try to support 5G Phone
parent
6f0d879d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
33 deletions
+42
-33
etc/smf.conf
etc/smf.conf
+21
-21
src/smf_app/smf_config.cpp
src/smf_app/smf_config.cpp
+17
-8
src/smf_app/smf_procedure.cpp
src/smf_app/smf_procedure.cpp
+4
-4
No files found.
etc/smf.conf
View file @
6c0a907b
...
@@ -21,26 +21,26 @@
...
@@ -21,26 +21,26 @@
SMF
=
SMF
=
{
{
INSTANCE
=
@
INSTANCE
@
;
# 0 is the default
INSTANCE
=
0
;
# 0 is the default
PID_DIRECTORY
=
"
@PID_DIRECTORY@
"
;
# /var/run is the default
PID_DIRECTORY
=
"
/var/run
"
;
# /var/run is the default
INTERFACES
:
INTERFACES
:
{
{
N4
:
N4
:
{
{
# SMF binded interface for N4 communication (UPF)
# SMF binded interface for N4 communication (UPF)
INTERFACE_NAME
=
"
@SMF_INTERFACE_NAME_FOR_N4@
"
;
# YOUR NETWORK CONFIG HERE
INTERFACE_NAME
=
"
ens3
"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
IPV4_ADDRESS
=
"read"
;
};
};
SBI
:
SBI
:
{
{
# SMF binded interface for SBI interface (e.g., communication with AMF, UDM)
# SMF binded interface for SBI interface (e.g., communication with AMF, UDM)
INTERFACE_NAME
=
"
@SMF_INTERFACE_NAME_FOR_SBI@
"
;
# YOUR NETWORK CONFIG HERE
INTERFACE_NAME
=
"
ens3
"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
IPV4_ADDRESS
=
"read"
;
PORT
=
@
SMF_INTERFACE_PORT_FOR_SBI
@
;
# YOUR NETWORK CONFIG HERE (default: 80)
PORT
=
8889
;
# YOUR NETWORK CONFIG HERE (default: 80)
HTTP2_PORT
=
@
SMF_INTERFACE_HTTP2_PORT_FOR_SBI
@
;
# YOUR NETWORK CONFIG HERE
HTTP2_PORT
=
8890
;
# YOUR NETWORK CONFIG HERE
API_VERSION
=
"
@SMF_API_VERSION@
"
;
# YOUR SMF API VERSION CONFIG HERE
API_VERSION
=
"
v2
"
;
# YOUR SMF API VERSION CONFIG HERE
};
};
};
};
...
@@ -67,16 +67,16 @@ SMF =
...
@@ -67,16 +67,16 @@ SMF =
DNN_LIST
= (
DNN_LIST
= (
# IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDU_SESSION_TYPE choice in {IPv4, IPv6, IPv4v6}
# IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDU_SESSION_TYPE choice in {IPv4, IPv6, IPv4v6}
{
DNN_NI
=
"
default"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
0
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"
ims"
;
PDU_SESSION_TYPE
=
"IPv4IPv6"
;
IPV4_POOL
=
0
;
IPV6_POOL
=
0
},
{
DNN_NI
=
"c
arrier.com"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
1
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"c
tnet"
;
PDU_SESSION_TYPE
=
"IPv4IPv6"
;
IPV4_POOL
=
1
;
IPV6_POOL
=
1
},
{
DNN_NI
=
"apn2"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
2
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"apn2"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
2
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"apn3"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
3
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"apn3"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
3
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"apn4"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
4
;
IPV6_POOL
= -
1
}
{
DNN_NI
=
"apn4"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
4
;
IPV6_POOL
= -
1
}
);
);
# DNS address communicated to UEs
# DNS address communicated to UEs
DEFAULT_DNS_IPV4_ADDRESS
=
"
@DEFAULT_DNS_IPV4_ADDRESS@
"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_IPV4_ADDRESS
=
"
114.114.114.114
"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV4_ADDRESS
=
"
@DEFAULT_DNS_SEC_IPV4_ADDRESS@
"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV4_ADDRESS
=
"
114.114.114.114
"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_IPV6_ADDRESS
=
"2001:4860:4860::8888"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_IPV6_ADDRESS
=
"2001:4860:4860::8888"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV6_ADDRESS
=
"2001:4860:4860::8844"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV6_ADDRESS
=
"2001:4860:4860::8844"
;
# YOUR DNS CONFIG HERE
...
@@ -92,16 +92,16 @@ SMF =
...
@@ -92,16 +92,16 @@ SMF =
AMF
:
AMF
:
{
{
IPV4_ADDRESS
=
"
@AMF_IPV4_ADDRESS@
"
;
# YOUR AMF CONFIG HERE
IPV4_ADDRESS
=
"
192.168.122.197
"
;
# YOUR AMF CONFIG HERE
PORT
=
@
AMF_PORT
@
;
# YOUR AMF CONFIG HERE (default: 80)
PORT
=
8282
;
# YOUR AMF CONFIG HERE (default: 80)
API_VERSION
=
"
@AMF_API_VERSION@
"
;
# YOUR AMF API VERSION FOR SBI CONFIG HERE
API_VERSION
=
"
v2
"
;
# YOUR AMF API VERSION FOR SBI CONFIG HERE
};
};
UDM
:
UDM
:
{
{
IPV4_ADDRESS
=
"
@UDM_IPV4_ADDRESS@
"
;
# YOUR UDM CONFIG HERE
IPV4_ADDRESS
=
"
192.168.122.197
"
;
# YOUR UDM CONFIG HERE
PORT
=
@
UDM_PORT
@
;
# YOUR UDM CONFIG HERE (default: 80)
PORT
=
8181
;
# YOUR UDM CONFIG HERE (default: 80)
API_VERSION
=
"
@UDM_API_VERSION@
"
;
# YOUR UDM API VERSION FOR SBI CONFIG HERE
API_VERSION
=
"
v2
"
;
# YOUR UDM API VERSION FOR SBI CONFIG HERE
};
};
NRF
:
NRF
:
...
@@ -112,19 +112,19 @@ SMF =
...
@@ -112,19 +112,19 @@ SMF =
};
};
UPF_LIST
= (
UPF_LIST
= (
{
IPV4_ADDRESS
=
"
@UPF_IPV4_ADDRESS@
"
;}
# YOUR UPF CONFIG HERE
{
IPV4_ADDRESS
=
"
192.168.122.88
"
;}
# YOUR UPF CONFIG HERE
);
);
LOCAL_CONFIGURATION
:
LOCAL_CONFIGURATION
:
{
{
USE_LOCAL_CONFIGURATION
=
"yes"
;
USE_LOCAL_CONFIGURATION
=
"yes"
;
SESSION_MANAGEMENT_SUBSCRIPTION_LIST
= (
SESSION_MANAGEMENT_SUBSCRIPTION_LIST
= (
{
NSSAI_SST
=
222
,
NSSAI_SD
=
"123"
,
DNN
=
"default"
,
DEFAULT_SESSION_TYPE
=
"IPV4
"
,
DEFAULT_SSC_MODE
=
1
,
{
NSSAI_SST
=
1
,
NSSAI_SD
=
"0"
,
DNN
=
"ims"
,
DEFAULT_SESSION_TYPE
=
"IPV4V6
"
,
DEFAULT_SSC_MODE
=
1
,
QOS_PROFILE_5QI
=
6
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_5QI
=
6
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"20Mbps"
,
SESSION_AMBR_DL
=
"22Mbps"
},
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"20Mbps"
,
SESSION_AMBR_DL
=
"22Mbps"
},
{
NSSAI_SST
=
222
;
NSSAI_SD
=
"123"
,
DNN
=
"carrier.com"
,
DEFAULT_SESSION_TYPE
=
"IPV4
"
,
DEFAULT_SSC_MODE
=
1
,
{
NSSAI_SST
=
1
;
NSSAI_SD
=
"0"
,
DNN
=
"ctnet"
,
DEFAULT_SESSION_TYPE
=
"IPV4V6
"
,
DEFAULT_SSC_MODE
=
1
,
QOS_PROFILE_5QI
=
7
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_5QI
=
7
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"10
Mbps"
,
SESSION_AMBR_DL
=
"11
Mbps"
}
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"10
0Mbps"
,
SESSION_AMBR_DL
=
"110
Mbps"
}
);
);
};
};
...
...
src/smf_app/smf_config.cpp
View file @
6c0a907b
...
@@ -434,22 +434,31 @@ int smf_config::load(const string& config_file) {
...
@@ -434,22 +434,31 @@ int smf_config::load(const string& config_file) {
dnn
[
dnn_idx
].
dnn
=
astring
;
dnn
[
dnn_idx
].
dnn
=
astring
;
dnn
[
dnn_idx
].
dnn_label
=
EPC
::
Utility
::
dnn_label
(
astring
);
dnn
[
dnn_idx
].
dnn_label
=
EPC
::
Utility
::
dnn_label
(
astring
);
dnn_cfg
.
lookupValue
(
SMF_CONFIG_STRING_PDU_SESSION_TYPE
,
astring
);
dnn_cfg
.
lookupValue
(
SMF_CONFIG_STRING_PDU_SESSION_TYPE
,
astring
);
if
(
boost
::
iequals
(
astring
,
"IPv4"
))
{
Logger
::
smf_app
().
debug
(
"pdu session type : %s"
,
astring
.
c_str
());
if
(
!
astring
.
compare
(
"IPv4IPv6"
)){
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_IPV4
;
PDU_SESSION_TYPE_E_IPV4V6
;
}
else
if
(
boost
::
iequals
(
astring
,
"IPv6"
)
==
0
)
{
Logger
::
smf_app
().
debug
(
"0"
);
}
else
if
(
boost
::
equals
(
astring
,
"IPv4"
))
{
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_IPV6
;
PDU_SESSION_TYPE_E_IPV4
;
}
else
if
(
boost
::
iequals
(
astring
,
"IPv4IPv6"
)
==
0
)
{
Logger
::
smf_app
().
debug
(
"1"
);
}
else
if
(
boost
::
equals
(
astring
,
"IPv4IPv6"
)
==
0
)
{
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_IPV4V6
;
PDU_SESSION_TYPE_E_IPV4V6
;
}
else
if
(
boost
::
iequals
(
astring
,
"Unstructured"
)
==
0
)
{
Logger
::
smf_app
().
debug
(
"2"
);
}
else
if
(
boost
::
equals
(
astring
,
"IPv6"
)
==
0
)
{
Logger
::
smf_app
().
debug
(
"astring : %s"
,
astring
.
c_str
());
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_IPV6
;
Logger
::
smf_app
().
debug
(
"3"
);
}
else
if
(
boost
::
equals
(
astring
,
"Unstructured"
)
==
0
)
{
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_UNSTRUCTURED
;
PDU_SESSION_TYPE_E_UNSTRUCTURED
;
}
else
if
(
boost
::
i
equals
(
astring
,
"Ethernet"
)
==
0
)
{
}
else
if
(
boost
::
equals
(
astring
,
"Ethernet"
)
==
0
)
{
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_ETHERNET
;
PDU_SESSION_TYPE_E_ETHERNET
;
}
else
if
(
boost
::
i
equals
(
astring
,
"Reserved"
)
==
0
)
{
}
else
if
(
boost
::
equals
(
astring
,
"Reserved"
)
==
0
)
{
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
dnn
[
dnn_idx
].
pdu_session_type
.
pdu_session_type
=
PDU_SESSION_TYPE_E_RESERVED
;
PDU_SESSION_TYPE_E_RESERVED
;
}
else
{
}
else
{
...
...
src/smf_app/smf_procedure.cpp
View file @
6c0a907b
...
@@ -419,10 +419,10 @@ void session_create_sm_context_procedure::handle_itti_msg(
...
@@ -419,10 +419,10 @@ void session_create_sm_context_procedure::handle_itti_msg(
std
::
string
supi_str
=
n11_triggered_pending
->
res
.
get_supi_prefix
()
+
"-"
+
std
::
string
supi_str
=
n11_triggered_pending
->
res
.
get_supi_prefix
()
+
"-"
+
smf_supi_to_string
(
supi
);
smf_supi_to_string
(
supi
);
std
::
string
url
=
std
::
string
url
=
//
std::string(inet_ntoa(*((struct in_addr*)
std
::
string
(
inet_ntoa
(
*
((
struct
in_addr
*
)
//
&smf_cfg.amf_addr.ipv4_addr))) +
&
smf_cfg
.
amf_addr
.
ipv4_addr
)))
+
//
":" + std::to_string(smf_cfg.amf_addr.port) + NAMF_COMMUNICATION_BASE +
":"
+
std
::
to_string
(
smf_cfg
.
amf_addr
.
port
)
+
NAMF_COMMUNICATION_BASE
+
sps
.
get
()
->
get_amf_addr
()
+
NAMF_COMMUNICATION_BASE
+
//
sps.get()->get_amf_addr() + NAMF_COMMUNICATION_BASE +
smf_cfg
.
amf_addr
.
api_version
+
smf_cfg
.
amf_addr
.
api_version
+
fmt
::
format
(
fmt
::
format
(
NAMF_COMMUNICATION_N1N2_MESSAGE_TRANSFER_URL
,
supi_str
.
c_str
());
NAMF_COMMUNICATION_N1N2_MESSAGE_TRANSFER_URL
,
supi_str
.
c_str
());
...
...
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