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
canghaiwuhen
OpenXG-RAN
Commits
73b5cad4
Commit
73b5cad4
authored
Aug 29, 2018
by
Xu Bo
Committed by
Y_Tomita
Sep 12, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed some problems for L2 FAPI simulator.
parent
957bd567
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
709 additions
and
50 deletions
+709
-50
cmake_targets/tools/init_nas_s1
cmake_targets/tools/init_nas_s1
+7
-7
openair2/COMMON/platform_constants.h
openair2/COMMON/platform_constants.h
+4
-4
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+9
-3
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+2
-0
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+9
-5
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
+1
-1
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+5
-5
openair2/NETWORK_DRIVER/MESH/local.h
openair2/NETWORK_DRIVER/MESH/local.h
+10
-0
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.c
+22
-4
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/PHY_INTERFACE/phy_stub_UE.h
+2
-2
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+1
-1
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
+591
-3
openair3/NAS/UE/ESM/esm_ebr_context.c
openair3/NAS/UE/ESM/esm_ebr_context.c
+15
-1
targets/COMMON/openairinterface5g_limits.h
targets/COMMON/openairinterface5g_limits.h
+2
-2
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+1
-1
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+26
-9
targets/RT/USER/lte-uesoftmodem.c
targets/RT/USER/lte-uesoftmodem.c
+1
-1
No files found.
cmake_targets/tools/init_nas_s1
View file @
73b5cad4
...
@@ -52,20 +52,20 @@ load_module ../../targets/bin/ue_ip.ko
...
@@ -52,20 +52,20 @@ load_module ../../targets/bin/ue_ip.ko
if
[
"
$1
"
=
"UE"
]
;
then
if
[
"
$1
"
=
"UE"
]
;
then
echo
"bring up
$LTEIF
interface for UE"
echo
"bring up
$LTEIF
interface for UE"
ifconfig
$LTEIF
up
sudo
ifconfig
$LTEIF
up
fi
fi
ip route flush cache
sudo
ip route flush cache
sleep
1
sleep
1
sysctl
-w
net.ipv4.conf.all.log_martians
=
1
s
udo
s
ysctl
-w
net.ipv4.conf.all.log_martians
=
1
echo
"Disabling reverse path filtering"
echo
"Disabling reverse path filtering"
sysctl
-w
net.ipv4.conf.all.rp_filter
=
0
s
udo
s
ysctl
-w
net.ipv4.conf.all.rp_filter
=
0
ip route flush cache
sudo
ip route flush cache
# Check table 200 lte in /etc/iproute2/rt_tables
# Check table 200 lte in /etc/iproute2/rt_tables
fgrep lte /etc/iproute2/rt_tables
>
/dev/null
fgrep lte /etc/iproute2/rt_tables
>
/dev/null
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"200 lte "
>>
/etc/iproute2/rt_tables
echo
"200 lte "
>>
/etc/iproute2/rt_tables
fi
fi
ip rule add fwmark 1 table lte
sudo
ip rule add fwmark 1 table lte
ip route add default dev
$LTEIF
table lte
sudo
ip route add default dev
$LTEIF
table lte
openair2/COMMON/platform_constants.h
View file @
73b5cad4
...
@@ -73,14 +73,14 @@
...
@@ -73,14 +73,14 @@
# define MAX_MOBILES_PER_ENB_NB_IoT 128
# define MAX_MOBILES_PER_ENB_NB_IoT 128
# define MAX_eNB 2
# define MAX_eNB 2
# else
# else
# define MAX_MOBILES_PER_ENB
16
# define MAX_MOBILES_PER_ENB
64
# define MAX_MOBILES_PER_ENB_NB_IoT
16
# define MAX_MOBILES_PER_ENB_NB_IoT
64
# define MAX_eNB
2
# define MAX_eNB
1
# endif
# endif
#else
#else
# define MAX_MOBILES_PER_ENB 256
# define MAX_MOBILES_PER_ENB 256
# define MAX_MOBILES_PER_ENB_NB_IoT 256
# define MAX_MOBILES_PER_ENB_NB_IoT 256
# define MAX_eNB
2
# define MAX_eNB
1
#endif
#endif
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
73b5cad4
...
@@ -501,7 +501,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
...
@@ -501,7 +501,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
#endif
#endif
{
{
if
((
ra
->
Msg2_frame
==
frameP
)
&&
(
ra
->
Msg2_subframe
==
subframeP
))
{
if
((
(
ra
->
Msg2_frame
==
frameP
)
&&
(
ra
->
Msg2_subframe
==
subframeP
))
||
(
nfapi_mode
==
2
))
{
LOG_D
(
MAC
,
LOG_D
(
MAC
,
"[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, state %d
\n
"
,
"[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, state %d
\n
"
,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
state
);
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
state
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
73b5cad4
...
@@ -1286,6 +1286,7 @@ fill_nfapi_ulsch_harq_information(module_id_t module_
...
@@ -1286,6 +1286,7 @@ fill_nfapi_ulsch_harq_information(module_id_t module_
*/
*/
#endif
#endif
harq_information
->
harq_information_rel10
.
delta_offset_harq
=
puschConfigDedicated
->
betaOffset_ACK_Index
;
harq_information
->
harq_information_rel10
.
delta_offset_harq
=
puschConfigDedicated
->
betaOffset_ACK_Index
;
harq_information
->
harq_information_rel10
.
tl
.
tag
=
NFAPI_UL_CONFIG_REQUEST_ULSCH_HARQ_INFORMATION_REL10_TAG
;
AssertFatal
(
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
->
pucch_ConfigDedicated
!=
NULL
,
AssertFatal
(
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
->
pucch_ConfigDedicated
!=
NULL
,
"pucch_ConfigDedicated is null!
\n
"
);
"pucch_ConfigDedicated is null!
\n
"
);
if
((
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
->
pucch_ConfigDedicated
->
tdd_AckNackFeedbackMode
!=
NULL
)
if
((
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
->
pucch_ConfigDedicated
->
tdd_AckNackFeedbackMode
!=
NULL
)
...
@@ -3630,9 +3631,14 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id,
...
@@ -3630,9 +3631,14 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id,
AssertFatal
(
num_ack_nak
==
1
,
AssertFatal
(
num_ack_nak
==
1
,
"num_ack_nak %d > 1 for 1 CC and single-layer transmission frame:%d subframe:%d
\n
"
,
"num_ack_nak %d > 1 for 1 CC and single-layer transmission frame:%d subframe:%d
\n
"
,
num_ack_nak
,
frameP
,
subframeP
);
num_ack_nak
,
frameP
,
subframeP
);
AssertFatal
(
sched_ctl
->
round
[
CC_idP
][
harq_pid
]
<
8
,
"Got ACK/NAK for inactive harq_pid %d for UE %d/%x
\n
"
,
// AssertFatal(sched_ctl->round[CC_idP][harq_pid] < 8,
harq_pid
,
UE_id
,
rnti
);
// "Got ACK/NAK for inactive harq_pid %d for UE %d/%x\n",
// harq_pid, UE_id, rnti);
if
(
sched_ctl
->
round
[
CC_idP
][
harq_pid
]
==
8
){
return
;
}
AssertFatal
(
pdu
[
0
]
==
1
||
pdu
[
0
]
==
2
AssertFatal
(
pdu
[
0
]
==
1
||
pdu
[
0
]
==
2
||
pdu
[
0
]
==
4
,
||
pdu
[
0
]
==
4
,
"Received ACK/NAK %d which is not 1 or 2 for harq_pid %d from UE %d/%x
\n
"
,
"Received ACK/NAK %d which is not 1 or 2 for harq_pid %d from UE %d/%x
\n
"
,
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
73b5cad4
...
@@ -70,6 +70,8 @@ extern uint8_t usim_test;
...
@@ -70,6 +70,8 @@ extern uint8_t usim_test;
extern
UL_IND_t
*
UL_INFO
;
extern
UL_IND_t
*
UL_INFO
;
extern
uint8_t
nfapi_mode
;
extern
uint8_t
nfapi_mode
;
extern
int
next_ra_frame
;
extern
module_id_t
next_Mod_id
;
/*
/*
*
*
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
100644 → 100755
View file @
73b5cad4
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
#include "platform_constants.h"
#include "platform_constants.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "msc.h"
#include "msc.h"
#include "targets/COMMON/openairinterface5g_limits.h"
#if defined(ENABLE_SECURITY)
#if defined(ENABLE_SECURITY)
# include "UTIL/OSA/osa_defs.h"
# include "UTIL/OSA/osa_defs.h"
#endif
#endif
...
@@ -79,6 +79,7 @@ extern RAN_CONTEXT_t RC;
...
@@ -79,6 +79,7 @@ extern RAN_CONTEXT_t RC;
static
int
mbms_socket
=
-
1
;
static
int
mbms_socket
=
-
1
;
#endif
#endif
hash_table_t
*
pdcp_coll_p
=
NULL
;
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
/*
/*
* If PDCP_UNIT_TEST is set here then data flow between PDCP and RLC is broken
* If PDCP_UNIT_TEST is set here then data flow between PDCP and RLC is broken
...
@@ -368,8 +369,10 @@ boolean_t pdcp_data_req(
...
@@ -368,8 +369,10 @@ boolean_t pdcp_data_req(
rlc_status
=
rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_NO
,
rb_idP
,
muiP
,
confirmP
,
pdcp_pdu_size
,
pdcp_pdu_p
rlc_status
=
rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_NO
,
rb_idP
,
muiP
,
confirmP
,
pdcp_pdu_size
,
pdcp_pdu_p
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
sourceL2Id
//,sourceL2Id
,
destinationL2Id
//,destinationL2Id
,
NULL
,
NULL
#endif
#endif
);
);
...
@@ -800,7 +803,8 @@ pdcp_data_ind(
...
@@ -800,7 +803,8 @@ pdcp_data_ind(
}
else
{
}
else
{
((
pdcp_data_ind_header_t
*
)
new_sdu_p
->
data
)
->
rb_id
=
rb_id
+
(
ctxt_pP
->
module_id
*
maxDRB
);
((
pdcp_data_ind_header_t
*
)
new_sdu_p
->
data
)
->
rb_id
=
rb_id
+
(
ctxt_pP
->
module_id
*
maxDRB
);
}
}
((
pdcp_data_ind_header_t
*
)
new_sdu_p
->
data
)
->
inst
=
ctxt_pP
->
module_id
;
//((pdcp_data_ind_header_t*) new_sdu_p->data)->inst = ctxt_pP->module_id;
#ifdef DEBUG_PDCP_FIFO_FLUSH_SDU
#ifdef DEBUG_PDCP_FIFO_FLUSH_SDU
static
uint32_t
pdcp_inst
=
0
;
static
uint32_t
pdcp_inst
=
0
;
...
@@ -2014,7 +2018,7 @@ void pdcp_layer_init(void)
...
@@ -2014,7 +2018,7 @@ void pdcp_layer_init(void)
* Initialize SDU list
* Initialize SDU list
*/
*/
list_init
(
&
pdcp_sdu_list
,
NULL
);
list_init
(
&
pdcp_sdu_list
,
NULL
);
pdcp_coll_p
=
hashtable_create
((
maxDRB
+
2
)
*
16
,
NULL
,
pdcp_free
);
pdcp_coll_p
=
hashtable_create
((
maxDRB
+
2
)
*
NUMBER_OF_UE_MAX
,
NULL
,
pdcp_free
);
AssertFatal
(
pdcp_coll_p
!=
NULL
,
"UNRECOVERABLE error, PDCP hashtable_create failed"
);
AssertFatal
(
pdcp_coll_p
!=
NULL
,
"UNRECOVERABLE error, PDCP hashtable_create failed"
);
for
(
instance
=
0
;
instance
<
MAX_MOBILES_PER_ENB
;
instance
++
)
{
for
(
instance
=
0
;
instance
<
MAX_MOBILES_PER_ENB
;
instance
++
)
{
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
View file @
73b5cad4
...
@@ -542,7 +542,7 @@ sdu_size_t pdcp_input_sdu_remaining_size_to_read;
...
@@ -542,7 +542,7 @@ sdu_size_t pdcp_input_sdu_remaining_size_to_read;
(((hash_key_t)(sESSION_ID)) << 37) | \
(((hash_key_t)(sESSION_ID)) << 37) | \
(((hash_key_t)(0x0000000000000001)) << 63))
(((hash_key_t)(0x0000000000000001)) << 63))
hash_table_t
*
pdcp_coll_p
;
extern
hash_table_t
*
pdcp_coll_p
;
#endif
#endif
/*@}*/
/*@}*/
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
View file @
73b5cad4
...
@@ -168,7 +168,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const ctxt_pP)
...
@@ -168,7 +168,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const ctxt_pP)
((
pdcp_data_ind_header_t
*
)
sdu_p
->
data
)
->
inst
,
((
pdcp_data_ind_header_t
*
)
sdu_p
->
data
)
->
inst
,
((
pdcp_data_ind_header_t
*
)
sdu_p
->
data
)
->
data_size
);
((
pdcp_data_ind_header_t
*
)
sdu_p
->
data
)
->
data_size
);
#else
#else
((
pdcp_data_ind_header_t
*
)(
sdu_p
->
data
))
->
inst
=
0
;
//
((pdcp_data_ind_header_t *)(sdu_p->data))->inst = 0;
#endif
#endif
#if defined(LINK_ENB_PDCP_TO_GTPV1U)
#if defined(LINK_ENB_PDCP_TO_GTPV1U)
...
@@ -1083,8 +1083,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
...
@@ -1083,8 +1083,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
(
unsigned
char
*
)
NLMSG_DATA
(
nas_nlh_rx
),
(
unsigned
char
*
)
NLMSG_DATA
(
nas_nlh_rx
),
PDCP_TRANSMISSION_MODE_DATA
PDCP_TRANSMISSION_MODE_DATA
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
&
pdcp_read_header_g
.
sourceL2Id
,
NULL
,
NULL
//,
&pdcp_read_header_g.sourceL2Id
,
&
pdcp_read_header_g
.
destinationL2Id
//
,&pdcp_read_header_g.destinationL2Id
#endif
#endif
);
);
}
else
{
}
else
{
...
@@ -1141,8 +1141,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
...
@@ -1141,8 +1141,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
(
unsigned
char
*
)
NLMSG_DATA
(
nas_nlh_rx
),
(
unsigned
char
*
)
NLMSG_DATA
(
nas_nlh_rx
),
PDCP_TRANSMISSION_MODE_DATA
PDCP_TRANSMISSION_MODE_DATA
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
&
pdcp_read_header_g
.
sourceL2Id
,
NULL
,
NULL
//,
&pdcp_read_header_g.sourceL2Id
,
&
pdcp_read_header_g
.
destinationL2Id
//
,&pdcp_read_header_g.destinationL2Id
#endif
#endif
);
);
}
}
...
...
openair2/NETWORK_DRIVER/MESH/local.h
View file @
73b5cad4
...
@@ -64,6 +64,8 @@
...
@@ -64,6 +64,8 @@
#include "rrc_nas_primitives.h"
#include "rrc_nas_primitives.h"
#include "COMMON/platform_types.h"
#include "COMMON/platform_types.h"
#define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c))
struct
rb_entity
{
struct
rb_entity
{
nasRadioBearerId_t
rab_id
;
nasRadioBearerId_t
rab_id
;
nasSapId_t
sapi
;
nasSapId_t
sapi
;
...
@@ -160,6 +162,10 @@ typedef struct pdcp_data_req_header_s {
...
@@ -160,6 +162,10 @@ typedef struct pdcp_data_req_header_s {
sdu_size_t
data_size
;
sdu_size_t
data_size
;
signed
int
inst
;
signed
int
inst
;
ip_traffic_type_t
traffic_type
;
ip_traffic_type_t
traffic_type
;
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
uint32_t
sourceL2Id
;
uint32_t
destinationL2Id
;
#endif
}
pdcp_data_req_header_t
;
}
pdcp_data_req_header_t
;
typedef
struct
pdcp_data_ind_header_s
{
typedef
struct
pdcp_data_ind_header_s
{
...
@@ -167,6 +173,10 @@ typedef struct pdcp_data_ind_header_s {
...
@@ -167,6 +173,10 @@ typedef struct pdcp_data_ind_header_s {
sdu_size_t
data_size
;
sdu_size_t
data_size
;
signed
int
inst
;
signed
int
inst
;
ip_traffic_type_t
dummy_traffic_type
;
ip_traffic_type_t
dummy_traffic_type
;
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
uint32_t
sourceL2Id
;
uint32_t
destinationL2Id
;
#endif
}
pdcp_data_ind_header_t
;
}
pdcp_data_ind_header_t
;
extern
struct
net_device
*
nasdev
[
NB_INSTANCES_MAX
];
extern
struct
net_device
*
nasdev
[
NB_INSTANCES_MAX
];
...
...
openair2/PHY_INTERFACE/phy_stub_UE.c
View file @
73b5cad4
...
@@ -158,7 +158,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
...
@@ -158,7 +158,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
LOG_D
(
MAC
,
"fill_rach_indication_UE_MAC 1
\n
"
);
LOG_D
(
MAC
,
"fill_rach_indication_UE_MAC 1
\n
"
);
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
UL_INFO
=
(
UL_IND_t
*
)
malloc
(
sizeof
(
UL_IND_t
));
//
UL_INFO = (UL_IND_t*)malloc(sizeof(UL_IND_t));
UL_INFO
->
rach_ind
.
rach_indication_body
.
number_of_preambles
=
1
;
UL_INFO
->
rach_ind
.
rach_indication_body
.
number_of_preambles
=
1
;
...
@@ -195,7 +195,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
...
@@ -195,7 +195,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
// with that branch.
// with that branch.
oai_nfapi_rach_ind
(
&
UL_INFO
->
rach_ind
);
oai_nfapi_rach_ind
(
&
UL_INFO
->
rach_ind
);
free
(
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
);
free
(
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
);
free
(
UL_INFO
);
//
free(UL_INFO);
//}
//}
pthread_mutex_unlock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
pthread_mutex_unlock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
...
@@ -311,6 +311,7 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
...
@@ -311,6 +311,7 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
else
if
(
SNRtimes10
>
635
)
pdu
->
ul_cqi_information
.
ul_cqi
=
255
;
else
if
(
SNRtimes10
>
635
)
pdu
->
ul_cqi_information
.
ul_cqi
=
255
;
else
pdu
->
ul_cqi_information
.
ul_cqi
=
(
640
+
SNRtimes10
)
/
5
;
else
pdu
->
ul_cqi_information
.
ul_cqi
=
(
640
+
SNRtimes10
)
/
5
;
pdu
->
ul_cqi_information
.
channel
=
0
;
pdu
->
ul_cqi_information
.
channel
=
0
;
if
(
harq_information
->
harq_information_rel9_fdd
.
tl
.
tag
==
NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL9_FDD_TAG
){
if
((
harq_information
->
harq_information_rel9_fdd
.
ack_nack_mode
==
0
)
&&
if
((
harq_information
->
harq_information_rel9_fdd
.
ack_nack_mode
==
0
)
&&
(
harq_information
->
harq_information_rel9_fdd
.
harq_size
==
1
))
{
(
harq_information
->
harq_information_rel9_fdd
.
harq_size
==
1
))
{
...
@@ -332,7 +333,24 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
...
@@ -332,7 +333,24 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
1
]
=
1
;
// Assuming always an ACK (No NACK or DTX)
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
1
]
=
1
;
// Assuming always an ACK (No NACK or DTX)
}
}
else
AssertFatal
(
1
==
0
,
"only format 1a/b for now, received
\n
"
);
}
else
if
(
harq_information
->
harq_information_rel10_tdd
.
tl
.
tag
==
NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL10_TDD_TAG
){
if
((
harq_information
->
harq_information_rel10_tdd
.
ack_nack_mode
==
0
)
&&
(
harq_information
->
harq_information_rel10_tdd
.
harq_size
==
1
))
{
pdu
->
harq_indication_tdd_rel13
.
tl
.
tag
=
NFAPI_HARQ_INDICATION_TDD_REL13_TAG
;
pdu
->
harq_indication_tdd_rel13
.
mode
=
0
;
pdu
->
harq_indication_tdd_rel13
.
number_of_ack_nack
=
1
;
pdu
->
harq_indication_tdd_rel13
.
harq_data
[
0
].
bundling
.
value_0
=
1
;
}
else
if
((
harq_information
->
harq_information_rel10_tdd
.
ack_nack_mode
==
1
)
&&
(
harq_information
->
harq_information_rel10_tdd
.
harq_size
==
2
))
{
pdu
->
harq_indication_tdd_rel13
.
tl
.
tag
=
NFAPI_HARQ_INDICATION_TDD_REL13_TAG
;
pdu
->
harq_indication_tdd_rel13
.
mode
=
0
;
pdu
->
harq_indication_tdd_rel13
.
number_of_ack_nack
=
1
;
pdu
->
harq_indication_tdd_rel13
.
harq_data
[
0
].
bundling
.
value_0
=
1
;
pdu
->
harq_indication_tdd_rel13
.
harq_data
[
1
].
bundling
.
value_0
=
1
;
}
}
else
AssertFatal
(
1
==
0
,
"only format 1a/b for now, received
\n
"
);
UL_INFO
->
harq_ind
.
harq_indication_body
.
number_of_harqs
++
;
UL_INFO
->
harq_ind
.
harq_indication_body
.
number_of_harqs
++
;
...
@@ -622,7 +640,7 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
...
@@ -622,7 +640,7 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
//if(tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data!= NULL && tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length >0){
//if(tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data!= NULL && tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length >0){
*/
*/
if
(
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
<=
tx_req_num_elems
-
1
){
if
(
(
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
>=
0
)
&&
(
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
<=
tx_req_num_elems
-
1
)
){
//if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){
//if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){
LOG_E
(
MAC
,
"dl_config_req_UE_MAC 2 Received data: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d, tx_req_num_elems: %d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
,
dl_config_pdu_list
[
i
].
pdu_size
,
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
,
tx_req_num_elems
);
LOG_E
(
MAC
,
"dl_config_req_UE_MAC 2 Received data: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d, tx_req_num_elems: %d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
,
dl_config_pdu_list
[
i
].
pdu_size
,
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
,
tx_req_num_elems
);
...
...
openair2/PHY_INTERFACE/phy_stub_UE.h
View file @
73b5cad4
...
@@ -28,8 +28,8 @@ nfapi_hi_dci0_request_t* hi_dci0_req;
...
@@ -28,8 +28,8 @@ nfapi_hi_dci0_request_t* hi_dci0_req;
int
tx_req_num_elems
;
int
tx_req_num_elems
;
int
next_ra_frame
;
//
int next_ra_frame;
module_id_t
next_Mod_id
;
//
module_id_t next_Mod_id;
eth_params_t
stub_eth_params
;
eth_params_t
stub_eth_params
;
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
73b5cad4
...
@@ -2092,7 +2092,7 @@ do_RRCConnectionSetup(
...
@@ -2092,7 +2092,7 @@ do_RRCConnectionSetup(
physicalConfigDedicated2
->
schedulingRequestConfig
->
present
=
SchedulingRequestConfig_PR_setup
;
physicalConfigDedicated2
->
schedulingRequestConfig
->
present
=
SchedulingRequestConfig_PR_setup
;
if
(
carrier
->
sib1
->
tdd_Config
==
NULL
)
{
if
(
carrier
->
sib1
->
tdd_Config
==
NULL
)
{
physicalConfigDedicated2
->
schedulingRequestConfig
->
choice
.
setup
.
sr_PUCCH_ResourceIndex
=
7
1
-
ue_context_pP
->
local_uid
/
10
;
//ue_context_pP->local_uid;
physicalConfigDedicated2
->
schedulingRequestConfig
->
choice
.
setup
.
sr_PUCCH_ResourceIndex
=
3
1
-
ue_context_pP
->
local_uid
/
10
;
//ue_context_pP->local_uid;
}
else
{
}
else
{
switch
(
carrier
->
sib1
->
tdd_Config
->
subframeAssignment
)
{
switch
(
carrier
->
sib1
->
tdd_Config
->
subframeAssignment
)
{
case
1
:
case
1
:
...
...
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
View file @
73b5cad4
...
@@ -75,7 +75,6 @@ PLMN: {
...
@@ -75,7 +75,6 @@ PLMN: {
MCC
=
"262"
;
MCC
=
"262"
;
};
};
};
};
UE0
:
UE0
:
{
{
USER
: {
USER
: {
...
@@ -85,10 +84,598 @@ UE0:
...
@@ -85,10 +84,598 @@ UE0:
PIN
=
"0000"
;
PIN
=
"0000"
;
};
};
SIM
: {
MSIN
=
"0000000001"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE1
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000002"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE2
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000003"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE3
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000004"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE4
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000005"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE5
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000006"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE6
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0000000007"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE7
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001100"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE8
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001101"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE9
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001102"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE10
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001103"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE11
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001104"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE12
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001105"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE13
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
SIM
: {
MSIN
=
"0100001111"
;
MSIN
=
"0100001111"
;
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
OPC
=
"e734f8734007d6c5ce7a0508809e7e9c"
;
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE14
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001112"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
};
# Home PLMN Selector with Access Technology
HPLMN
=
"20893"
;
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST
= ();
# Operator PLMN List
OPLMN_LIST
= (
"00101"
,
"20810"
,
"20811"
,
"20813"
,
"20893"
,
"310280"
,
"310028"
);
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST
= (
"22210"
,
"21401"
,
"21406"
,
"26202"
,
"26204"
);
# Forbidden plmns
FPLMN_LIST
= ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
};
UE15
:
{
USER
: {
IMEI
=
"356113022094149"
;
MANUFACTURER
=
"EURECOM"
;
MODEL
=
"LTE Android PC"
;
PIN
=
"0000"
;
};
SIM
: {
MSIN
=
"0100001113"
;
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
USIM_API_K
=
"8baf473f2f8fd09487cccbd7097c6862"
;
#initial
#USIM_API_K= "000102030405060708090A0B0C0D0E0F";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC
=
"88def4c77fc6a944eeb2fb9265210203"
;
MSISDN
=
"33611123456"
;
MSISDN
=
"33611123456"
;
};
};
...
@@ -112,3 +699,4 @@ UE0:
...
@@ -112,3 +699,4 @@ UE0:
# EHPLMN_LIST= ("20811", "20813");
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST
= ();
EHPLMN_LIST
= ();
};
};
openair3/NAS/UE/ESM/esm_ebr_context.c
View file @
73b5cad4
...
@@ -58,6 +58,7 @@ Description Defines functions used to handle EPS bearer contexts.
...
@@ -58,6 +58,7 @@ Description Defines functions used to handle EPS bearer contexts.
#include <netinet/in.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/inet.h>
extern
uint8_t
nfapi_mode
;
/****************************************************************************/
/****************************************************************************/
/**************** E X T E R N A L D E F I N I T I O N S ****************/
/**************** E X T E R N A L D E F I N I T I O N S ****************/
...
@@ -272,7 +273,19 @@ int esm_ebr_context_create(
...
@@ -272,7 +273,19 @@ int esm_ebr_context_create(
strcpy
(
broadcast
,
ipv4_addr
);
strcpy
(
broadcast
,
ipv4_addr
);
}
}
res
=
sprintf
(
command_line
,
if
(
nfapi_mode
==
3
){
res
=
sprintf
(
command_line
,
"ifconfig oip%d %s netmask %s broadcast %s up && "
"ip rule add from %s/24 table %d && "
"ip rule add to %s/24 table %d && "
"ip route add default dev oip%d table %d && "
"sysctl net.ipv4.conf.oip%d.rp_filter=0"
,
ueid
+
1
,
ipv4_addr
,
netmask
,
broadcast
,
ipv4_addr
,
201
,
ipv4_addr
,
201
,
ueid
+
1
,
201
,
ueid
+
1
);
}
else
{
res
=
sprintf
(
command_line
,
"ifconfig oip%d %s netmask %s broadcast %s up && "
"ifconfig oip%d %s netmask %s broadcast %s up && "
"ip rule add from %s/32 table %d && "
"ip rule add from %s/32 table %d && "
"ip rule add to %s/32 table %d && "
"ip rule add to %s/32 table %d && "
...
@@ -281,6 +294,7 @@ int esm_ebr_context_create(
...
@@ -281,6 +294,7 @@ int esm_ebr_context_create(
ipv4_addr
,
ueid
+
201
,
ipv4_addr
,
ueid
+
201
,
ipv4_addr
,
ueid
+
201
,
ipv4_addr
,
ueid
+
201
,
ueid
+
1
,
ueid
+
201
);
ueid
+
1
,
ueid
+
201
);
}
if
(
res
<
0
)
{
if
(
res
<
0
)
{
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to system command string"
);
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to system command string"
);
}
}
...
...
targets/COMMON/openairinterface5g_limits.h
View file @
73b5cad4
...
@@ -15,8 +15,8 @@
...
@@ -15,8 +15,8 @@
# define NUMBER_OF_eNB_MAX 7
# define NUMBER_OF_eNB_MAX 7
# define NUMBER_OF_RU_MAX 32
# define NUMBER_OF_RU_MAX 32
# ifndef UE_EXPANSION
# ifndef UE_EXPANSION
# define NUMBER_OF_UE_MAX
20
# define NUMBER_OF_UE_MAX
64
# define NUMBER_OF_CONNECTED_eNB_MAX
3
# define NUMBER_OF_CONNECTED_eNB_MAX
1
# else
# else
# define NUMBER_OF_UE_MAX 256
# define NUMBER_OF_UE_MAX 256
# define NUMBER_OF_CONNECTED_eNB_MAX 1
# define NUMBER_OF_CONNECTED_eNB_MAX 1
...
...
targets/RT/USER/lte-enb.c
View file @
73b5cad4
...
@@ -223,7 +223,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
...
@@ -223,7 +223,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER
,
1
);
if
(
!
eNB
->
single_thread_flag
&&
get_nprocs
()
>=
8
){
if
(
!
eNB
->
single_thread_flag
&&
get_nprocs
()
>=
8
&&
nfapi_mode
!=
2
){
if
(
wait_on_condition
(
&
proc
[
1
].
mutex_rxtx
,
&
proc
[
1
].
cond_rxtx
,
&
proc
[
1
].
pipe_ready
,
"wakeup_tx"
)
<
0
)
{
if
(
wait_on_condition
(
&
proc
[
1
].
mutex_rxtx
,
&
proc
[
1
].
cond_rxtx
,
&
proc
[
1
].
pipe_ready
,
"wakeup_tx"
)
<
0
)
{
LOG_E
(
PHY
,
"Frame %d, subframe %d: TX1 not ready
\n
"
,
proc
[
1
].
frame_rx
,
proc
[
1
].
subframe_rx
);
LOG_E
(
PHY
,
"Frame %d, subframe %d: TX1 not ready
\n
"
,
proc
[
1
].
frame_rx
,
proc
[
1
].
subframe_rx
);
return
(
-
1
);
return
(
-
1
);
...
...
targets/RT/USER/lte-ue.c
View file @
73b5cad4
...
@@ -102,9 +102,11 @@ void ue_stub_rx_handler(unsigned int, char *);
...
@@ -102,9 +102,11 @@ void ue_stub_rx_handler(unsigned int, char *);
int32_t
**
rxdata
;
int32_t
**
rxdata
;
int32_t
**
txdata
;
int32_t
**
txdata
;
int
timer_subframe
;
int
timer_subframe
=
0
;
int
timer_frame
;
int
timer_frame
=
0
;
SF_ticking
*
phy_stub_ticking
;
SF_ticking
*
phy_stub_ticking
=
NULL
;
int
next_ra_frame
=
0
;
module_id_t
next_Mod_id
=
0
;
#define KHz (1000UL)
#define KHz (1000UL)
#define MHz (1000*KHz)
#define MHz (1000*KHz)
...
@@ -1021,7 +1023,9 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
...
@@ -1021,7 +1023,9 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
=
(
nfapi_sr_indication_pdu_t
*
)
malloc
(
NB_UE_INST
*
sizeof
(
nfapi_sr_indication_pdu_t
));
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
=
(
nfapi_sr_indication_pdu_t
*
)
malloc
(
NB_UE_INST
*
sizeof
(
nfapi_sr_indication_pdu_t
));
UL_INFO
->
sr_ind
.
sr_indication_body
.
number_of_srs
=
0
;
UL_INFO
->
sr_ind
.
sr_indication_body
.
number_of_srs
=
0
;
UL_INFO
->
cqi_ind
.
cqi_pdu_list
=
(
nfapi_cqi_indication_pdu_t
*
)
malloc
(
NB_UE_INST
*
sizeof
(
nfapi_cqi_indication_pdu_t
));
UL_INFO
->
cqi_ind
.
cqi_raw_pdu_list
=
(
nfapi_cqi_indication_raw_pdu_t
*
)
malloc
(
NB_UE_INST
*
sizeof
(
nfapi_cqi_indication_raw_pdu_t
));
UL_INFO
->
cqi_ind
.
number_of_cqis
=
0
;
for
(
Mod_id
=
0
;
Mod_id
<
NB_UE_INST
;
Mod_id
++
)
{
for
(
Mod_id
=
0
;
Mod_id
<
NB_UE_INST
;
Mod_id
++
)
{
...
@@ -1097,8 +1101,9 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
...
@@ -1097,8 +1101,9 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
// We make the start of RA between consecutive UEs differ by 20 frames
// We make the start of RA between consecutive UEs differ by 20 frames
//if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id == 0) || (UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id>0 && proc->frame_rx >= UE_mac_inst[Mod_id-1].ra_frame + 20) ) {
//if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id == 0) || (UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id>0 && proc->frame_rx >= UE_mac_inst[Mod_id-1].ra_frame + 20) ) {
if
(
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
==
PRACH
&&
Mod_id
==
next_Mod_id
&&
proc
->
frame_rx
>=
next_ra_frame
)
{
if
(
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
==
PRACH
&&
Mod_id
==
next_Mod_id
)
{
next_ra_frame
++
;
if
(
next_ra_frame
>
200
){
// check if we have PRACH opportunity
// check if we have PRACH opportunity
if
(
is_prach_subframe
(
&
UE
->
frame_parms
,
proc
->
frame_tx
,
proc
->
subframe_tx
)
&&
UE_mac_inst
[
Mod_id
].
SI_Decoded
==
1
)
{
if
(
is_prach_subframe
(
&
UE
->
frame_parms
,
proc
->
frame_tx
,
proc
->
subframe_tx
)
&&
UE_mac_inst
[
Mod_id
].
SI_Decoded
==
1
)
{
...
@@ -1109,16 +1114,18 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
...
@@ -1109,16 +1114,18 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
PRACH_RESOURCES_t
*
prach_resources
=
ue_get_rach
(
Mod_id
,
0
,
proc
->
frame_tx
,
0
,
proc
->
subframe_tx
);
PRACH_RESOURCES_t
*
prach_resources
=
ue_get_rach
(
Mod_id
,
0
,
proc
->
frame_tx
,
0
,
proc
->
subframe_tx
);
if
(
prach_resources
!=
NULL
)
{
if
(
prach_resources
!=
NULL
)
{
UE_mac_inst
[
Mod_id
].
ra_frame
=
proc
->
frame_rx
;
UE_mac_inst
[
Mod_id
].
ra_frame
=
proc
->
frame_rx
;
LOG_D
(
MAC
,
"UE_phy_stub_thread_rxn_txnp4 before RACH, Mod_id: %d
\n
"
,
Mod_id
);
LOG_D
(
MAC
,
"UE_phy_stub_thread_rxn_txnp4 before RACH, Mod_id: %d
frame %d subframe %d
\n
"
,
Mod_id
,
proc
->
frame_tx
,
proc
->
subframe_tx
);
fill_rach_indication_UE_MAC
(
Mod_id
,
proc
->
frame_tx
,
proc
->
subframe_tx
,
UL_INFO
,
prach_resources
->
ra_PreambleIndex
,
prach_resources
->
ra_RNTI
);
fill_rach_indication_UE_MAC
(
Mod_id
,
proc
->
frame_tx
,
proc
->
subframe_tx
,
UL_INFO
,
prach_resources
->
ra_PreambleIndex
,
prach_resources
->
ra_RNTI
);
Msg1_transmitted
(
Mod_id
,
0
,
proc
->
frame_tx
,
0
);
Msg1_transmitted
(
Mod_id
,
0
,
proc
->
frame_tx
,
0
);
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
RA_RESPONSE
;
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
RA_RESPONSE
;
next_Mod_id
=
Mod_id
+
1
;
next_Mod_id
=
Mod_id
+
1
;
next_ra_frame
=
(
proc
->
frame_rx
+
20
)
%
1000
;
//next_ra_frame = (proc->frame_rx + 20)%1000;
next_ra_frame
=
0
;
}
}
//ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode);
//ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode);
}
}
}
}
// mode is PRACH
}
// mode is PRACH
// Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger
// Substitute call to phy_procedures Tx with call to phy_stub functions in order to trigger
// UE Tx procedures directly at the MAC layer, based on the received ul_config requests from the vnf (eNB).
// UE Tx procedures directly at the MAC layer, based on the received ul_config requests from the vnf (eNB).
...
@@ -1183,7 +1190,10 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
...
@@ -1183,7 +1190,10 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
free
(
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
);
free
(
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
);
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
=
NULL
;
UL_INFO
->
sr_ind
.
sr_indication_body
.
sr_pdu_list
=
NULL
;
//}
//}
free
(
UL_INFO
->
cqi_ind
.
cqi_pdu_list
);
UL_INFO
->
cqi_ind
.
cqi_pdu_list
=
NULL
;
free
(
UL_INFO
->
cqi_ind
.
cqi_raw_pdu_list
);
UL_INFO
->
cqi_ind
.
cqi_raw_pdu_list
=
NULL
;
free
(
UL_INFO
);
free
(
UL_INFO
);
UL_INFO
=
NULL
;
UL_INFO
=
NULL
;
...
@@ -1764,6 +1774,13 @@ void init_UE_single_thread_stub(int nb_inst) {
...
@@ -1764,6 +1774,13 @@ void init_UE_single_thread_stub(int nb_inst) {
AssertFatal
(
PHY_vars_UE_g
!=
NULL
,
"PHY_vars_UE_g is NULL
\n
"
);
AssertFatal
(
PHY_vars_UE_g
!=
NULL
,
"PHY_vars_UE_g is NULL
\n
"
);
AssertFatal
(
PHY_vars_UE_g
[
i
]
!=
NULL
,
"PHY_vars_UE_g[inst] is NULL
\n
"
);
AssertFatal
(
PHY_vars_UE_g
[
i
]
!=
NULL
,
"PHY_vars_UE_g[inst] is NULL
\n
"
);
AssertFatal
(
PHY_vars_UE_g
[
i
][
0
]
!=
NULL
,
"PHY_vars_UE_g[inst][0] is NULL
\n
"
);
AssertFatal
(
PHY_vars_UE_g
[
i
][
0
]
!=
NULL
,
"PHY_vars_UE_g[inst][0] is NULL
\n
"
);
if
(
nfapi_mode
==
3
){
#ifdef NAS_UE
MessageDef
*
message_p
;
message_p
=
itti_alloc_new_message
(
TASK_NAS_UE
,
INITIALIZE_MESSAGE
);
itti_send_msg_to_task
(
TASK_NAS_UE
,
i
+
NB_eNB_INST
,
message_p
);
#endif
}
}
}
UE
=
PHY_vars_UE_g
[
0
][
0
];
UE
=
PHY_vars_UE_g
[
0
][
0
];
...
...
targets/RT/USER/lte-uesoftmodem.c
View file @
73b5cad4
...
@@ -999,7 +999,7 @@ int main( int argc, char **argv )
...
@@ -999,7 +999,7 @@ int main( int argc, char **argv )
#if defined(ENABLE_ITTI)
#if defined(ENABLE_ITTI)
if
(
create_tasks_ue
(
1
)
<
0
)
{
if
(
create_tasks_ue
(
NB_UE_INST
)
<
0
)
{
printf
(
"cannot create ITTI tasks
\n
"
);
printf
(
"cannot create ITTI tasks
\n
"
);
exit
(
-
1
);
// need a softer mode
exit
(
-
1
);
// need a softer mode
}
}
...
...
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