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
1
Merge Requests
1
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-RAN
Commits
c5f82f6d
Commit
c5f82f6d
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
338c0dbd
3bce9a7b
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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
This diff is collapsed.
Click to expand it.
doc/RUNMODEM.md
View file @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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 @
c5f82f6d
...
...
@@ -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