Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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-RAN
Commits
b18f9d6a
Commit
b18f9d6a
authored
7 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor chanels for IF4p5 in RRU
parent
5d5efb7b
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
17 additions
and
12 deletions
+17
-12
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+2
-1
openair1/PHY/LTE_TRANSPORT/if4_tools.h
openair1/PHY/LTE_TRANSPORT/if4_tools.h
+5
-5
openair1/PHY/LTE_TRANSPORT/prach.c
openair1/PHY/LTE_TRANSPORT/prach.c
+1
-1
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
+2
-2
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+7
-3
No files found.
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
b18f9d6a
...
@@ -207,7 +207,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
...
@@ -207,7 +207,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
} else if (packet_type >= IF4p5_PRACH &&
} else if (packet_type >= IF4p5_PRACH &&
packet_type <= IF4p5_PRACH+4) {
packet_type <= IF4p5_PRACH+4) {
// FIX: hard coded prach samples length
// FIX: hard coded prach samples length
LOG_D
(
PHY
,
"IF4p5_PRACH: frame %d, subframe %d
\n
"
,
frame
,
subfram
e
);
LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d
,packet type %x\n",frame,subframe,packet_typ
e);
db_fulllength = PRACH_NUM_SAMPLES;
db_fulllength = PRACH_NUM_SAMPLES;
if (eth->flags == ETH_RAW_IF4p5_MODE) {
if (eth->flags == ETH_RAW_IF4p5_MODE) {
...
@@ -248,6 +248,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
...
@@ -248,6 +248,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
packet_type)) < 0) {
packet_type)) < 0) {
perror("ETHERNET write for IF4p5_PRACH\n");
perror("ETHERNET write for IF4p5_PRACH\n");
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF, 0 );
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF, 0 );
} else {
} else {
AssertFatal(1==0, "send_IF4p5 - Unknown packet_type %x", packet_type);
AssertFatal(1==0, "send_IF4p5 - Unknown packet_type %x", packet_type);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/if4_tools.h
View file @
b18f9d6a
...
@@ -39,11 +39,11 @@
...
@@ -39,11 +39,11 @@
#define IF4p5_PULFFT 0x0019
#define IF4p5_PULFFT 0x0019
#define IF4p5_PDLFFT 0x0020
#define IF4p5_PDLFFT 0x0020
#define IF4p5_PRACH 0x0021
#define IF4p5_PRACH 0x0021
#define IF4p5_PRACH_BR_CE0 0x002
1
#define IF4p5_PRACH_BR_CE0 0x002
2
#define IF4p5_PRACH_BR_CE1 0x002
2
#define IF4p5_PRACH_BR_CE1 0x002
3
#define IF4p5_PRACH_BR_CE2 0x002
3
#define IF4p5_PRACH_BR_CE2 0x002
4
#define IF4p5_PRACH_BR_CE3 0x002
4
#define IF4p5_PRACH_BR_CE3 0x002
5
#define IF4p5_PULTICK 0x002
5
#define IF4p5_PULTICK 0x002
6
struct
IF4p5_header
{
struct
IF4p5_header
{
/// Type
/// Type
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/prach.c
View file @
b18f9d6a
...
@@ -640,7 +640,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
...
@@ -640,7 +640,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
#if defined(EXMIMO) || defined(OAI_USRP)
#if defined(EXMIMO) || defined(OAI_USRP)
prach_start
=
(
ue
->
rx_offset
+
subframe
*
ue
->
frame_parms
.
samples_per_tti
-
ue
->
hw_timing_advance
-
ue
->
N_TA_offset
);
prach_start
=
(
ue
->
rx_offset
+
subframe
*
ue
->
frame_parms
.
samples_per_tti
-
ue
->
hw_timing_advance
-
ue
->
N_TA_offset
);
#ifdef PRACH_DEBUG
#ifdef PRACH_DEBUG
LOG_
I
(
PHY
,
"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d
\n
"
,
ue
->
Mod_id
,
LOG_
D
(
PHY
,
"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d
\n
"
,
ue
->
Mod_id
,
prach_start
,
prach_start
,
ue
->
rx_offset
,
ue
->
rx_offset
,
ue
->
hw_timing_advance
,
ue
->
hw_timing_advance
,
...
...
This diff is collapsed.
Click to expand it.
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
View file @
b18f9d6a
...
@@ -235,7 +235,8 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
...
@@ -235,7 +235,8 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
packet_size
=
UDP_IF4p5_PULFFT_SIZE_BYTES
(
nblocks
);
packet_size
=
UDP_IF4p5_PULFFT_SIZE_BYTES
(
nblocks
);
}
else
if
(
flags
==
IF4p5_PULTICK
)
{
}
else
if
(
flags
==
IF4p5_PULTICK
)
{
packet_size
=
UDP_IF4p5_PULTICK_SIZE_BYTES
;
packet_size
=
UDP_IF4p5_PULTICK_SIZE_BYTES
;
}
else
if
(
flags
==
IF4p5_PRACH
)
{
}
else
if
((
flags
>=
IF4p5_PRACH
)
&&
(
flags
<=
(
IF4p5_PRACH
+
4
)))
{
packet_size
=
UDP_IF4p5_PRACH_SIZE_BYTES
;
packet_size
=
UDP_IF4p5_PRACH_SIZE_BYTES
;
}
else
{
}
else
{
printf
(
"trx_eth_write_udp_IF4p5: unknown flags %d
\n
"
,
flags
);
printf
(
"trx_eth_write_udp_IF4p5: unknown flags %d
\n
"
,
flags
);
...
@@ -243,7 +244,6 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
...
@@ -243,7 +244,6 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
}
}
eth
->
tx_nsamps
=
nblocks
;
eth
->
tx_nsamps
=
nblocks
;
// printf("Sending %d bytes to %s:%d\n",packet_size,str,ntohs(eth->local_addrd.sin_port));
bytes_sent
=
sendto
(
eth
->
sockfdd
,
bytes_sent
=
sendto
(
eth
->
sockfdd
,
buff
[
0
],
buff
[
0
],
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-ru.c
View file @
b18f9d6a
...
@@ -596,13 +596,14 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
...
@@ -596,13 +596,14 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
symbol_mask_full
=
((
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
))
-
1
;
symbol_mask_full
=
((
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
))
-
1
;
do
{
do
{
recv_IF4p5
(
ru
,
&
frame_tx
,
&
subframe_tx
,
&
packet_type
,
&
symbol_number
);
recv_IF4p5
(
ru
,
&
frame_tx
,
&
subframe_tx
,
&
packet_type
,
&
symbol_number
);
if
((
subframe_select
(
fp
,
*
subframe
)
==
SF_DL
)
&&
(
symbol_number
==
0
))
start_meas
(
&
ru
->
rx_fhaul
);
if
((
subframe_select
(
fp
,
subframe_tx
)
==
SF_DL
)
&&
(
symbol_number
==
0
))
start_meas
(
&
ru
->
rx_fhaul
);
LOG_D
(
PHY
,
"subframe %d (%d): frame %d, subframe %d, symbol %d
\n
"
,
LOG_D
(
PHY
,
"subframe %d (%d): frame %d, subframe %d, symbol %d
\n
"
,
*
subframe
,
subframe_select
(
fp
,
*
subframe
),
frame_tx
,
subframe_tx
,
symbol_number
);
*
subframe
,
subframe_select
(
fp
,
*
subframe
),
frame_tx
,
subframe_tx
,
symbol_number
);
if
(
proc
->
first_tx
!=
0
)
{
if
(
proc
->
first_tx
!=
0
)
{
*
frame
=
frame_tx
;
*
frame
=
frame_tx
;
*
subframe
=
subframe_tx
;
*
subframe
=
subframe_tx
;
proc
->
first_tx
=
0
;
proc
->
first_tx
=
0
;
symbol_mask_full
=
((
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
))
-
1
;
}
}
else
{
else
{
AssertFatal
(
frame_tx
==
*
frame
,
AssertFatal
(
frame_tx
==
*
frame
,
...
@@ -616,7 +617,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
...
@@ -616,7 +617,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
else
AssertFatal
(
1
==
0
,
"Illegal IF4p5 packet type (should only be IF4p5_PDLFFT%d
\n
"
,
packet_type
);
else
AssertFatal
(
1
==
0
,
"Illegal IF4p5 packet type (should only be IF4p5_PDLFFT%d
\n
"
,
packet_type
);
}
while
(
symbol_mask
!=
symbol_mask_full
);
}
while
(
symbol_mask
!=
symbol_mask_full
);
if
(
subframe_select
(
fp
,
*
subframe
)
==
SF_DL
)
stop_meas
(
&
ru
->
rx_fhaul
);
if
(
subframe_select
(
fp
,
subframe_tx
)
==
SF_DL
)
stop_meas
(
&
ru
->
rx_fhaul
);
proc
->
subframe_tx
=
subframe_tx
;
proc
->
subframe_tx
=
subframe_tx
;
proc
->
frame_tx
=
frame_tx
;
proc
->
frame_tx
=
frame_tx
;
...
@@ -871,7 +872,10 @@ static void* ru_thread_asynch_rxtx( void* param ) {
...
@@ -871,7 +872,10 @@ static void* ru_thread_asynch_rxtx( void* param ) {
// asynchronous receive from south (Mobipass)
// asynchronous receive from south (Mobipass)
if
(
ru
->
fh_south_asynch_in
)
ru
->
fh_south_asynch_in
(
ru
,
&
frame
,
&
subframe
);
if
(
ru
->
fh_south_asynch_in
)
ru
->
fh_south_asynch_in
(
ru
,
&
frame
,
&
subframe
);
// asynchronous receive from north (RRU IF4/IF5)
// asynchronous receive from north (RRU IF4/IF5)
else
if
(
ru
->
fh_north_asynch_in
)
ru
->
fh_north_asynch_in
(
ru
,
&
frame
,
&
subframe
);
else
if
(
ru
->
fh_north_asynch_in
)
{
if
(
subframe_select
(
&
ru
->
frame_parms
,
subframe
)
!=
SF_UL
)
ru
->
fh_north_asynch_in
(
ru
,
&
frame
,
&
subframe
);
}
else
AssertFatal
(
1
==
0
,
"Unknown function in ru_thread_asynch_rxtx
\n
"
);
else
AssertFatal
(
1
==
0
,
"Unknown function in ru_thread_asynch_rxtx
\n
"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
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