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
7dcfb78e
Commit
7dcfb78e
authored
Dec 25, 2023
by
liuyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
release
parent
ca1b91c0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
189 additions
and
516 deletions
+189
-516
.gitignore
.gitignore
+2
-1
smf.log
smf.log
+0
-393
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+25
-0
src/udp/cooudp.cpp
src/udp/cooudp.cpp
+162
-122
No files found.
.gitignore
View file @
7dcfb78e
...
@@ -36,4 +36,5 @@ archives
...
@@ -36,4 +36,5 @@ archives
src/oai_rules_result*
src/oai_rules_result*
test_results_oai_smf.html
test_results_oai_smf.html
.vscode
.vscode
build
build
\ No newline at end of file
*.log
\ No newline at end of file
smf.log
deleted
100644 → 0
View file @
ca1b91c0
[2023-12-19 09:25:48.889] [smf_app] [start] Options parsed
[2023-12-19 09:25:48.891] [smf_app] [info] SettingNotFoundException : SMF.ITTI_TASKS, using defaults
[2023-12-19 09:25:48.892] [smf_app] [info] SettingNotFoundException : SMF.INTERFACES.N4.SCHED_PARAMS, using defaults
[2023-12-19 09:25:48.892] [smf_app] [info] SettingNotFoundException : SMF.INTERFACES.SBI.SCHED_PARAMS, using defaults
[2023-12-19 09:25:48.893] [smf_app] [warning] Local PCC rules feature is not yet supported, the default values from the config file are used.
[2023-12-19 09:25:48.893] [smf_app] [debug] NWI config found for UP node:- Nwi access: access.oai.org , Nwi core: core.oai.org
[2023-12-19 09:25:48.893] [smf_app] [info] ==== OAI-CN5G SMF vBranch: liuyu_state Abrev. Hash: c4c3269b Date: Wed Dec 13 15:17:31 2023 +0800 ====
[2023-12-19 09:25:48.894] [smf_app] [info] Configuration SMF:
[2023-12-19 09:25:48.894] [smf_app] [info] - Instance ..............: 1
[2023-12-19 09:25:48.894] [smf_app] [info] - PID dir ...............: /var/run
[2023-12-19 09:25:48.894] [smf_app] [info] - N4 Networking:
[2023-12-19 09:25:48.894] [smf_app] [info] Interface name ......: ens18
[2023-12-19 09:25:48.894] [smf_app] [info] IPv4 Addr ...........: 10.103.239.31
[2023-12-19 09:25:48.894] [smf_app] [info] Port ................: 8805
[2023-12-19 09:25:48.894] [smf_app] [info] - SBI Networking:
[2023-12-19 09:25:48.894] [smf_app] [info] Interface name ......: ens18
[2023-12-19 09:25:48.894] [smf_app] [info] IPv4 Addr ...........: 10.103.239.31
[2023-12-19 09:25:48.894] [smf_app] [info] Port ................: 90
[2023-12-19 09:25:48.894] [smf_app] [info] HTTP2 port ..........: 9090
[2023-12-19 09:25:48.894] [smf_app] [info] API version..........: v1
[2023-12-19 09:25:48.894] [smf_app] [info] - AMF:
[2023-12-19 09:25:48.894] [smf_app] [info] IPv4 Addr ...........: 127.0.0.99
[2023-12-19 09:25:48.894] [smf_app] [info] Port ................: 8004
[2023-12-19 09:25:48.894] [smf_app] [info] API version .........: v1
[2023-12-19 09:25:48.894] [smf_app] [info] - UPF:
[2023-12-19 09:25:48.894] [smf_app] [info] IPv4 Addr ...........: 10.103.238.93
[2023-12-19 09:25:48.894] [smf_app] [info] - DEFAULT DNS:
[2023-12-19 09:25:48.894] [smf_app] [info] Primary DNS .........: 114.114.114.114
[2023-12-19 09:25:48.894] [smf_app] [info] Secondary DNS .......: 8.8.8.8
[2023-12-19 09:25:48.894] [smf_app] [info] Primary DNS v6 ......: 2001:4860:4860::8888
[2023-12-19 09:25:48.894] [smf_app] [info] Secondary DNS v6 ....: 2001:4860:4860::8844
[2023-12-19 09:25:48.894] [smf_app] [info] - CSCF:
[2023-12-19 09:25:48.894] [smf_app] [info] CSCF IPv4 ...........: 127.0.0.1
[2023-12-19 09:25:48.894] [smf_app] [info] CSCF IPv6 ...........: fe80::7915:f408:1787:db8b
[2023-12-19 09:25:48.894] [smf_app] [info] - Default UE MTU: 1500
[2023-12-19 09:25:48.894] [smf_app] [info] - Supported Features:
[2023-12-19 09:25:48.894] [smf_app] [info] Register to NRF.....................: No
[2023-12-19 09:25:48.894] [smf_app] [info] Discover UPF........................: No
[2023-12-19 09:25:48.894] [smf_app] [info] Discover PCF........................: No
[2023-12-19 09:25:48.896] [smf_app] [info] Use Local Subscription Configuration: Yes
[2023-12-19 09:25:48.896] [smf_app] [info] Use Local PCC Rules: ...............: Yes
[2023-12-19 09:25:48.896] [smf_app] [info] Push PCO (DNS+MTU)..................: No
[2023-12-19 09:25:48.897] [smf_app] [info] Use FQDN ...........................: No
[2023-12-19 09:25:48.897] [smf_app] [info] ENABLE USAGE REPORTING..............: No
[2023-12-19 09:25:48.897] [smf_app] [info] ENABLE DL PDR IN PFCP SESSION ESTAB.: No
[2023-12-19 09:25:48.897] [smf_app] [info] UPF N3 LOCAL ADDRESS ...............:
[2023-12-19 09:25:48.897] [smf_app] [info] - DNN configurations:
[2023-12-19 09:25:48.897] [smf_app] [info] DNN..........: ctnet (IPV4V6)
[2023-12-19 09:25:48.897] [smf_app] [info] IPv4 pool: 192.169.0.3 - 192.169.199.253
[2023-12-19 09:25:48.897] [smf_app] [info] IPv6 pool: 4001:1:2::/64
[2023-12-19 09:25:48.897] [smf_app] [info] DNN..........: default (IPV4)
[2023-12-19 09:25:48.897] [smf_app] [info] IPv4 pool: 192.169.0.3 - 192.169.199.253
[2023-12-19 09:25:48.897] [smf_app] [info] DNN..........: ims (IPV4V6)
[2023-12-19 09:25:48.897] [smf_app] [info] IPv4 pool: 192.169.200.2 - 192.169.255.253
[2023-12-19 09:25:48.897] [smf_app] [info] IPv6 pool: 3001:1:2::/64
[2023-12-19 09:25:48.897] [smf_app] [info] DNN..........: internet (IPV4)
[2023-12-19 09:25:48.897] [smf_app] [info] IPv4 pool: 192.169.0.3 - 192.169.199.253
[2023-12-19 09:25:48.897] [smf_app] [info] - Local Subscription Configuration:
[2023-12-19 09:25:48.897] [smf_app] [info] Session Management Subscription Data 0:
[2023-12-19 09:25:48.897] [smf_app] [info] SST: 1
[2023-12-19 09:25:48.897] [smf_app] [info] DNN: default
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SESSION_TYPE: IPv4
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SSC_MODE: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_5QI: 9
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTCAP: NOT_PREEMPT
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTVULN: NOT_PREEMPTABLE
[2023-12-19 09:25:48.897] [smf_app] [info] SESSION_AMBR_UL: 1000Mbps
[2023-12-19 09:25:48.897] [smf_app] [info] SESSION_AMBR_DL: 1000Mbps
[2023-12-19 09:25:48.897] [smf_app] [info] Session Management Subscription Data 1:
[2023-12-19 09:25:48.897] [smf_app] [info] SST: 1
[2023-12-19 09:25:48.897] [smf_app] [info] DNN: ims
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SESSION_TYPE: IPv4v6
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SSC_MODE: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_5QI: 5
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTCAP: NOT_PREEMPT
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTVULN: NOT_PREEMPTABLE
[2023-12-19 09:25:48.897] [smf_app] [info] SESSION_AMBR_UL: 100Mbps
[2023-12-19 09:25:48.897] [smf_app] [info] SESSION_AMBR_DL: 100Mbps
[2023-12-19 09:25:48.897] [smf_app] [info] Session Management Subscription Data 2:
[2023-12-19 09:25:48.897] [smf_app] [info] SST: 1
[2023-12-19 09:25:48.897] [smf_app] [info] DNN: ctnet
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SESSION_TYPE: IPv4v6
[2023-12-19 09:25:48.897] [smf_app] [info] DEFAULT_SSC_MODE: 1
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_5QI: 9
[2023-12-19 09:25:48.897] [smf_app] [info] QOS_PROFILE_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTCAP: NOT_PREEMPT
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTVULN: NOT_PREEMPTABLE
[2023-12-19 09:25:48.898] [smf_app] [info] SESSION_AMBR_UL: 1000Mbps
[2023-12-19 09:25:48.898] [smf_app] [info] SESSION_AMBR_DL: 1000Mbps
[2023-12-19 09:25:48.898] [smf_app] [info] Session Management Subscription Data 3:
[2023-12-19 09:25:48.898] [smf_app] [info] SST: 1
[2023-12-19 09:25:48.898] [smf_app] [info] DNN: internet
[2023-12-19 09:25:48.898] [smf_app] [info] DEFAULT_SESSION_TYPE: IPv4
[2023-12-19 09:25:48.898] [smf_app] [info] DEFAULT_SSC_MODE: 1
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_5QI: 9
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PRIORITY_LEVEL: 1
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTCAP: NOT_PREEMPT
[2023-12-19 09:25:48.898] [smf_app] [info] QOS_PROFILE_ARP_PREEMPTVULN: NOT_PREEMPTABLE
[2023-12-19 09:25:48.898] [smf_app] [info] SESSION_AMBR_UL: 1000Mbps
[2023-12-19 09:25:48.898] [smf_app] [info] SESSION_AMBR_DL: 1000Mbps
[2023-12-19 09:25:48.898] [smf_app] [info] - Log Level will be .......: debug
[2023-12-19 09:25:48.898] [itti ] [start] Starting...
[2023-12-19 09:25:48.899] [itti ] [start] Started
[2023-12-19 09:25:48.899] [itti ] [info] Starting timer_manager_task
[2023-12-19 09:25:48.899] [async ] [start] Starting...
[2023-12-19 09:25:48.901] [async ] [start] Started
[2023-12-19 09:25:48.902] [smf_app] [start] Starting...
[2023-12-19 09:25:48.902] [smf_app] [info] Apply config...
[2023-12-19 09:25:48.908] [smf_app] [info] Applied config ctnet
[2023-12-19 09:25:48.908] [smf_app] [info] PAA Ipv4: 192.169.0.3
[2023-12-19 09:25:48.908] [smf_app] [info] Applied config for IPv6 ctnet
[2023-12-19 09:25:48.912] [smf_app] [info] Applied config default
[2023-12-19 09:25:48.912] [smf_app] [info] PAA Ipv4: 192.169.0.3
[2023-12-19 09:25:48.914] [smf_app] [info] Applied config ims
[2023-12-19 09:25:48.914] [smf_app] [info] PAA Ipv4: 192.169.200.2
[2023-12-19 09:25:48.914] [smf_app] [info] Applied config for IPv6 ims
[2023-12-19 09:25:48.917] [smf_app] [info] Applied config internet
[2023-12-19 09:25:48.918] [smf_app] [info] PAA Ipv4: 192.169.0.3
[2023-12-19 09:25:48.918] [smf_app] [info] Applied config
[2023-12-19 09:25:48.920] [udp ] [debug] Creating new listen socket on address 10.103.239.31 and port 8805
[2023-12-19 09:25:48.920] [udp ] [debug] udp_server::udp_server(10.103.239.31:8805)
[2023-12-19 09:25:48.920] [udp ] [debug] Creating new listen socket on address 10.103.239.31 and port 0
[2023-12-19 09:25:48.921] [udp ] [debug] udp_server::udp_server(10.103.239.31:0)
[2023-12-19 09:25:48.921] [pfcp ] [info] pfcp_l4_stack created listening to 10.103.239.31:8805
[2023-12-19 09:25:48.922] [smf_n4 ] [start] Starting...
[2023-12-19 09:25:48.923] [smf_n4 ] [start] Started
[2023-12-19 09:25:48.924] [smf_sbi] [start] Starting...
[2023-12-19 09:25:48.926] [smf_sbi] [start] Started
[2023-12-19 09:25:48.926] [smf_app] [start] Started
start create socket
start
创建socket成功!
绑定成功!
start receive
绑定成功!5555 20001
start create socket
start
start receive udp_read_from_socket_to_center
创建socket成功!
绑定成功!
start receive
绑定成功!5555 20004
start create socket
start
start receive udp_read_from_socket_from_center
创建socket成功!
绑定成功!
start receive
绑定成功!5555 20023
start receive udp_read_from_peer_smf
[2023-12-19 09:25:48.931] [smf_api] [info] HTTP1 server started
[2023-12-19 09:25:49.031] [smf_app] [debug] Start a PFCP Association procedure with an UPF
[2023-12-19 09:25:49.031] [smf_app] [debug] Resolving an FQDN/IP Addr for an UPF node
[2023-12-19 09:25:49.031] [smf_app] [debug] Resolving an IP address (name 10.103.238.93)
[2023-12-19 09:25:49.031] [smf_app] [debug] Reverse Resolving Try #0
[2023-12-19 09:25:49.031] [smf_api] [info] HTTP2 server started
[2023-12-19 09:25:49.052] [smf_app] [debug] Resolve IP Addr 10.103.238.93, FQDN 10.103.238.93
[2023-12-19 09:25:49.068] [smf_n4 ] [info] handle_receive(36 bytes)
[2023-12-19 09:25:49.068] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 6 length 32
[2023-12-19 09:25:49.068] [smf_n4 ] [info] Received N4 ASSOCIATION SETUP RESPONSE from an UPF
[2023-12-19 09:25:49.068] [smf_n4 ] [info] Received N4 ASSOCIATION SETUP RESPONSE
[2023-12-19 09:25:49.068] [smf_app] [debug] Resolving an FQDN/IP Addr for an UPF node
[2023-12-19 09:25:49.068] [smf_app] [debug] Resolving an IP address (name 10.103.238.93)
[2023-12-19 09:25:49.068] [smf_app] [debug] Reverse Resolving Try #0
[2023-12-19 09:25:49.089] [smf_app] [debug] Resolve IP Addr 10.103.238.93, FQDN 10.103.238.93
[2023-12-19 09:25:49.089] [smf_app] [info] Cannot connect UPF to other nodes in the graph as it has no profile, just add the node
[2023-12-19 09:25:49.089] [smf_app] [info] Assume that the UPF has a N3 and a N6 interface.
[2023-12-19 09:25:49.090] [smf_app] [debug] Successfully added UPF node: , (1575905034)
[2023-12-19 09:25:49.090] [smf_app] [debug] Successfully added UPF graph edge for : N3(access.oai.org)
[2023-12-19 09:25:49.090] [smf_app] [debug] Successfully added UPF graph edge for : N6(core.oai.org)
[2023-12-19 09:25:49.090] [smf_app] [debug] UPF graph
[2023-12-19 09:25:49.090] [smf_app] [debug] * 1575905034 --> N3(access.oai.org), N6(core.oai.org),
[2023-12-19 09:25:49.090] [smf_app] [debug] NF instance info
[2023-12-19 09:25:49.090] [smf_app] [debug] Instance ID:
[2023-12-19 09:25:49.090] [smf_app] [debug] Instance name:
[2023-12-19 09:25:49.090] [smf_app] [debug] Instance type: UPF
[2023-12-19 09:25:49.090] [smf_app] [debug] Status:
[2023-12-19 09:25:49.090] [smf_app] [debug] HeartBeat timer: 0
[2023-12-19 09:25:49.090] [smf_app] [debug] Priority: 0
[2023-12-19 09:25:49.090] [smf_app] [debug] Capacity: 0
[2023-12-19 09:25:51.052] [smf_app] [debug] Resolving an FQDN/IP Addr for an UPF node
[2023-12-19 09:25:51.053] [smf_app] [debug] Resolving an IP address (name 10.103.238.93)
[2023-12-19 09:25:51.053] [smf_app] [debug] Reverse Resolving Try #0
[2023-12-19 09:25:51.057] [smf_app] [debug] Resolve IP Addr 10.103.238.93, FQDN 10.103.238.93
[2023-12-19 09:25:54.061] [smf_n4 ] [info] TIME-OUT event timer id 2
[2023-12-19 09:25:59.091] [smf_n4 ] [info] TIME-OUT event timer id 3
[2023-12-19 09:25:59.091] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:25:59.097] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:25:59.097] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:04.092] [smf_n4 ] [info] TIME-OUT event timer id 6
[2023-12-19 09:26:09.097] [smf_n4 ] [info] TIME-OUT event timer id 7
[2023-12-19 09:26:09.100] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:09.108] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:09.108] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:14.101] [smf_n4 ] [info] TIME-OUT event timer id 10
[2023-12-19 09:26:19.108] [smf_n4 ] [info] TIME-OUT event timer id 11
[2023-12-19 09:26:19.109] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:19.113] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:19.113] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:24.109] [smf_n4 ] [info] TIME-OUT event timer id 14
[2023-12-19 09:26:29.117] [smf_n4 ] [info] TIME-OUT event timer id 15
[2023-12-19 09:26:29.117] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:29.122] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:29.122] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:34.118] [smf_n4 ] [info] TIME-OUT event timer id 18
[2023-12-19 09:26:39.123] [smf_n4 ] [info] TIME-OUT event timer id 19
[2023-12-19 09:26:39.123] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:39.126] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:39.126] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:44.124] [smf_n4 ] [info] TIME-OUT event timer id 22
[2023-12-19 09:26:49.127] [smf_n4 ] [info] TIME-OUT event timer id 23
[2023-12-19 09:26:49.127] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:49.131] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:49.131] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:26:54.128] [smf_n4 ] [info] TIME-OUT event timer id 26
[2023-12-19 09:26:59.132] [smf_n4 ] [info] TIME-OUT event timer id 27
[2023-12-19 09:26:59.132] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:26:59.134] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:26:59.135] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:04.133] [smf_n4 ] [info] TIME-OUT event timer id 30
[2023-12-19 09:27:09.135] [smf_n4 ] [info] TIME-OUT event timer id 31
[2023-12-19 09:27:09.135] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:09.138] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:09.138] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:14.136] [smf_n4 ] [info] TIME-OUT event timer id 34
[2023-12-19 09:27:19.138] [smf_n4 ] [info] TIME-OUT event timer id 35
[2023-12-19 09:27:19.139] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:19.141] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:19.141] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:24.139] [smf_n4 ] [info] TIME-OUT event timer id 38
[2023-12-19 09:27:29.142] [smf_n4 ] [info] TIME-OUT event timer id 39
[2023-12-19 09:27:29.142] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:29.144] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:29.144] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:34.147] [smf_n4 ] [info] TIME-OUT event timer id 42
[2023-12-19 09:27:39.144] [smf_n4 ] [info] TIME-OUT event timer id 43
[2023-12-19 09:27:39.145] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:39.147] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:39.147] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:44.146] [smf_n4 ] [info] TIME-OUT event timer id 46
[2023-12-19 09:27:49.148] [smf_n4 ] [info] TIME-OUT event timer id 47
[2023-12-19 09:27:49.148] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:49.150] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:49.150] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:27:54.149] [smf_n4 ] [info] TIME-OUT event timer id 50
[2023-12-19 09:27:59.151] [smf_n4 ] [info] TIME-OUT event timer id 51
[2023-12-19 09:27:59.151] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:27:59.155] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:27:59.155] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:04.152] [smf_n4 ] [info] TIME-OUT event timer id 54
[2023-12-19 09:28:09.156] [smf_n4 ] [info] TIME-OUT event timer id 55
[2023-12-19 09:28:09.156] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:09.159] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:09.159] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:14.157] [smf_n4 ] [info] TIME-OUT event timer id 58
[2023-12-19 09:28:19.159] [smf_n4 ] [info] TIME-OUT event timer id 59
[2023-12-19 09:28:19.160] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:19.162] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:19.162] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:24.163] [smf_n4 ] [info] TIME-OUT event timer id 62
[2023-12-19 09:28:29.163] [smf_n4 ] [info] TIME-OUT event timer id 63
[2023-12-19 09:28:29.164] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:29.169] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:29.170] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:34.165] [smf_n4 ] [info] TIME-OUT event timer id 66
[2023-12-19 09:28:39.170] [smf_n4 ] [info] TIME-OUT event timer id 67
[2023-12-19 09:28:39.171] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:39.176] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:39.176] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:44.171] [smf_n4 ] [info] TIME-OUT event timer id 70
[2023-12-19 09:28:49.177] [smf_n4 ] [info] TIME-OUT event timer id 71
[2023-12-19 09:28:49.177] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:49.186] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:49.197] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:28:54.178] [smf_n4 ] [info] TIME-OUT event timer id 74
[2023-12-19 09:28:59.197] [smf_n4 ] [info] TIME-OUT event timer id 75
[2023-12-19 09:28:59.198] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:28:59.238] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:28:59.238] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:04.199] [smf_n4 ] [info] TIME-OUT event timer id 78
[2023-12-19 09:29:09.239] [smf_n4 ] [info] TIME-OUT event timer id 79
[2023-12-19 09:29:09.239] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:09.242] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:09.242] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:14.240] [smf_n4 ] [info] TIME-OUT event timer id 82
[2023-12-19 09:29:19.242] [smf_n4 ] [info] TIME-OUT event timer id 83
[2023-12-19 09:29:19.243] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:19.248] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:19.249] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:24.244] [smf_n4 ] [info] TIME-OUT event timer id 86
[2023-12-19 09:29:29.251] [smf_n4 ] [info] TIME-OUT event timer id 87
[2023-12-19 09:29:29.251] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:29.254] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:29.254] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:34.253] [smf_n4 ] [info] TIME-OUT event timer id 90
[2023-12-19 09:29:39.255] [smf_n4 ] [info] TIME-OUT event timer id 91
[2023-12-19 09:29:39.255] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:39.260] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:39.261] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:44.256] [smf_n4 ] [info] TIME-OUT event timer id 94
[2023-12-19 09:29:49.261] [smf_n4 ] [info] TIME-OUT event timer id 95
[2023-12-19 09:29:49.262] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:49.271] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:49.271] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:29:54.262] [smf_n4 ] [info] TIME-OUT event timer id 98
[2023-12-19 09:29:59.275] [smf_n4 ] [info] TIME-OUT event timer id 99
[2023-12-19 09:29:59.275] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:29:59.277] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:29:59.277] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:04.276] [smf_n4 ] [info] TIME-OUT event timer id 102
[2023-12-19 09:30:09.278] [smf_n4 ] [info] TIME-OUT event timer id 103
[2023-12-19 09:30:09.278] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:09.281] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:09.281] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:14.279] [smf_n4 ] [info] TIME-OUT event timer id 106
[2023-12-19 09:30:19.282] [smf_n4 ] [info] TIME-OUT event timer id 107
[2023-12-19 09:30:19.282] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:19.286] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:19.287] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:24.283] [smf_n4 ] [info] TIME-OUT event timer id 110
[2023-12-19 09:30:29.287] [smf_n4 ] [info] TIME-OUT event timer id 111
[2023-12-19 09:30:29.288] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:29.294] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:29.294] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:34.290] [smf_n4 ] [info] TIME-OUT event timer id 114
[2023-12-19 09:30:39.295] [smf_n4 ] [info] TIME-OUT event timer id 115
[2023-12-19 09:30:39.295] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:39.301] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:39.301] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:44.297] [smf_n4 ] [info] TIME-OUT event timer id 118
[2023-12-19 09:30:49.302] [smf_n4 ] [info] TIME-OUT event timer id 119
[2023-12-19 09:30:49.302] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:49.308] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:49.308] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:30:54.304] [smf_n4 ] [info] TIME-OUT event timer id 122
[2023-12-19 09:30:59.309] [smf_n4 ] [info] TIME-OUT event timer id 123
[2023-12-19 09:30:59.309] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:30:59.311] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:30:59.312] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:04.310] [smf_n4 ] [info] TIME-OUT event timer id 126
[2023-12-19 09:31:09.312] [smf_n4 ] [info] TIME-OUT event timer id 127
[2023-12-19 09:31:09.312] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:09.322] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:09.323] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:14.318] [smf_n4 ] [info] TIME-OUT event timer id 130
[2023-12-19 09:31:19.324] [smf_n4 ] [info] TIME-OUT event timer id 131
[2023-12-19 09:31:19.325] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:19.327] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:19.328] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:24.325] [smf_n4 ] [info] TIME-OUT event timer id 134
[2023-12-19 09:31:29.328] [smf_n4 ] [info] TIME-OUT event timer id 135
[2023-12-19 09:31:29.328] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:29.332] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:29.332] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:34.330] [smf_n4 ] [info] TIME-OUT event timer id 138
[2023-12-19 09:31:39.333] [smf_n4 ] [info] TIME-OUT event timer id 139
[2023-12-19 09:31:39.333] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:39.335] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:39.335] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:44.334] [smf_n4 ] [info] TIME-OUT event timer id 142
[2023-12-19 09:31:49.335] [smf_n4 ] [info] TIME-OUT event timer id 143
[2023-12-19 09:31:49.336] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:49.340] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:49.340] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:31:54.336] [smf_n4 ] [info] TIME-OUT event timer id 146
[2023-12-19 09:31:59.345] [smf_n4 ] [info] TIME-OUT event timer id 147
[2023-12-19 09:31:59.345] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:31:59.349] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:31:59.349] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:32:04.346] [smf_n4 ] [info] TIME-OUT event timer id 150
[2023-12-19 09:32:09.350] [smf_n4 ] [info] TIME-OUT event timer id 151
[2023-12-19 09:32:09.350] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:32:09.358] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:32:09.358] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:32:14.351] [smf_n4 ] [info] TIME-OUT event timer id 154
[2023-12-19 09:32:19.359] [smf_n4 ] [info] TIME-OUT event timer id 155
[2023-12-19 09:32:19.359] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:32:19.361] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:32:19.361] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
[2023-12-19 09:32:24.360] [smf_n4 ] [info] TIME-OUT event timer id 158
[2023-12-19 09:32:29.361] [smf_n4 ] [info] TIME-OUT event timer id 159
[2023-12-19 09:32:29.362] [smf_n4 ] [info] PFCP HEARTBEAT PROCEDURE hash 1575905034 starting
[2023-12-19 09:32:29.363] [smf_n4 ] [info] handle_receive(16 bytes)
[2023-12-19 09:32:29.364] [smf_n4 ] [debug] handle_receive_pfcp_msg msg type 2 length 12
src/smf_app/smf_context.cpp
View file @
7dcfb78e
...
@@ -5009,6 +5009,8 @@ void smf_context::send_pdu_session_create_response(
...
@@ -5009,6 +5009,8 @@ void smf_context::send_pdu_session_create_response(
udpsmfcontext
[
"up_fseid"
]
=
sp
.
get
()
->
up_fseid
.
seid
;
udpsmfcontext
[
"up_fseid"
]
=
sp
.
get
()
->
up_fseid
.
seid
;
udpsmfcontext
[
"seid"
]
=
sp
.
get
()
->
seid
;
udpsmfcontext
[
"seid"
]
=
sp
.
get
()
->
seid
;
udpsmfcontext
[
"ipv4_address"
]
=
inet_ntoa
(
sp
.
get
()
->
ipv4_address
);
udpsmfcontext
[
"ipv4_address"
]
=
inet_ntoa
(
sp
.
get
()
->
ipv4_address
);
udpsmfcontext
[
"direction"
]
=
"ground_to_satellite"
;
UdpSend_smf
(
udpsmfcontext
,
"10.103.239.31"
,
20023
);
UdpSend_smf
(
udpsmfcontext
,
"10.103.239.31"
,
20023
);
resp
->
res
.
set_json_data
(
json_data
);
resp
->
res
.
set_json_data
(
json_data
);
...
@@ -5075,6 +5077,29 @@ void smf_context::send_pdu_session_update_response(
...
@@ -5075,6 +5077,29 @@ void smf_context::send_pdu_session_update_response(
trigger_ddds
(
scid
,
1
);
trigger_ddds
(
scid
,
1
);
trigger_pdusesest
(
scid
,
1
);
trigger_pdusesest
(
scid
,
1
);
trigger_flexcn_event
(
scid
,
1
);
trigger_flexcn_event
(
scid
,
1
);
Logger
::
smf_app
().
info
(
"---------------liuyu--udpsend"
,
scid
);
nlohmann
::
json
udpsmfcontext_to_ground
;
udpsmfcontext_to_ground
[
"scid"
]
=
scid
;
// udpsmfcontext_to_ground["supi"] = smf_supi_to_string(resp->res.get_supi());
// udpsmfcontext_to_ground["pdu_session_id"] = resp->res.get_pdu_session_id();
// udpsmfcontext_to_ground["dnn"] = resp->res.get_dnn();
// udpsmfcontext_to_ground["snssai"] = resp->res.get_snssai().toString();
// udpsmfcontext_to_ground["pdu_session_type"] = 1;
// supi64_t supi64 = smf_supi_to_u64(resp->res.get_supi());
// std::shared_ptr<smf_context> sc = {};
// sc = smf_app_inst->supi_2_smf_context(supi64);
// std::shared_ptr<smf_pdu_session> sp = {};
// sc.get()->find_pdu_session(resp->res.get_pdu_session_id(), sp);
// udpsmfcontext_to_ground["up_fseid"] = sp.get()->up_fseid.seid;
// udpsmfcontext_to_ground["seid"] = sp.get()->seid;
// udpsmfcontext_to_ground["ipv4_address"] = inet_ntoa(sp.get()->ipv4_address);
udpsmfcontext_to_ground
[
"direction"
]
=
"satellite_to_ground"
;
UdpSend_smf
(
udpsmfcontext_to_ground
,
"10.103.239.47"
,
20023
);
}
break
;
}
break
;
// UE-Triggered Service Request Procedure (Step 1)
// UE-Triggered Service Request Procedure (Step 1)
...
...
src/udp/cooudp.cpp
View file @
7dcfb78e
...
@@ -150,128 +150,168 @@ int udp_server_coop::udp_read_from_peer_smf() {
...
@@ -150,128 +150,168 @@ int udp_server_coop::udp_read_from_peer_smf() {
bytes_received
=
recvfrom
(
serverSocket
,
(
void
*
)
udp_recv
,
UDP_RECV_BUFFER_SIZE
,
0
,
(
struct
sockaddr
*
)
&
r_endpoint
.
addr_storage
,
&
r_endpoint
.
addr_storage_len
);
bytes_received
=
recvfrom
(
serverSocket
,
(
void
*
)
udp_recv
,
UDP_RECV_BUFFER_SIZE
,
0
,
(
struct
sockaddr
*
)
&
r_endpoint
.
addr_storage
,
&
r_endpoint
.
addr_storage_len
);
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
if
(
bytes_received
>
0
){
if
(
bytes_received
>
0
){
printf
(
"smf receive context from ground smf
\n
"
);
std
::
string
received_data
(
reinterpret_cast
<
char
*>
(
udp_recv
),
bytes_received
);
std
::
string
received_data
(
reinterpret_cast
<
char
*>
(
udp_recv
),
bytes_received
);
nlohmann
::
json
smfcontext
=
nlohmann
::
json
::
parse
(
received_data
);
nlohmann
::
json
smfcontext
=
nlohmann
::
json
::
parse
(
received_data
);
supi_t
supi
=
{.
length
=
0
};
std
::
string
supiudp
=
smfcontext
[
"supi"
];
smf_string_to_supi
(
&
supi
,
supiudp
.
c_str
());
scid_t
scid
=
smfcontext
[
"scid"
];
std
::
shared_ptr
<
smf_context_ref
>
scf
=
{};
if
(
!
smf_app_inst
->
is_scid_2_smf_context
(
scid
))
{
Logger
::
smf_app
().
warn
(
"SM Context associated with this id "
SCID_FMT
" does not exit!"
,
scid
);
scf
=
std
::
shared_ptr
<
smf_context_ref
>
(
new
smf_context_ref
());
scf
.
get
()
->
supi
=
supi
;
scf
.
get
()
->
pdu_session_id
=
smfcontext
[
"pdu_session_id"
];
smf_app_inst
->
set_scid_2_smf_context
(
scid
,
scf
);
}
else
{
scf
=
smf_app_inst
->
scid_2_smf_context
(
scid
);
}
supi64_t
supi64
=
smf_supi_to_u64
(
supi
);
if
(
smfcontext
[
"direction"
]
==
"ground_to_satellite"
)
uint64_t
seid
=
smfcontext
[
"seid"
];
std
::
shared_ptr
<
smf_context
>
sc
=
{};
if
(
!
smf_app_inst
->
is_supi_2_smf_context
(
supi64
))
{
Logger
::
smf_app
().
debug
(
"Create a new SMF context with SUPI "
SUPI_64_FMT
""
,
supi64
);
sc
=
std
::
shared_ptr
<
smf_context
>
(
new
smf_context
());
sc
.
get
()
->
set_supi
(
supi
);
// sc.get()->set_supi_prefix(supi_prefix);
smf_app_inst
->
set_supi_2_smf_context
(
supi64
,
sc
);
// sc.get()->set_plmn(smreq->req.get_plmn()); // PLMN
smf_app_inst
->
set_seid_2_smf_context
(
seid
,
sc
);
}
else
{
{
sc
=
smf_app_inst
->
supi_2_smf_context
(
supi64
);
}
Logger
::
smf_app
().
info
(
"smf receive context from ground smf
\n
"
);
std
::
string
received_data
(
reinterpret_cast
<
char
*>
(
udp_recv
),
bytes_received
);
nlohmann
::
json
smfcontext
=
nlohmann
::
json
::
parse
(
received_data
);
supi_t
supi
=
{.
length
=
0
};
std
::
shared_ptr
<
smf_pdu_session
>
sp
=
{};
std
::
string
supiudp
=
smfcontext
[
"supi"
];
if
(
!
sc
.
get
()
->
find_pdu_session
(
scf
.
get
()
->
pdu_session_id
,
sp
))
{
smf_string_to_supi
(
&
supi
,
supiudp
.
c_str
());
Logger
::
smf_app
().
debug
(
"Create a new PDU session"
);
scid_t
scid
=
smfcontext
[
"scid"
];
sp
=
std
::
shared_ptr
<
smf_pdu_session
>
(
new
smf_pdu_session
(
scf
.
get
()
->
pdu_session_id
));
std
::
shared_ptr
<
smf_context_ref
>
scf
=
{};
sp
.
get
()
->
pdu_session_type
.
pdu_session_type
=
smfcontext
[
"pdu_session_type"
];
if
(
!
smf_app_inst
->
is_scid_2_smf_context
(
scid
))
{
sc
.
get
()
->
add_pdu_session
(
scf
.
get
()
->
pdu_session_id
,
sp
);
Logger
::
smf_app
().
warn
(
"SM Context associated with this id "
SCID_FMT
" does not exit!"
,
scid
);
scf
=
std
::
shared_ptr
<
smf_context_ref
>
(
new
smf_context_ref
());
scf
.
get
()
->
supi
=
supi
;
std
::
string
dnn
=
smfcontext
[
"dnn"
];
scf
.
get
()
->
pdu_session_id
=
smfcontext
[
"pdu_session_id"
];
snssai_t
snssai
=
{};
smf_app_inst
->
set_scid_2_smf_context
(
scid
,
scf
);
std
::
string
sstsd
=
smfcontext
[
"snssai"
];
}
size_t
sstPos
=
sstsd
.
find
(
"SST="
);
else
if
(
sstPos
!=
std
::
string
::
npos
)
{
{
snssai
.
sst
=
std
::
stoi
(
sstsd
.
substr
(
sstPos
+
4
));
scf
=
smf_app_inst
->
scid_2_smf_context
(
scid
);
}
}
size_t
sdPos
=
sstsd
.
find
(
"SD="
);
if
(
sdPos
!=
std
::
string
::
npos
)
{
supi64_t
supi64
=
smf_supi_to_u64
(
supi
);
snssai
.
sd
=
std
::
stoi
(
sstsd
.
substr
(
sdPos
+
3
));
uint64_t
seid
=
smfcontext
[
"seid"
];
}
std
::
shared_ptr
<
smf_context
>
sc
=
{};
std
::
shared_ptr
<
session_management_subscription
>
subscription
=
if
(
!
smf_app_inst
->
is_supi_2_smf_context
(
supi64
))
{
std
::
shared_ptr
<
session_management_subscription
>
(
Logger
::
smf_app
().
debug
(
"Create a new SMF context with SUPI "
SUPI_64_FMT
""
,
supi64
);
new
session_management_subscription
(
snssai
));
sc
=
std
::
shared_ptr
<
smf_context
>
(
new
smf_context
());
if
(
smf_app_inst
->
get_session_management_subscription_data
(
supi64
,
dnn
,
snssai
,
subscription
))
{
sc
.
get
()
->
set_supi
(
supi
);
// update dnn_context with subscription info
// sc.get()->set_supi_prefix(supi_prefix);
sc
.
get
()
->
insert_dnn_subscription
(
snssai
,
dnn
,
subscription
);
smf_app_inst
->
set_supi_2_smf_context
(
supi64
,
sc
);
}
// sc.get()->set_plmn(smreq->req.get_plmn()); // PLMN
smf_app_inst
->
set_seid_2_smf_context
(
seid
,
sc
);
sp
.
get
()
->
set_dnn
(
dnn
);
}
sp
.
get
()
->
set_snssai
(
snssai
);
else
std
::
shared_ptr
<
upf_graph
>
graph
=
{};
{
graph
=
pfcp_associations
::
get_instance
().
select_up_node
(
snssai
,
dnn
);
sc
=
smf_app_inst
->
supi_2_smf_context
(
supi64
);
sp
.
get
()
->
set_sessions_graph
(
graph
);
}
sp
->
set_seid
(
seid
);
sp
->
up_fseid
.
seid
=
smfcontext
[
"up_fseid"
];
std
::
shared_ptr
<
smf_pdu_session
>
sp
=
{};
sp
->
ipv4
=
true
;
if
(
!
sc
.
get
()
->
find_pdu_session
(
scf
.
get
()
->
pdu_session_id
,
sp
))
{
std
::
string
ipv4_address22
=
smfcontext
[
"ipv4_address"
];
Logger
::
smf_app
().
debug
(
"Create a new PDU session"
);
inet_aton
(
ipv4_address22
.
c_str
(),
&
sp
->
ipv4_address
)
;
sp
=
std
::
shared_ptr
<
smf_pdu_session
>
(
new
smf_pdu_session
(
scf
.
get
()
->
pdu_session_id
));
sp
.
get
()
->
pdu_session_type
.
pdu_session_type
=
smfcontext
[
"pdu_session_type"
];
sc
.
get
()
->
add_pdu_session
(
scf
.
get
()
->
pdu_session_id
,
sp
);
// sp->set_seid(smfcontext["seid"]);
// for finding procedure when receiving response
std
::
string
dnn
=
smfcontext
[
"dnn"
];
subscribed_default_qos_t
default_qos
=
{};
snssai_t
snssai
=
{};
std
::
shared_ptr
<
session_management_subscription
>
ss
=
{};
std
::
string
sstsd
=
smfcontext
[
"snssai"
];
sc
->
get_default_qos
(
snssai
,
dnn
,
default_qos
);
size_t
sstPos
=
sstsd
.
find
(
"SST="
);
// Create default QoS (Non-GBR) and associate far id and pdr id to this flow
if
(
sstPos
!=
std
::
string
::
npos
)
{
smf_qos_flow
flow
=
{};
snssai
.
sst
=
std
::
stoi
(
sstsd
.
substr
(
sstPos
+
4
));
flow
.
pdu_session_id
=
scf
.
get
()
->
pdu_session_id
;
}
// default QoS profile
size_t
sdPos
=
sstsd
.
find
(
"SD="
);
flow
.
qfi
.
qfi
=
default_qos
.
_5qi
;
if
(
sdPos
!=
std
::
string
::
npos
)
{
flow
.
qos_profile
.
_5qi
=
default_qos
.
_5qi
;
snssai
.
sd
=
std
::
stoi
(
sstsd
.
substr
(
sdPos
+
3
));
flow
.
qos_profile
.
arp
=
default_qos
.
arp
;
}
flow
.
qos_profile
.
priority_level
=
default_qos
.
priority_level
;
std
::
shared_ptr
<
session_management_subscription
>
subscription
=
// assign default QoS rule for this flow
std
::
shared_ptr
<
session_management_subscription
>
(
QOSRulesIE
qos_rule
=
{};
new
session_management_subscription
(
snssai
));
sc
->
get_default_qos_rule
(
qos_rule
,
sp
.
get
()
->
pdu_session_type
.
pdu_session_type
);
if
(
smf_app_inst
->
get_session_management_subscription_data
(
supi64
,
dnn
,
snssai
,
subscription
))
{
uint8_t
rule_id
=
{
0
};
// update dnn_context with subscription info
sp
->
generate_qos_rule_id
(
rule_id
);
sc
.
get
()
->
insert_dnn_subscription
(
snssai
,
dnn
,
subscription
);
qos_rule
.
qosruleidentifer
=
rule_id
;
}
qos_rule
.
qosflowidentifer
=
flow
.
qfi
.
qfi
;
sp
->
add_qos_rule
(
qos_rule
);
sp
.
get
()
->
set_dnn
(
dnn
);
sp
->
add_qos_flow
(
flow
);
sp
.
get
()
->
set_snssai
(
snssai
);
sp
->
set_default_qos_flow
(
flow
.
qfi
);
std
::
shared_ptr
<
upf_graph
>
graph
=
{};
sp
->
generate_far_id
(
flow
.
far_id_ul
.
second
);
graph
=
pfcp_associations
::
get_instance
().
select_up_node
(
snssai
,
dnn
);
flow
.
far_id_ul
.
first
=
true
;
sp
.
get
()
->
set_sessions_graph
(
graph
);
sp
->
generate_pdr_id
(
flow
.
pdr_id_ul
);
smf_qos_flow
current_flow
{};
sp
->
set_seid
(
seid
);
current_flow
=
flow
;
sp
->
up_fseid
.
seid
=
smfcontext
[
"up_fseid"
];
Logger
::
smf_app
().
warn
(
"----------liuyu-------start_asynch_dfs_procedure"
);
sp
->
ipv4
=
true
;
graph
->
start_asynch_dfs_procedure
(
true
,
flow
);
std
::
string
ipv4_address22
=
smfcontext
[
"ipv4_address"
];
std
::
vector
<
edge
>
dl_edges
;
inet_aton
(
ipv4_address22
.
c_str
(),
&
sp
->
ipv4_address
)
;
std
::
vector
<
edge
>
ul_edges
;
std
::
shared_ptr
<
pfcp_association
>
upf
=
{};
// Get next UPF for the first N4 session establishment
// sp->set_seid(smfcontext["seid"]);
Logger
::
smf_app
().
warn
(
"----------liuyu-------dfs_next_upf"
);
// for finding procedure when receiving response
graph
->
dfs_next_upf
(
dl_edges
,
ul_edges
,
upf
);
subscribed_default_qos_t
default_qos
=
{};
std
::
shared_ptr
<
session_management_subscription
>
ss
=
{};
sc
->
get_default_qos
(
snssai
,
dnn
,
default_qos
);
// Create default QoS (Non-GBR) and associate far id and pdr id to this flow
smf_qos_flow
flow
=
{};
flow
.
pdu_session_id
=
scf
.
get
()
->
pdu_session_id
;
// default QoS profile
flow
.
qfi
.
qfi
=
default_qos
.
_5qi
;
flow
.
qos_profile
.
_5qi
=
default_qos
.
_5qi
;
flow
.
qos_profile
.
arp
=
default_qos
.
arp
;
flow
.
qos_profile
.
priority_level
=
default_qos
.
priority_level
;
// assign default QoS rule for this flow
QOSRulesIE
qos_rule
=
{};
sc
->
get_default_qos_rule
(
qos_rule
,
sp
.
get
()
->
pdu_session_type
.
pdu_session_type
);
uint8_t
rule_id
=
{
0
};
sp
->
generate_qos_rule_id
(
rule_id
);
qos_rule
.
qosruleidentifer
=
rule_id
;
qos_rule
.
qosflowidentifer
=
flow
.
qfi
.
qfi
;
sp
->
add_qos_rule
(
qos_rule
);
sp
->
add_qos_flow
(
flow
);
sp
->
set_default_qos_flow
(
flow
.
qfi
);
sp
->
generate_far_id
(
flow
.
far_id_ul
.
second
);
flow
.
far_id_ul
.
first
=
true
;
sp
->
generate_pdr_id
(
flow
.
pdr_id_ul
);
smf_qos_flow
current_flow
{};
current_flow
=
flow
;
// Logger::smf_app().warn("----------liuyu-------start_asynch_dfs_procedure");
graph
->
start_asynch_dfs_procedure
(
true
,
flow
);
std
::
vector
<
edge
>
dl_edges
;
std
::
vector
<
edge
>
ul_edges
;
std
::
shared_ptr
<
pfcp_association
>
upf
=
{};
// Get next UPF for the first N4 session establishment
// Logger::smf_app().warn("----------liuyu-------dfs_next_upf");
graph
->
dfs_next_upf
(
dl_edges
,
ul_edges
,
upf
);
}
else
{
Logger
::
smf_app
().
warn
(
"Could not retrieve the corresponding SMF PDU Session context!"
);
}
}
}
else
{
else
{
Logger
::
smf_app
().
warn
(
"Could not retrieve the corresponding SMF PDU Session context!"
);
Logger
::
smf_app
().
info
(
"ground smf receive context from satellite smf
\n
"
);
scid_t
scid
=
smfcontext
[
"scid"
];
std
::
shared_ptr
<
smf_context_ref
>
scf
=
{};
if
(
!
smf_app_inst
->
is_scid_2_smf_context
(
scid
))
{
Logger
::
smf_app
().
error
(
"Error, cooudp smf_context_ref don't exist"
SCID_FMT
" does not exit!"
,
scid
);
}
else
{
scf
=
smf_app_inst
->
scid_2_smf_context
(
scid
);
}
std
::
shared_ptr
<
smf_context
>
sc
=
{};
// supi_t supi = {.length = 0};
// std::string supiudp = smfcontext["supi"];
// smf_string_to_supi(&supi, supiudp.c_str());
supi64_t
supi64
=
smf_supi_to_u64
(
scf
.
get
()
->
supi
);
if
(
!
smf_app_inst
->
is_supi_2_smf_context
(
supi64
))
{
Logger
::
smf_app
().
error
(
"Error, cooudp smf_context don't exist"
SUPI_64_FMT
""
,
supi64
);
}
else
{
sc
=
smf_app_inst
->
supi_2_smf_context
(
supi64
);
}
std
::
shared_ptr
<
smf_pdu_session
>
sps
=
{};
if
(
!
sc
.
get
()
->
find_pdu_session
(
scf
.
get
()
->
pdu_session_id
,
sps
))
{
Logger
::
smf_app
().
error
(
"Error, cooudp PDU session don't exist"
);
}
sps
->
set_pdu_session_status
(
pdu_session_status_e
::
PDU_SESSION_ACTIVE
);
sps
->
set_upCnx_state
(
upCnx_state_e
::
UPCNX_STATE_ACTIVATED
);
}
}
}
}
}
}
...
@@ -302,15 +342,15 @@ int udp_server_coop::udp_read_from_socket_to_center() {
...
@@ -302,15 +342,15 @@ int udp_server_coop::udp_read_from_socket_to_center() {
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
if
(
bytes_received
>
0
){
if
(
bytes_received
>
0
){
printf
(
"smf receive udp success from satellite amf
\n
"
);
//
printf("smf receive udp success from satellite amf\n");
gettimeofday
(
&
time
,
NULL
);
//
gettimeofday(&time, NULL);
// std::cout<<"receive from plugin, ms: "<<(time.tv_sec*1000 + time.tv_usec/1000)<<std::endl;
// std::cout<<"receive from plugin, ms: "<<(time.tv_sec*1000 + time.tv_usec/1000)<<std::endl;
// cout<<"bytes"<<bytes_received<<endl;
// cout<<"bytes"<<bytes_received<<endl;
// cout<<"content:"<<udp_recv<<endl;
// cout<<"content:"<<udp_recv<<endl;
// string udp_recv_str(&udp_recv[0],&udp_recv[strlen(udp_recv)]);
// string udp_recv_str(&udp_recv[0],&udp_recv[strlen(udp_recv)]);
// cout<<"content:"<<udp_recv_str<<endl;
// cout<<"content:"<<udp_recv_str<<endl;
// handle_receive_udp(bytes_received,udp_recv);
// handle_receive_udp(bytes_received,udp_recv);
printf
(
"smf send udp to center amf
\n
"
);
//
printf("smf send udp to center amf\n");
UdpSend
(
udp_recv
,
bytes_received
,
"10.103.239.47"
,
20003
);
UdpSend
(
udp_recv
,
bytes_received
,
"10.103.239.47"
,
20003
);
// assoc_id++;
// assoc_id++;
...
@@ -344,15 +384,15 @@ int udp_server_coop::udp_read_from_socket_from_center() {
...
@@ -344,15 +384,15 @@ int udp_server_coop::udp_read_from_socket_from_center() {
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
//bytes_received = recvfrom(serverSocket, udp_recv, UDP_RECV_BUFFER_SIZE , 0, (struct sockaddr*)&r_endpoint.addr_storage, &r_endpoint.addr_storage_len);
if
(
bytes_received
>
0
){
if
(
bytes_received
>
0
){
printf
(
"smf receive udp success from center amf
\n
"
);
//
printf("smf receive udp success from center amf\n");
gettimeofday
(
&
time
,
NULL
);
//
gettimeofday(&time, NULL);
// std::cout<<"receive from plugin, ms: "<<(time.tv_sec*1000 + time.tv_usec/1000)<<std::endl;
// std::cout<<"receive from plugin, ms: "<<(time.tv_sec*1000 + time.tv_usec/1000)<<std::endl;
// cout<<"bytes"<<bytes_received<<endl;
// cout<<"bytes"<<bytes_received<<endl;
// cout<<"content:"<<udp_recv<<endl;
// cout<<"content:"<<udp_recv<<endl;
// string udp_recv_str(&udp_recv[0],&udp_recv[strlen(udp_recv)]);
// string udp_recv_str(&udp_recv[0],&udp_recv[strlen(udp_recv)]);
// cout<<"content:"<<udp_recv_str<<endl;
// cout<<"content:"<<udp_recv_str<<endl;
// handle_receive_udp(bytes_received,udp_recv);
// handle_receive_udp(bytes_received,udp_recv);
printf
(
"smf send udp to satellite amf
\n
"
);
//
printf("smf send udp to satellite amf\n");
UdpSend
(
udp_recv
,
bytes_received
,
"10.103.239.31"
,
20002
);
UdpSend
(
udp_recv
,
bytes_received
,
"10.103.239.31"
,
20002
);
// assoc_id++;
// assoc_id++;
...
...
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