Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
openairinterface-6g
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
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
openairinterface-6g
Commits
aa3f01b6
Commit
aa3f01b6
authored
Nov 10, 2025
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete dead code
parent
c8fba996
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
89 deletions
+2
-89
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+2
-89
No files found.
nfapi/oai_integration/nfapi_vnf.c
View file @
aa3f01b6
...
@@ -325,71 +325,6 @@ int pnf_config_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_config_
...
@@ -325,71 +325,6 @@ int pnf_config_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_config_
return
0
;
return
0
;
}
}
int
wake_gNB_rxtx
(
PHY_VARS_gNB
*
gNB
,
uint16_t
sfn
,
uint16_t
slot
)
{
struct
timespec
curr_t
;
clock_gettime
(
CLOCK_MONOTONIC
,
&
curr_t
);
//NFAPI_TRACE(NFAPI_TRACE_INFO, "\n wake_gNB_rxtx before assignment sfn:%d slot:%d TIME %d.%d",sfn,slot,curr_t.tv_sec,curr_t.tv_nsec);
gNB_L1_proc_t
*
proc
=&
gNB
->
proc
;
gNB_L1_rxtx_proc_t
*
L1_proc
=
(
slot
&
1
)
?
&
proc
->
L1_proc
:
&
proc
->
L1_proc_tx
;
NR_DL_FRAME_PARMS
*
fp
=
&
gNB
->
frame_parms
;
//NFAPI_TRACE(NFAPI_TRACE_INFO, "%s(eNB:%p, sfn:%d, sf:%d)\n", __FUNCTION__, eNB, sfn, sf);
//int i;
struct
timespec
wait
;
clock_gettime
(
CLOCK_REALTIME
,
&
wait
);
wait
.
tv_sec
=
0
;
wait
.
tv_nsec
+=
5000L
;
//wait.tv_nsec = 0;
// wake up TX for subframe n+sf_ahead
// lock the TX mutex and make sure the thread is ready
AssertFatal
(
gNB
->
if_inst
->
sl_ahead
==
6
,
"gNB->if_inst->sl_ahead %d : This is hard-coded to 6 in nfapi P7!!!
\n
"
,
gNB
->
if_inst
->
sl_ahead
);
if
(
pthread_mutex_timedlock
(
&
L1_proc
->
mutex
,
&
wait
)
!=
0
)
{
LOG_E
(
PHY
,
"[gNB] ERROR pthread_mutex_lock for gNB RXTX thread %d (IC %d)
\n
"
,
L1_proc
->
slot_rx
&
1
,
L1_proc
->
instance_cnt
);
exit_fun
(
"error locking mutex_rxtx"
);
return
(
-
1
);
}
{
static
uint16_t
old_slot
=
0
;
static
uint16_t
old_sfn
=
0
;
proc
->
slot_rx
=
old_slot
;
proc
->
frame_rx
=
old_sfn
;
// Try to be 1 frame back
old_slot
=
slot
;
old_sfn
=
sfn
;
//NFAPI_TRACE(NFAPI_TRACE_INFO, "\n wake_gNB_rxtx after assignment sfn:%d slot:%d",proc->frame_rx,proc->slot_rx);
if
(
old_slot
==
0
&&
old_sfn
%
100
==
0
)
LOG_W
(
PHY
,
"[gNB] sfn/slot:%d%d old_sfn/slot:%d%d proc[rx:%d%d]
\n
"
,
sfn
,
slot
,
old_sfn
,
old_slot
,
proc
->
frame_rx
,
proc
->
slot_rx
);
}
++
L1_proc
->
instance_cnt
;
//LOG_D( PHY,"[VNF-subframe_ind] sfn/sf:%d:%d proc[frame_rx:%d subframe_rx:%d] L1_proc->instance_cnt_rxtx:%d \n", sfn, sf, proc->frame_rx, proc->subframe_rx, L1_proc->instance_cnt_rxtx);
// We have just received and processed the common part of a subframe, say n.
// TS_rx is the last received timestamp (start of 1st slot), TS_tx is the desired
// transmitted timestamp of the next TX slot (first).
// The last (TS_rx mod samples_per_frame) was n*samples_per_tti,
// we want to generate subframe (n+N), so TS_tx = TX_rx+N*samples_per_tti,
// and proc->subframe_tx = proc->subframe_rx+sf_ahead
L1_proc
->
timestamp_tx
=
proc
->
timestamp_rx
+
(
gNB
->
if_inst
->
sl_ahead
*
fp
->
samples_per_subframe
);
L1_proc
->
frame_rx
=
proc
->
frame_rx
;
L1_proc
->
slot_rx
=
proc
->
slot_rx
;
L1_proc
->
frame_tx
=
(
L1_proc
->
slot_rx
>
(
19
-
gNB
->
if_inst
->
sl_ahead
))
?
(
L1_proc
->
frame_rx
+
1
)
&
1023
:
L1_proc
->
frame_rx
;
L1_proc
->
slot_tx
=
(
L1_proc
->
slot_rx
+
gNB
->
if_inst
->
sl_ahead
)
%
20
;
//LOG_D(PHY, "sfn/sf:%d%d proc[rx:%d%d] rx:%d%d] About to wake rxtx thread\n\n", sfn, slot, proc->frame_rx, proc->slot_rx, L1_proc->frame_rx, L1_proc->slot_rx);
//NFAPI_TRACE(NFAPI_TRACE_INFO, "\nEntering wake_gNB_rxtx sfn %d slot %d\n",L1_proc->frame_rx,L1_proc->slot_rx);
// the thread can now be woken up
if
(
pthread_cond_signal
(
&
L1_proc
->
cond
)
!=
0
)
{
LOG_E
(
PHY
,
"[gNB] ERROR pthread_cond_signal for gNB RXn-TXnp4 thread
\n
"
);
exit_fun
(
"ERROR pthread_clond_signal"
);
return
(
-
1
);
}
//LOG_D(PHY,"%s() About to attempt pthread_mutex_unlock\n", __FUNCTION__);
pthread_mutex_unlock
(
&
L1_proc
->
mutex
);
//LOG_D(PHY,"%s() UNLOCKED pthread_mutex_unlock\n", __FUNCTION__);
return
(
0
);
}
int
wake_eNB_rxtx
(
PHY_VARS_eNB
*
eNB
,
uint16_t
sfn
,
uint16_t
sf
)
{
int
wake_eNB_rxtx
(
PHY_VARS_eNB
*
eNB
,
uint16_t
sfn
,
uint16_t
sf
)
{
L1_proc_t
*
proc
=&
eNB
->
proc
;
L1_proc_t
*
proc
=&
eNB
->
proc
;
L1_rxtx_proc_t
*
L1_proc
=
(
sf
&
1
)
?
&
proc
->
L1_proc
:
&
proc
->
L1_proc_tx
;
L1_rxtx_proc_t
*
L1_proc
=
(
sf
&
1
)
?
&
proc
->
L1_proc
:
&
proc
->
L1_proc_tx
;
...
@@ -497,28 +432,6 @@ int phy_sync_indication(struct nfapi_vnf_p7_config *config, uint8_t sync) {
...
@@ -497,28 +432,6 @@ int phy_sync_indication(struct nfapi_vnf_p7_config *config, uint8_t sync) {
}
}
int
phy_slot_indication
(
struct
nfapi_vnf_p7_config
*
config
,
uint16_t
phy_id
,
uint16_t
sfn
,
uint16_t
slot
)
{
static
uint8_t
first_time
=
1
;
if
(
first_time
)
{
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] slot indication %d.%d
\n
"
,
sfn
,
slot
);
first_time
=
0
;
}
if
(
RC
.
gNB
&&
RC
.
gNB
[
0
]
->
configured
)
{
// uint16_t sfn = NFAPI_SFNSF2SFN(sfn_sf);
// uint16_t sf = NFAPI_SFNSF2SF(sfn_sf);
LOG_D
(
PHY
,
"[VNF] slot indication sfn:%d slot:%d
\n
"
,
sfn
,
slot
);
wake_gNB_rxtx
(
RC
.
gNB
[
0
],
sfn
,
slot
);
// DONE: find NR equivalent
}
else
{
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() RC.gNB:%p
\n
"
,
__FUNCTION__
,
RC
.
gNB
);
if
(
RC
.
gNB
)
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"RC.gNB[0]->configured:%d
\n
"
,
RC
.
gNB
[
0
]
->
configured
);
}
return
0
;
}
int
phy_subframe_indication
(
struct
nfapi_vnf_p7_config
*
config
,
uint16_t
phy_id
,
uint16_t
sfn_sf
)
{
int
phy_subframe_indication
(
struct
nfapi_vnf_p7_config
*
config
,
uint16_t
phy_id
,
uint16_t
sfn_sf
)
{
static
uint8_t
first_time
=
1
;
static
uint8_t
first_time
=
1
;
...
@@ -1302,7 +1215,7 @@ void *configure_nr_p7_vnf(void *ptr)
...
@@ -1302,7 +1215,7 @@ void *configure_nr_p7_vnf(void *ptr)
p7_vnf
->
config
->
port
=
p7_vnf
->
local_port
;
p7_vnf
->
config
->
port
=
p7_vnf
->
local_port
;
#ifndef ENABLE_AERIAL
#ifndef ENABLE_AERIAL
p7_vnf
->
config
->
sync_indication
=
&
phy_sync_indication
;
p7_vnf
->
config
->
sync_indication
=
&
phy_sync_indication
;
p7_vnf
->
config
->
slot_indication
=
&
phy_slot_indication
;
p7_vnf
->
config
->
slot_indication
=
NULL
;
p7_vnf
->
config
->
harq_indication
=
&
phy_harq_indication
;
p7_vnf
->
config
->
harq_indication
=
&
phy_harq_indication
;
#endif
#endif
p7_vnf
->
config
->
nr_crc_indication
=
&
phy_nr_crc_indication
;
p7_vnf
->
config
->
nr_crc_indication
=
&
phy_nr_crc_indication
;
...
@@ -1364,7 +1277,7 @@ void *vnf_p7_thread_start(void *ptr) {
...
@@ -1364,7 +1277,7 @@ void *vnf_p7_thread_start(void *ptr) {
p7_vnf
->
config
->
port
=
p7_vnf
->
local_port
;
p7_vnf
->
config
->
port
=
p7_vnf
->
local_port
;
p7_vnf
->
config
->
sync_indication
=
&
phy_sync_indication
;
p7_vnf
->
config
->
sync_indication
=
&
phy_sync_indication
;
p7_vnf
->
config
->
subframe_indication
=
&
phy_subframe_indication
;
p7_vnf
->
config
->
subframe_indication
=
&
phy_subframe_indication
;
p7_vnf
->
config
->
slot_indication
=
&
phy_slot_indication
;
p7_vnf
->
config
->
slot_indication
=
NULL
;
p7_vnf
->
config
->
harq_indication
=
&
phy_harq_indication
;
p7_vnf
->
config
->
harq_indication
=
&
phy_harq_indication
;
p7_vnf
->
config
->
crc_indication
=
&
phy_crc_indication
;
p7_vnf
->
config
->
crc_indication
=
&
phy_crc_indication
;
...
...
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