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
ZhouShuya
OpenXG-RAN
Commits
91e12a97
Commit
91e12a97
authored
Feb 10, 2017
by
Younes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix if4p5
parent
e2ae88de
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
77 additions
and
50 deletions
+77
-50
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+14
-10
openair1/PHY/LTE_TRANSPORT/prach.c
openair1/PHY/LTE_TRANSPORT/prach.c
+7
-7
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+4
-0
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
+5
-2
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+11
-0
targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h
targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h
+10
-5
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.conf
...JECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.conf
+13
-13
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
...JECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
+13
-13
No files found.
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
91e12a97
...
@@ -108,8 +108,8 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
...
@@ -108,8 +108,8 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
(
packet_type
==
IF4p5_PULTICK
)){
(
packet_type
==
IF4p5_PULTICK
)){
db_fulllength
=
12
*
fp
->
N_RB_UL
;
db_fulllength
=
12
*
fp
->
N_RB_UL
;
db_halflength
=
(
db_fulllength
)
>>
1
;
db_halflength
=
(
db_fulllength
)
>>
1
;
slotoffsetF
=
1
;
slotoffsetF
=
0
;
blockoffsetF
=
slotoffsetF
+
fp
->
ofdm_symbol_size
-
db_halflength
-
1
;
blockoffsetF
=
slotoffsetF
+
fp
->
ofdm_symbol_size
-
db_halflength
;
if
(
subframe_select
(
fp
,
subframe
)
==
SF_S
)
{
if
(
subframe_select
(
fp
,
subframe
)
==
SF_S
)
{
nsym
=
fp
->
ul_symbols_in_S_subframe
;
nsym
=
fp
->
ul_symbols_in_S_subframe
;
...
@@ -131,10 +131,12 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
...
@@ -131,10 +131,12 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
LOG_D
(
PHY
,
"IF4p5_PULFFT: frame %d, subframe %d, symbol %d
\n
"
,
frame
,
subframe
,
symbol_id
);
LOG_D
(
PHY
,
"IF4p5_PULFFT: frame %d, subframe %d, symbol %d
\n
"
,
frame
,
subframe
,
symbol_id
);
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
blockoffsetF
+
element_id
];
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
blockoffsetF
+
element_id
];
data_block
[
element_id
]
=
((
uint16_t
)
lin2alaw
[
*
i
])
|
(
lin2alaw
[
*
(
i
+
1
)]
<<
8
);
data_block
[
element_id
]
=
((
uint16_t
)
lin2alaw
[
*
i
])
|
(
(
uint16_t
)(
lin2alaw
[
*
(
i
+
1
)]
<<
8
)
);
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
slotoffsetF
+
element_id
];
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
slotoffsetF
+
element_id
];
data_block
[
element_id
+
db_halflength
]
=
((
uint16_t
)
lin2alaw
[
*
i
])
|
(
lin2alaw
[
*
(
i
+
1
)]
<<
8
);
data_block
[
element_id
+
db_halflength
]
=
((
uint16_t
)
lin2alaw
[
*
i
])
|
((
uint16_t
)(
lin2alaw
[
*
(
i
+
1
)]
<<
8
));
//if (element_id==0) LOG_I(PHY,"send_if4p5: symbol %d rxdata0 = (%d,%d)\n",symbol_id,*i,*(i+1));
}
}
packet_header
->
frame_status
&=
~
(
0x000f
<<
26
);
packet_header
->
frame_status
&=
~
(
0x000f
<<
26
);
...
@@ -235,7 +237,7 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
...
@@ -235,7 +237,7 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
0
)
<
0
)
{
0
)
<
0
)
{
perror
(
"ETHERNET read"
);
perror
(
"ETHERNET read"
);
}
}
if
(
eth
->
flags
==
ETH_RAW_IF4p5_MODE
)
{
if
(
eth
->
flags
==
ETH_RAW_IF4p5_MODE
)
{
packet_header
=
(
IF4p5_header_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
);
packet_header
=
(
IF4p5_header_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
);
data_block
=
(
uint16_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
+
sizeof_IF4p5_header_t
);
data_block
=
(
uint16_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
+
sizeof_IF4p5_header_t
);
...
@@ -251,7 +253,6 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
...
@@ -251,7 +253,6 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
*
packet_type
=
packet_header
->
sub_type
;
*
packet_type
=
packet_header
->
sub_type
;
if
(
*
packet_type
==
IF4p5_PDLFFT
)
{
if
(
*
packet_type
==
IF4p5_PDLFFT
)
{
*
symbol_number
=
((
packet_header
->
frame_status
)
>>
26
)
&
0x000f
;
*
symbol_number
=
((
packet_header
->
frame_status
)
>>
26
)
&
0x000f
;
...
@@ -273,10 +274,10 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
...
@@ -273,10 +274,10 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
}
else
if
(
*
packet_type
==
IF4p5_PULFFT
)
{
}
else
if
(
*
packet_type
==
IF4p5_PULFFT
)
{
*
symbol_number
=
((
packet_header
->
frame_status
)
>>
26
)
&
0x000f
;
*
symbol_number
=
((
packet_header
->
frame_status
)
>>
26
)
&
0x000f
;
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
if
(
eNB
->
CC_id
==
0
)
LOG_D
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
slotoffsetF
=
(
*
symbol_number
)
*
(
fp
->
ofdm_symbol_size
)
+
1
;
slotoffsetF
=
(
*
symbol_number
)
*
(
fp
->
ofdm_symbol_size
);
blockoffsetF
=
slotoffsetF
+
fp
->
ofdm_symbol_size
-
db_halflength
-
1
;
blockoffsetF
=
slotoffsetF
+
fp
->
ofdm_symbol_size
-
db_halflength
;
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
blockoffsetF
+
element_id
];
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
blockoffsetF
+
element_id
];
...
@@ -286,9 +287,12 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
...
@@ -286,9 +287,12 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
slotoffsetF
+
element_id
];
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
slotoffsetF
+
element_id
];
*
i
=
alaw2lin
[
(
data_block
[
element_id
+
db_halflength
]
&
0xff
)
];
*
i
=
alaw2lin
[
(
data_block
[
element_id
+
db_halflength
]
&
0xff
)
];
*
(
i
+
1
)
=
alaw2lin
[
(
data_block
[
element_id
+
db_halflength
]
>>
8
)
];
*
(
i
+
1
)
=
alaw2lin
[
(
data_block
[
element_id
+
db_halflength
]
>>
8
)
];
//if (element_id==0) LOG_I(PHY,"recv_if4p5: symbol %d rxdata0 = (%u,%u)\n",*symbol_number,*i,*(i+1));
}
}
}
else
if
(
*
packet_type
==
IF4p5_PRACH
)
{
}
else
if
(
*
packet_type
==
IF4p5_PRACH
)
{
LOG_D
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
// FIX: hard coded prach samples length
// FIX: hard coded prach samples length
...
...
openair1/PHY/LTE_TRANSPORT/prach.c
View file @
91e12a97
...
@@ -1125,7 +1125,7 @@ void rx_prach(PHY_VARS_eNB *eNB,
...
@@ -1125,7 +1125,7 @@ void rx_prach(PHY_VARS_eNB *eNB,
int
fft_size
,
log2_ifft_size
;
int
fft_size
,
log2_ifft_size
;
uint8_t
nb_ant_rx
=
1
;
//eNB->frame_parms.nb_antennas_rx;
uint8_t
nb_ant_rx
=
1
;
//eNB->frame_parms.nb_antennas_rx;
//
int en;
int
en
;
for
(
aa
=
0
;
aa
<
nb_ant_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
nb_ant_rx
;
aa
++
)
{
prach
[
aa
]
=
(
int16_t
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
aa
][
subframe
*
eNB
->
frame_parms
.
samples_per_tti
-
eNB
->
N_TA_offset
];
prach
[
aa
]
=
(
int16_t
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
aa
][
subframe
*
eNB
->
frame_parms
.
samples_per_tti
-
eNB
->
N_TA_offset
];
...
@@ -1327,9 +1327,9 @@ void rx_prach(PHY_VARS_eNB *eNB,
...
@@ -1327,9 +1327,9 @@ void rx_prach(PHY_VARS_eNB *eNB,
/// **** send_IF4 of rxsigF to RCC **** ///
/// **** send_IF4 of rxsigF to RCC **** ///
send_IF4p5
(
eNB
,
eNB
->
proc
.
frame_prach
,
eNB
->
proc
.
subframe_prach
,
IF4p5_PRACH
,
k
);
send_IF4p5
(
eNB
,
eNB
->
proc
.
frame_prach
,
eNB
->
proc
.
subframe_prach
,
IF4p5_PRACH
,
k
);
//
en = dB_fixed(signal_energy(&rxsigF[0][k],840));
en
=
dB_fixed
(
signal_energy
(
&
rxsigF
[
0
][
k
],
840
));
//
if (en>60)
if
(
en
>
60
)
//
printf("PRACH: Frame %d, Subframe %d => %d dB\n",eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
printf
(
"PRACH: Frame %d, Subframe %d => %d dB
\n
"
,
eNB
->
proc
.
frame_rx
,
eNB
->
proc
.
subframe_rx
,
en
);
return
;
return
;
}
else
if
(
eNB
->
node_function
==
NGFI_RCC_IF4p5
)
{
}
else
if
(
eNB
->
node_function
==
NGFI_RCC_IF4p5
)
{
k
=
(
12
*
n_ra_prb
)
-
6
*
eNB
->
frame_parms
.
N_RB_UL
;
k
=
(
12
*
n_ra_prb
)
-
6
*
eNB
->
frame_parms
.
N_RB_UL
;
...
@@ -1347,9 +1347,9 @@ void rx_prach(PHY_VARS_eNB *eNB,
...
@@ -1347,9 +1347,9 @@ void rx_prach(PHY_VARS_eNB *eNB,
(
&
rxsigF
[
0
][
0
]),
(
&
rxsigF
[
0
][
0
]),
839
*
2
*
sizeof
(
int16_t
));
839
*
2
*
sizeof
(
int16_t
));
//
en = dB_fixed(signal_energy(&rxsigF[0][k],840));
en
=
dB_fixed
(
signal_energy
(
&
rxsigF
[
0
][
k
],
840
));
//
if (en>60)
/*
if (en>60)
//printf("PRACH: Frame %d, Subframe %d => %d dB\n",eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
printf("PRACH: Frame %d, Subframe %d => %d dB\n",eNB->proc.frame_rx,eNB->proc.subframe_rx,en);*/
}
}
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
91e12a97
...
@@ -3158,6 +3158,10 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
...
@@ -3158,6 +3158,10 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
eNB
->
UE_stats
[
i
].
ulsch_errors
[
harq_pid
]
++
;
eNB
->
UE_stats
[
i
].
ulsch_errors
[
harq_pid
]
++
;
eNB
->
UE_stats
[
i
].
ulsch_consecutive_errors
++
;
eNB
->
UE_stats
[
i
].
ulsch_consecutive_errors
++
;
/*if (eNB->ulsch[i]->harq_processes[harq_pid]->nb_rb > 20) {
dump_ulsch(eNB,proc,i);
exit(-1);
}*/
// indicate error to MAC
// indicate error to MAC
if
(
eNB
->
mac_enabled
==
1
)
if
(
eNB
->
mac_enabled
==
1
)
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
View file @
91e12a97
...
@@ -197,6 +197,7 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
...
@@ -197,6 +197,7 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
int
nblocks
=
nsamps
;
int
nblocks
=
nsamps
;
int
bytes_sent
=
0
;
int
bytes_sent
=
0
;
eth_state_t
*
eth
=
(
eth_state_t
*
)
device
->
priv
;
eth_state_t
*
eth
=
(
eth_state_t
*
)
device
->
priv
;
...
@@ -216,7 +217,6 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
...
@@ -216,7 +217,6 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam
}
}
eth
->
tx_nsamps
=
nblocks
;
eth
->
tx_nsamps
=
nblocks
;
bytes_sent
=
sendto
(
eth
->
sockfd
,
bytes_sent
=
sendto
(
eth
->
sockfd
,
buff
[
0
],
buff
[
0
],
packet_size
,
packet_size
,
...
@@ -245,6 +245,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
...
@@ -245,6 +245,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
//sendto_flag|=flags;
//sendto_flag|=flags;
eth
->
tx_nsamps
=
nsamps
;
eth
->
tx_nsamps
=
nsamps
;
for
(
i
=
0
;
i
<
cc
;
i
++
)
{
for
(
i
=
0
;
i
<
cc
;
i
++
)
{
/* buff[i] points to the position in tx buffer where the payload to be sent is
/* buff[i] points to the position in tx buffer where the payload to be sent is
buff2 points to the position in tx buffer where the packet header will be placed */
buff2 points to the position in tx buffer where the packet header will be placed */
...
@@ -264,7 +266,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
...
@@ -264,7 +266,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
*
(
uint16_t
*
)(
buff2
+
sizeof
(
uint16_t
))
=
1
+
(
i
<<
1
);
*
(
uint16_t
*
)(
buff2
+
sizeof
(
uint16_t
))
=
1
+
(
i
<<
1
);
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
timestamp
;
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
timestamp
;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TX_SEQ_NUM
,
pck_seq_num
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TX_SEQ_NUM
,
pck_seq_num
);
while
(
bytes_sent
<
UDP_PACKET_SIZE_BYTES
(
nsamps
))
{
while
(
bytes_sent
<
UDP_PACKET_SIZE_BYTES
(
nsamps
))
{
#if DEBUG
#if DEBUG
printf
(
"------- TX ------: buff2 current position=%d remaining_bytes=%d bytes_sent=%d
\n
"
,
printf
(
"------- TX ------: buff2 current position=%d remaining_bytes=%d bytes_sent=%d
\n
"
,
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
View file @
91e12a97
...
@@ -84,6 +84,12 @@ int trx_eth_start(openair0_device *device) {
...
@@ -84,6 +84,12 @@ int trx_eth_start(openair0_device *device) {
}
else
{
}
else
{
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
}
}
/* adjust MTU wrt number of samples per packet */
/*if(ethernet_tune (device,MTU_SIZE,UDP_IF4p5_PRACH_SIZE_BYTES)!=0) return -1;
if(ethernet_tune (device,RCV_TIMEOUT,999999)!=0) return -1;*/
}
else
if
(
eth
->
flags
==
ETH_RAW_IF5_MOBIPASS
)
{
}
else
if
(
eth
->
flags
==
ETH_RAW_IF5_MOBIPASS
)
{
printf
(
"Setting ETHERNET to RAW_IF5_MODE
\n
"
);
printf
(
"Setting ETHERNET to RAW_IF5_MODE
\n
"
);
if
(
eth_socket_init_raw
(
device
)
!=
0
)
return
-
1
;
if
(
eth_socket_init_raw
(
device
)
!=
0
)
return
-
1
;
...
@@ -98,6 +104,11 @@ int trx_eth_start(openair0_device *device) {
...
@@ -98,6 +104,11 @@ int trx_eth_start(openair0_device *device) {
}
else
{
}
else
{
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
}
}
/* adjust MTU wrt number of samples per packet */
if
(
ethernet_tune
(
device
,
MTU_SIZE
,
UDP_IF4p5_PRACH_SIZE_BYTES
)
!=
0
)
return
-
1
;
if
(
ethernet_tune
(
device
,
RCV_TIMEOUT
,
999999
)
!=
0
)
return
-
1
;
}
}
/* apply additional configuration */
/* apply additional configuration */
if
(
ethernet_tune
(
device
,
SND_BUF_SIZE
,
2000000000
)
!=
0
)
return
-
1
;
if
(
ethernet_tune
(
device
,
SND_BUF_SIZE
,
2000000000
)
!=
0
)
return
-
1
;
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h
View file @
91e12a97
...
@@ -47,6 +47,11 @@
...
@@ -47,6 +47,11 @@
#define ETH_RAW_IF5_MOBIPASS 4
#define ETH_RAW_IF5_MOBIPASS 4
#endif
#endif
// COMMOM HEADER LENGTHS
#define UDP_HEADER_SIZE_BYTES 8
#define IPV4_HEADER_SIZE_BYTES 60 // This is the maximum IPv4 header length
// Time domain RRH packet sizes
// Time domain RRH packet sizes
#define MAC_HEADER_SIZE_BYTES (sizeof(struct ether_header))
#define MAC_HEADER_SIZE_BYTES (sizeof(struct ether_header))
#define MAX_PACKET_SEQ_NUM(spp,spf) (spf/spp)
#define MAX_PACKET_SEQ_NUM(spp,spf) (spf/spp)
...
@@ -56,17 +61,17 @@
...
@@ -56,17 +61,17 @@
// Packet sizes for IF4p5 interface format
// Packet sizes for IF4p5 interface format
#define DATA_BLOCK_SIZE_BYTES(scaled_nblocks) (sizeof(uint16_t)*scaled_nblocks)
#define DATA_BLOCK_SIZE_BYTES(scaled_nblocks) (sizeof(uint16_t)*scaled_nblocks)
#define PRACH_HARD_CODED_NUM_SAMPLES (839*
2
)
#define PRACH_HARD_CODED_NUM_SAMPLES (839*
4
)
#define PRACH_BLOCK_SIZE_BYTES (sizeof(int16_t)*PRACH_HARD_CODED_NUM_SAMPLES) // FIX hard coded prach size
#define PRACH_BLOCK_SIZE_BYTES (sizeof(int16_t)*PRACH_HARD_CODED_NUM_SAMPLES) // FIX hard coded prach size
#define RAW_IF4p5_PDLFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define RAW_IF4p5_PDLFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define RAW_IF4p5_PULFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define RAW_IF4p5_PULFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define RAW_IF4p5_PULTICK_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t)
#define RAW_IF4p5_PULTICK_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t)
#define RAW_IF4p5_PRACH_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + PRACH_BLOCK_SIZE_BYTES)
#define RAW_IF4p5_PRACH_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4p5_header_t + PRACH_BLOCK_SIZE_BYTES)
#define UDP_IF4p5_PDLFFT_SIZE_BYTES(nblocks) (sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define UDP_IF4p5_PDLFFT_SIZE_BYTES(nblocks) (
UDP_HEADER_SIZE_BYTES + IPV4_HEADER_SIZE_BYTES +
sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define UDP_IF4p5_PULFFT_SIZE_BYTES(nblocks) (sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define UDP_IF4p5_PULFFT_SIZE_BYTES(nblocks) (
UDP_HEADER_SIZE_BYTES + IPV4_HEADER_SIZE_BYTES +
sizeof_IF4p5_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
#define UDP_IF4p5_PULTICK_SIZE_BYTES (sizeof_IF4p5_header_t)
#define UDP_IF4p5_PULTICK_SIZE_BYTES (
UDP_HEADER_SIZE_BYTES + IPV4_HEADER_SIZE_BYTES +
sizeof_IF4p5_header_t)
#define UDP_IF4p5_PRACH_SIZE_BYTES (sizeof_IF4p5_header_t + PRACH_BLOCK_SIZE_BYTES)
#define UDP_IF4p5_PRACH_SIZE_BYTES (
UDP_HEADER_SIZE_BYTES + IPV4_HEADER_SIZE_BYTES +
sizeof_IF4p5_header_t + PRACH_BLOCK_SIZE_BYTES)
// Mobipass packet sizes
// Mobipass packet sizes
#define RAW_IF5_MOBIPASS_BLOCK_SIZE_BYTES 1280
#define RAW_IF5_MOBIPASS_BLOCK_SIZE_BYTES 1280
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.conf
View file @
91e12a97
...
@@ -17,7 +17,7 @@ eNBs =
...
@@ -17,7 +17,7 @@ eNBs =
mobile_country_code
=
"208"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"9
3
"
;
mobile_network_code
=
"9
2
"
;
//////////
Physical
parameters
:
//////////
Physical
parameters
:
...
@@ -31,7 +31,7 @@ eNBs =
...
@@ -31,7 +31,7 @@ eNBs =
tdd_config_s
=
0
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
eutra_band
=
7
;
downlink_frequency
=
26
85
000000
L
;
downlink_frequency
=
26
60
000000
L
;
uplink_frequency_offset
= -
120000000
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
Nid_cell
=
0
;
N_RB_DL
=
25
;
N_RB_DL
=
25
;
...
@@ -50,7 +50,7 @@ eNBs =
...
@@ -50,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
2
9
;
pdsch_referenceSignalPower
= -
2
4
;
pdsch_p_b
=
0
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_enable64QAM
=
"DISABLE"
;
...
@@ -86,7 +86,7 @@ eNBs =
...
@@ -86,7 +86,7 @@ eNBs =
rach_messagePowerOffsetGroupB
= ;
rach_messagePowerOffsetGroupB
= ;
*/
*/
rach_powerRampingStep
=
4
;
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
10
8
;
rach_preambleInitialReceivedTargetPower
= -
10
4
;
rach_preambleTransMax
=
10
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_macContentionResolutionTimer
=
48
;
...
@@ -137,7 +137,7 @@ eNBs =
...
@@ -137,7 +137,7 @@ eNBs =
//////////
MME
parameters
:
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"1
27.0.0.3
"
;
mme_ip_address
= ( {
ipv4
=
"1
92.168.12.26
"
;
ipv6
=
"192:168:30::17"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
active
=
"yes"
;
preference
=
"ipv4"
;
preference
=
"ipv4"
;
...
@@ -147,18 +147,18 @@ eNBs =
...
@@ -147,18 +147,18 @@ eNBs =
NETWORK_INTERFACES
:
NETWORK_INTERFACES
:
{
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
lo
"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
eth0
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
27.0.0.2
/24"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
92.168.12.19
/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
lo
"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
eth0
"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
27.0.0.5
/24"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
92.168.12.19
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
rrh_gw_config
= (
rrh_gw_config
= (
{
{
local_if_name
=
"e
th0
"
;
local_if_name
=
"e
m2
"
;
remote_address
=
"10.10.10.
60
"
;
remote_address
=
"10.10.10.
157
"
;
local_address
=
"10.10.10.
215
"
;
local_address
=
"10.10.10.
19
"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
rrh_gw_active
=
"yes"
;
...
@@ -177,7 +177,7 @@ eNBs =
...
@@ -177,7 +177,7 @@ eNBs =
hw_log_level
=
"info"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"
medium
"
;
phy_log_verbosity
=
"
info
"
;
mac_log_level
=
"info"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_level
=
"info"
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
View file @
91e12a97
...
@@ -17,7 +17,7 @@ eNBs =
...
@@ -17,7 +17,7 @@ eNBs =
mobile_country_code
=
"208"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"9
3
"
;
mobile_network_code
=
"9
2
"
;
//////////
Physical
parameters
:
//////////
Physical
parameters
:
...
@@ -31,7 +31,7 @@ eNBs =
...
@@ -31,7 +31,7 @@ eNBs =
tdd_config_s
=
0
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
eutra_band
=
7
;
downlink_frequency
=
26
85
000000
L
;
downlink_frequency
=
26
60
000000
L
;
uplink_frequency_offset
= -
120000000
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
N_RB_DL
=
50
;
...
@@ -50,7 +50,7 @@ eNBs =
...
@@ -50,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
2
7
;
pdsch_referenceSignalPower
= -
2
4
;
pdsch_p_b
=
0
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_enable64QAM
=
"DISABLE"
;
...
@@ -86,7 +86,7 @@ eNBs =
...
@@ -86,7 +86,7 @@ eNBs =
rach_messagePowerOffsetGroupB
= ;
rach_messagePowerOffsetGroupB
= ;
*/
*/
rach_powerRampingStep
=
4
;
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
10
8
;
rach_preambleInitialReceivedTargetPower
= -
10
4
;
rach_preambleTransMax
=
10
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_macContentionResolutionTimer
=
48
;
...
@@ -138,7 +138,7 @@ eNBs =
...
@@ -138,7 +138,7 @@ eNBs =
//////////
MME
parameters
:
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"1
27.0.0.3
"
;
mme_ip_address
= ( {
ipv4
=
"1
92.168.12.26
"
;
ipv6
=
"192:168:30::17"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
active
=
"yes"
;
preference
=
"ipv4"
;
preference
=
"ipv4"
;
...
@@ -148,18 +148,18 @@ eNBs =
...
@@ -148,18 +148,18 @@ eNBs =
NETWORK_INTERFACES
:
NETWORK_INTERFACES
:
{
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
lo
"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
eth0
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
27.0.0.2
/24"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
92.168.12.19
/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
lo
"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
eth0
"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
27.0.0.5
/24"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
92.168.12.19
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
rrh_gw_config
= (
rrh_gw_config
= (
{
{
local_if_name
=
"e
th0
"
;
local_if_name
=
"e
m2
"
;
remote_address
=
"10.10.10.
60
"
;
remote_address
=
"10.10.10.
157
"
;
local_address
=
"10.10.10.
215
"
;
local_address
=
"10.10.10.
19
"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
rrh_gw_active
=
"yes"
;
...
@@ -167,7 +167,7 @@ eNBs =
...
@@ -167,7 +167,7 @@ eNBs =
rf_preference
=
"usrp_b200"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
4
;
iq_txshift
=
4
;
tx_sample_advance
=
80
;
tx_sample_advance
=
80
;
tx_scheduling_advance
=
9
;
tx_scheduling_advance
=
9
;
}
}
);
);
...
...
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