Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG UE
Commits
079afffb
Commit
079afffb
authored
Jun 18, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_RRC_PRACH_procedures' into NR_RRC_harq_hacks
parents
6b2fa8f8
956cba77
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
171 additions
and
82 deletions
+171
-82
ci-scripts/oai-ci-vm-tool
ci-scripts/oai-ci-vm-tool
+1
-1
ci-scripts/runTestOnVM.sh
ci-scripts/runTestOnVM.sh
+25
-0
doc/FEATURE_SET.md
doc/FEATURE_SET.md
+115
-58
doc/RUNMODEM.md
doc/RUNMODEM.md
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+3
-0
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+1
-0
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+3
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+1
-1
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+5
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+2
-2
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+1
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+11
-11
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
+1
-1
No files found.
ci-scripts/oai-ci-vm-tool
View file @
079afffb
...
...
@@ -197,7 +197,7 @@ function variant__v4__cppcheck {
}
function
variant__v5__gnb_usrp
{
VM_MEMORY
=
8192
VM_MEMORY
=
10240
VM_CPU
=
8
NB_PATTERN_FILES
=
9
BUILD_OPTIONS
=
"--gNB -w USRP"
...
...
ci-scripts/runTestOnVM.sh
View file @
079afffb
...
...
@@ -89,6 +89,9 @@ function start_basic_sim_enb {
fi
done
ENB_SYNC
=
0
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_VM_IP_ADDR
<
$1
rm
$1
if
[
$i
-lt
50
]
then
...
...
@@ -151,6 +154,9 @@ function start_basic_sim_ue {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$2
<
$1
rm
$1
if
[
$i
-lt
50
]
then
...
...
@@ -764,6 +770,9 @@ function start_l2_sim_enb {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_ENB_VM_IP_ADDR
<
$1
rm
$1
ENB_SYNC
=
1
if
[
$i
-lt
50
]
...
...
@@ -872,6 +881,9 @@ function start_l2_sim_ue {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_UE_VM_IP_ADDR
<
$1
rm
$1
UE_SYNC
=
1
if
[
$i
-lt
50
]
...
...
@@ -985,6 +997,9 @@ function start_rf_sim_enb {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_ENB_VM_IP_ADDR
<
$1
rm
$1
if
[
$i
-lt
50
]
then
...
...
@@ -1114,6 +1129,9 @@ function start_rf_sim_ue {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_UE_VM_IP_ADDR
<
$1
rm
$1
if
[
$i
-lt
50
]
then
...
...
@@ -1236,6 +1254,10 @@ function start_rf_sim_gnb {
fi
fi
sleep
10
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_GNB_VM_IP_ADDR
<
$1
rm
$1
# Copy the RAW files from the gNB run for the NR-UE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_GNB_VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/ran_build/build/rbconfig.raw
.
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_GNB_VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/ran_build/build/reconfig.raw
.
...
...
@@ -1310,6 +1332,9 @@ function start_rf_sim_nr_ue {
i
=
$[$i
+1]
fi
done
echo
"echo
\"
free -m
\"
"
>
$1
echo
"free -m"
>>
$1
ssh
-T
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_NR_UE_VM_IP_ADDR
<
$1
rm
$1
if
[
$i
-lt
50
]
then
...
...
doc/FEATURE_SET.md
View file @
079afffb
This diff is collapsed.
Click to expand it.
doc/RUNMODEM.md
View file @
079afffb
...
...
@@ -70,7 +70,7 @@ This setup requires an EPC, an OAI eNB and gNB, and a COTS Phone. A dedicated pa
### Launch eNB
```
bash sudo ./lte-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
```
bash sudo ./lte-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
```
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
079afffb
...
...
@@ -460,6 +460,9 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
}
//}
NR_UL_UE_HARQ_t
*
harq_process_ulsch
=
NULL
;
harq_process_ulsch
=
UE
->
ulsch
[
thread_id
][
gNB_id
][
0
]
->
harq_processes
[
harq_pid
];
harq_process_ulsch
->
status
=
SCH_IDLE
;
///////////
////////////////////////////////////////////////////////////////////////
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
079afffb
...
...
@@ -152,6 +152,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
memcpy
(
pusch_pdu
,
pusch_config_pdu
,
sizeof
(
nfapi_nr_ue_pusch_pdu_t
));
ulsch0
->
f_pusch
=
pusch_config_pdu
->
absolute_delta_PUSCH
;
ulsch0
->
harq_processes
[
current_harq_pid
]
->
status
=
ACTIVE
;
break
;
case
(
FAPI_NR_UL_CONFIG_TYPE_PUCCH
):
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
079afffb
...
...
@@ -2234,7 +2234,9 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
#endif
if
(
ue
->
UE_mode
[
gNB_id
]
==
PUSCH
||
get_softmodem_params
()
->
phy_test
==
1
){
nr_ue_ulsch_procedures
(
ue
,
harq_pid
,
frame_tx
,
slot_tx
,
thread_id
,
gNB_id
);
if
(
ue
->
ulsch
[
thread_id
][
gNB_id
][
0
]
->
harq_processes
[
harq_pid
]
->
status
==
ACTIVE
)
nr_ue_ulsch_procedures
(
ue
,
harq_pid
,
frame_tx
,
slot_tx
,
thread_id
,
gNB_id
);
/*
if (ue->UE_mode[eNB_id] == PUSCH) {
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
079afffb
...
...
@@ -240,7 +240,7 @@ typedef struct {
#define DL_SCH_LCID_CCCH 0x00
#define DL_SCH_LCID_DCCH 0x01
#define DL_SCH_LCID_DCCH1 0x02
#define DL_SCH_LCID_DTCH 0x0
3
#define DL_SCH_LCID_DTCH 0x0
4
#define DL_SCH_LCID_RECOMMENDED_BITRATE 0x2F
#define DL_SCH_LCID_SP_ZP_CSI_RS_RES_SET_ACT 0x30
#define DL_SCH_LCID_PUCCH_SPATIAL_RELATION_ACT 0x31
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
079afffb
...
...
@@ -139,7 +139,7 @@ void nr_ue_process_mac_pdu(module_id_t module_idP,
NR_UL_TIME_ALIGNMENT_t
*
ul_time_alignment
);
u
nsigned
char
nr_generate_ulsch_pdu
(
uint8_t
*
sdus_payload
,
u
int16_t
nr_generate_ulsch_pdu
(
uint8_t
*
sdus_payload
,
uint8_t
*
pdu
,
uint8_t
num_sdus
,
uint16_t
*
sdu_lengths
,
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
079afffb
...
...
@@ -757,7 +757,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
}
*/
}
}
else
if
(
ul_info
)
{
}
else
if
(
ul_info
&&
ul_info
->
slot_tx
==
8
)
{
module_id_t
mod_id
=
ul_info
->
module_id
;
uint32_t
gNB_index
=
ul_info
->
gNB_index
;
int
cc_id
=
ul_info
->
cc_id
;
...
...
@@ -3809,7 +3809,7 @@ void nr_ue_process_mac_pdu(module_id_t module_idP,
/////* ULSCH MAC PDU generation (6.1.2 TS 38.321) */////
////////////////////////////////////////////////////////
u
nsigned
char
nr_generate_ulsch_pdu
(
uint8_t
*
sdus_payload
,
u
int16_t
nr_generate_ulsch_pdu
(
uint8_t
*
sdus_payload
,
uint8_t
*
pdu
,
uint8_t
num_sdus
,
uint16_t
*
sdu_lengths
,
...
...
@@ -3824,7 +3824,8 @@ unsigned char nr_generate_ulsch_pdu(uint8_t *sdus_payload,
NR_MAC_SUBHEADER_FIXED
*
mac_pdu_ptr
=
(
NR_MAC_SUBHEADER_FIXED
*
)
pdu
;
unsigned
char
last_size
=
0
,
i
,
mac_header_control_elements
[
16
],
*
ce_ptr
,
bsr
=
0
;
int
mac_ce_size
,
offset
;
int
mac_ce_size
;
uint16_t
offset
=
0
;
LOG_D
(
MAC
,
"[UE] Generating ULSCH PDU : num_sdus %d
\n
"
,
num_sdus
);
...
...
@@ -3974,7 +3975,7 @@ unsigned char nr_generate_ulsch_pdu(uint8_t *sdus_payload,
// compute final offset
offset
=
((
unsigned
char
*
)
mac_pdu_ptr
-
pdu
);
//printf("Offset %d \n", ((unsigned char *) mac_pdu_ptr -
mac_
pdu));
//printf("Offset %d \n", ((unsigned char *) mac_pdu_ptr - pdu));
return
offset
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
079afffb
...
...
@@ -209,7 +209,7 @@ void nr_process_mac_pdu(
mac_subheader_len
=
2
;
}
LOG_D
(
MAC
,
"[UE %d] Frame %d :
DLSCH -> D
L-DTCH %d (gNB %d, %d bytes)
\n
"
,
module_idP
,
frameP
,
rx_lcid
,
module_idP
,
mac_sdu_len
);
LOG_D
(
MAC
,
"[UE %d] Frame %d :
ULSCH -> U
L-DTCH %d (gNB %d, %d bytes)
\n
"
,
module_idP
,
frameP
,
rx_lcid
,
module_idP
,
mac_sdu_len
);
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
LOG_T
(
MAC
,
"[UE %d] First 32 bytes of DLSCH :
\n
"
,
module_idP
);
...
...
@@ -249,7 +249,7 @@ void nr_process_mac_pdu(
pdu_len
-=
(
mac_subheader_len
+
mac_ce_len
+
mac_sdu_len
);
if
(
pdu_len
<
0
)
{
LOG_E
(
MAC
,
"%s() residual mac pdu length < 0!
\n
"
,
__func__
);
LOG_E
(
MAC
,
"%s() residual mac pdu length < 0!
, pdu_len: %d
\n
"
,
__func__
,
pdu_len
);
return
;
}
}
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
079afffb
...
...
@@ -2390,7 +2390,7 @@ void nr_ip_over_LTE_DRB_preconfiguration(void){
// 1 + drb_identiy_index;
DRB_config
->
drb_Identity
=
1
;
DRB_config
->
logicalChannelIdentity
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
DRB_config
->
logicalChannelIdentity
)
=
DRB_config
->
drb_Identity
+
2
;
//(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
*
(
DRB_config
->
logicalChannelIdentity
)
=
DRB_config
->
drb_Identity
+
3
;
//(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
DRB_rlc_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_rlc_config
));
DRB_config
->
rlc_Config
=
DRB_rlc_config
;
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
079afffb
...
...
@@ -72,8 +72,8 @@ void mac_rlc_data_ind (
LOG_I
(
RLC
,
"RLC instance for the given UE was not found
\n
"
);
switch
(
channel_idP
)
{
case
1
...
2
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
3
...
7
:
rb
=
ue
->
drb
[
channel_idP
-
3
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
}
...
...
@@ -113,8 +113,8 @@ tbs_size_t mac_rlc_data_req(
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
rntiP
);
switch
(
channel_idP
)
{
case
1
...
2
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
3
...
7
:
rb
=
ue
->
drb
[
channel_idP
-
3
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
}
...
...
@@ -123,7 +123,7 @@ tbs_size_t mac_rlc_data_req(
maxsize
=
tb_sizeP
;
ret
=
rb
->
generate_pdu
(
rb
,
buffer_pP
,
maxsize
);
}
else
{
LOG_E
(
RLC
,
"%s:%d:%s: fatal: data req for unknown RB
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_E
(
RLC
,
"%s:%d:%s: fatal: data req for unknown RB
, channel_idP: %d
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
channel_idP
);
exit
(
1
);
ret
=
0
;
}
...
...
@@ -166,8 +166,8 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
rntiP
);
switch
(
channel_idP
)
{
case
1
...
2
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
3
...
7
:
rb
=
ue
->
drb
[
channel_idP
-
3
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
}
...
...
@@ -227,8 +227,8 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
rntiP
);
switch
(
channel_idP
)
{
case
1
...
2
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
3
...
7
:
rb
=
ue
->
drb
[
channel_idP
-
3
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
}
...
...
@@ -654,7 +654,7 @@ static void add_drb_am(int rnti, struct LTE_DRB_ToAddMod *s)
exit
(
1
);
}
if
(
channel_id
!=
drb_id
+
2
)
{
if
(
channel_id
!=
drb_id
+
3
)
{
LOG_E
(
RLC
,
"%s:%d:%s: todo, remove this limitation
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
...
...
@@ -737,7 +737,7 @@ static void add_drb_um(int rnti, struct LTE_DRB_ToAddMod *s)
exit
(
1
);
}
if
(
channel_id
!=
drb_id
+
2
)
{
if
(
channel_id
!=
drb_id
+
3
)
{
LOG_E
(
RLC
,
"%s:%d:%s: todo, remove this limitation
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
View file @
079afffb
...
...
@@ -28,7 +28,7 @@ typedef void nr_rlc_ue_manager_t;
typedef
struct
nr_rlc_ue_t
{
int
rnti
;
nr_rlc_entity_t
*
srb
[
2
];
nr_rlc_entity_t
*
srb
[
3
];
nr_rlc_entity_t
*
drb
[
5
];
}
nr_rlc_ue_t
;
...
...
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