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
lizhongxiao
OpenXG-RAN
Commits
511c48c7
Commit
511c48c7
authored
Nov 07, 2017
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Plain Diff
XMerge branch 'master' of gitlab.eurecom.fr:matzakos/LTE-D2D
parents
34f5368c
d9174256
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
3 deletions
+57
-3
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+7
-3
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.c
+47
-0
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/PHY_INTERFACE/phy_stub_UE.h
+3
-0
No files found.
openair2/LAYER2/MAC/ue_procedures.c
View file @
511c48c7
...
@@ -396,7 +396,10 @@ ue_send_sdu(
...
@@ -396,7 +396,10 @@ ue_send_sdu(
for
(
i
=
0
;
i
<
6
;
i
++
)
for
(
i
=
0
;
i
<
6
;
i
++
)
if
(
tx_sdu
[
i
]
!=
payload_ptr
[
i
])
{
if
(
tx_sdu
[
i
]
!=
payload_ptr
[
i
])
{
LOG_E
(
MAC
,
"[UE %d][RAPROC] Contention detected, RA failed
\n
"
,
module_idP
);
LOG_E
(
MAC
,
"[UE %d][RAPROC] Contention detected, RA failed
\n
"
,
module_idP
);
ra_failed
(
module_idP
,
CC_id
,
eNB_index
);
// Panos: Modification for phy_stub mode operation here. We only need to make sure that the ue_mode is back to
// PRACH state.
UE_mac_inst
[
module_idP
].
UE_mode
[
eNB_index
]
=
PRACH
;
//ra_failed(module_idP,CC_id,eNB_index);
UE_mac_inst
[
module_idP
].
RA_contention_resolution_timer_active
=
0
;
UE_mac_inst
[
module_idP
].
RA_contention_resolution_timer_active
=
0
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU
,
VCD_FUNCTION_OUT
);
return
;
return
;
...
@@ -417,7 +420,8 @@ ue_send_sdu(
...
@@ -417,7 +420,8 @@ ue_send_sdu(
#ifdef DEBUG_HEADER_PARSING
#ifdef DEBUG_HEADER_PARSING
LOG_D
(
MAC
,
"[UE] CE %d : UE Timing Advance : %d
\n
"
,
i
,
payload_ptr
[
0
]);
LOG_D
(
MAC
,
"[UE] CE %d : UE Timing Advance : %d
\n
"
,
i
,
payload_ptr
[
0
]);
#endif
#endif
process_timing_advance
(
module_idP
,
CC_id
,
payload_ptr
[
0
]);
// Panos: Eliminate call to process_timing_advance for the phy_stub UE operation mode. Is this correct?
//process_timing_advance(module_idP,CC_id,payload_ptr[0]);
payload_ptr
++
;
payload_ptr
++
;
break
;
break
;
...
@@ -1592,7 +1596,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
...
@@ -1592,7 +1596,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
// build PHR and update the timers
// build PHR and update the timers
if
(
phr_ce_len
==
sizeof
(
POWER_HEADROOM_CMD
))
{
if
(
phr_ce_len
==
sizeof
(
POWER_HEADROOM_CMD
))
{
//Panos: Substitute with a static value for the MAC layer abstraction
//Panos: Substitute with a static value for the MAC layer abstraction
(phy_stub mode)
//phr_p->PH = get_phr_mapping(module_idP,CC_id,eNB_index);
//phr_p->PH = get_phr_mapping(module_idP,CC_id,eNB_index);
phr_p
->
PH
=
40
;
phr_p
->
PH
=
40
;
phr_p
->
R
=
0
;
phr_p
->
R
=
0
;
...
...
openair2/PHY_INTERFACE/phy_stub_UE.c
View file @
511c48c7
...
@@ -17,6 +17,9 @@
...
@@ -17,6 +17,9 @@
//extern uint8_t nfapi_pnf;
//extern uint8_t nfapi_pnf;
//UL_IND_t *UL_INFO;
//UL_IND_t *UL_INFO;
void
Msg1_transmitted
(
module_id_t
module_idP
,
uint8_t
CC_id
,
frame_t
frameP
,
uint8_t
eNB_id
);
void
Msg3_transmitted
(
module_id_t
module_idP
,
uint8_t
CC_id
,
frame_t
frameP
,
uint8_t
eNB_id
);
void
fill_rx_indication_UE_MAC
(
module_id_t
Mod_id
,
int
frame
,
int
subframe
,
UL_IND_t
*
UL_INFO
,
uint8_t
*
ulsch_buffer
,
uint16_t
buflen
,
uint16_t
rnti
)
void
fill_rx_indication_UE_MAC
(
module_id_t
Mod_id
,
int
frame
,
int
subframe
,
UL_IND_t
*
UL_INFO
,
uint8_t
*
ulsch_buffer
,
uint16_t
buflen
,
uint16_t
rnti
)
...
@@ -865,6 +868,50 @@ int dl_config_req_UE_MAC(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_
...
@@ -865,6 +868,50 @@ int dl_config_req_UE_MAC(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_
int
hi_dci0_req_UE_MAC
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
)
{
LOG_D
(
PHY
,
"[UE-PHY_STUB] hi dci0 request sfn_sf:%d number_of_dci:%d number_of_hi:%d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
req
->
hi_dci0_request_body
.
number_of_dci
,
req
->
hi_dci0_request_body
.
number_of_hi
);
//phy_info* phy = (phy_info*)(pnf_p7->user_data);
module_id_t
Mod_id
=
0
;
//Panos: Currently static (only for one UE) but this should change.
/*struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0];
eNB_rxtx_proc_t *proc = &eNB->proc.proc_rxtx[0];*/
for
(
int
i
=
0
;
i
<
req
->
hi_dci0_request_body
.
number_of_dci
+
req
->
hi_dci0_request_body
.
number_of_hi
;
i
++
)
{
LOG_D
(
PHY
,
"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d]
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
);
if
(
req
->
hi_dci0_request_body
.
hi_dci0_pdu_list
[
i
].
pdu_type
==
NFAPI_HI_DCI0_DCI_PDU_TYPE
)
{
LOG_D
(
PHY
,
"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_DCI_PDU_TYPE not used
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
);
}
else
if
(
req
->
hi_dci0_request_body
.
hi_dci0_pdu_list
[
i
].
pdu_type
==
NFAPI_HI_DCI0_HI_PDU_TYPE
)
{
LOG_D
(
PHY
,
"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_HI_PDU_TYPE
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
);
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_req_pdu
=
&
req
->
hi_dci0_request_body
.
hi_dci0_pdu_list
[
i
];
// This is meaningful only after ACKnowledging the first ULSCH Txon (i.e. Msg3)
if
(
hi_dci0_req_pdu
->
hi_pdu
.
hi_pdu_rel8
.
hi_value
==
1
&&
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
==
1
){
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
}
}
else
{
LOG_E
(
PHY
,
"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - unknown pdu type:%d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
,
req
->
hi_dci0_request_body
.
hi_dci0_pdu_list
[
i
].
pdu_type
);
}
}
return
0
;
}
/*void handle_nfapi_UE_Rx(uint8_t Mod_id, Sched_Rsp_t *Sched_INFO, int eNB_id){
/*void handle_nfapi_UE_Rx(uint8_t Mod_id, Sched_Rsp_t *Sched_INFO, int eNB_id){
// copy data from eNB L2 interface to UE L2 interface
// copy data from eNB L2 interface to UE L2 interface
...
...
openair2/PHY_INTERFACE/phy_stub_UE.h
View file @
511c48c7
...
@@ -80,5 +80,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
...
@@ -80,5 +80,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
int
tx_req_UE_MAC
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_tx_request_t
*
req
);
int
tx_req_UE_MAC
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_tx_request_t
*
req
);
int
hi_dci0_req_UE_MAC
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
);
#endif
/* PHY_STUB_UE_H_ */
#endif
/* PHY_STUB_UE_H_ */
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