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
40b1f542
Commit
40b1f542
authored
Jan 20, 2019
by
matzakos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Continue with unfinished merge with develop branch.
parent
119b8a57
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
146 additions
and
1942 deletions
+146
-1942
Info_on_merge.txt
Info_on_merge.txt
+20
-15
openair2/NETWORK_DRIVER/UE_IP/common.c
openair2/NETWORK_DRIVER/UE_IP/common.c
+0
-20
openair2/NETWORK_DRIVER/UE_IP/device.c
openair2/NETWORK_DRIVER/UE_IP/device.c
+0
-10
openair2/NETWORK_DRIVER/UE_IP/local.h
openair2/NETWORK_DRIVER/UE_IP/local.h
+0
-8
openair2/PHY_INTERFACE/IF_Module.c
openair2/PHY_INTERFACE/IF_Module.c
+0
-4
openair2/PHY_INTERFACE/UE_MAC_interface.h
openair2/PHY_INTERFACE/UE_MAC_interface.h
+0
-523
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.c
+5
-206
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/PHY_INTERFACE/phy_stub_UE.h
+0
-8
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface.c
+0
-29
openair2/RRC/LTE/L2_interface_ue.c
openair2/RRC/LTE/L2_interface_ue.c
+2
-25
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+7
-365
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/MESSAGES/asn1_msg.h
+0
-33
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_UE.c
+112
-696
No files found.
Info_on_merge.txt
View file @
40b1f542
...
...
@@ -71,6 +71,23 @@ openair2/LAYER2/RLC/rlc.h
openair2/LAYER2/RLC/rlc_mac.c
openair2/LAYER2/RLC/rlc_mpls.c
openair2/LAYER2/RLC/rlc_rrc.c
openair2/NETWORK_DRIVER/UE_IP/common.c
openair2/NETWORK_DRIVER/UE_IP/device.c
openair2/NETWORK_DRIVER/UE_IP/local.h
openair2/PHY_INTERFACE/IF_Module.c
openair2/PHY_INTERFACE/UE_MAC_interface.h (Should be completely deleted)
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface_ue.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c (Inside do_sib23() there are some lines ASN_SEQUENCE_ADD(...) corresponding to the addition of
SIB18, 19,21 which are commented out in the develop-version whereas they were intially integrated from
Thinh in the sidelink branches. Is this the removal that Cedric did for RF operation because
the SIB2/3 message turned out to be very large with these new elements?.
Additional not sure whether lines 1646-1663 should be included or not. They were in the sidelink branch
version)
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/rrc_UE.c (Some clonflicts were comlicated)
...
...
@@ -81,18 +98,6 @@ openair2/LAYER2/RLC/rlc_rrc.c
deleted by them: openair1/PHY/TOOLS/file_output.c
deleted by them: openair1/SCHED/pusch_pc.c
both modified: openair2/NETWORK_DRIVER/UE_IP/common.c
both modified: openair2/NETWORK_DRIVER/UE_IP/device.c
both modified: openair2/NETWORK_DRIVER/UE_IP/local.h
both modified: openair2/PHY_INTERFACE/IF_Module.c
both added: openair2/PHY_INTERFACE/UE_MAC_interface.h
both added: openair2/PHY_INTERFACE/phy_stub_UE.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.h
both modified: openair2/RRC/LTE/L2_interface.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.h
both modified: openair2/RRC/LTE/rrc_UE.c
both modified: openair2/RRC/LTE/rrc_defs.h
both modified: openair2/RRC/LTE/rrc_eNB.c
both modified: openair2/RRC/LTE/rrc_proto.h
...
...
@@ -183,7 +188,7 @@ openair2/LAYER2/RLC/rlc_rrc.c
both modified: openair2/LAYER2/RLC/rlc.h
both modified: openair2/LAYER2/RLC/rlc_mac.c
both modified: openair2/LAYER2/RLC/rlc_mpls.c
both modified: openair2/LAYER2/RLC/rlc_rrc.c
#Conflicts solved up to here
both modified: openair2/LAYER2/RLC/rlc_rrc.c
both modified: openair2/NETWORK_DRIVER/UE_IP/common.c
both modified: openair2/NETWORK_DRIVER/UE_IP/device.c
both modified: openair2/NETWORK_DRIVER/UE_IP/local.h
...
...
@@ -192,10 +197,10 @@ openair2/LAYER2/RLC/rlc_rrc.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.h
both modified: openair2/RRC/LTE/L2_interface.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.h
both modified: openair2/RRC/LTE/rrc_UE.c
both modified: openair2/RRC/LTE/rrc_UE.c
#Conflicts solved up to here
both modified: openair2/RRC/LTE/rrc_defs.h
both modified: openair2/RRC/LTE/rrc_eNB.c
both modified: openair2/RRC/LTE/rrc_proto.h
...
...
openair2/NETWORK_DRIVER/UE_IP/common.c
View file @
40b1f542
...
...
@@ -255,11 +255,7 @@ ue_ip_common_ip2wireless(
//---------------------------------------------------------------------------
struct
pdcp_data_req_header_s
pdcph
;
ue_ip_priv_t
*
priv_p
=
netdev_priv
(
ue_ip_dev
[
instP
]);
<<<<<<<
HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>>
main
/
develop
ipversion_t
*
ipv_p
=
NULL
;
unsigned
int
hard_header_len
=
0
;
unsigned
char
*
src_addr
=
0
;
...
...
@@ -309,7 +305,6 @@ ue_ip_common_ip2wireless(
case
4
:
src_addr
=
(
unsigned
char
*
)
&
((
struct
iphdr
*
)
&
skb_pP
->
data
[
hard_header_len
])
->
saddr
;
<<<<<<<
HEAD
dst_addr
=
(
unsigned
char
*
)
&
((
struct
iphdr
*
)
&
skb_pP
->
data
[
hard_header_len
])
->
daddr
;
#ifdef OAI_DRV_DEBUG_SEND
...
...
@@ -339,21 +334,6 @@ ue_ip_common_ip2wireless(
//pdcph.destinationL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->daddr) & 0x00FFFFFF;
printk
(
"[UE_IP_DRV] source Id: 0x%08x
\n
"
,
pdcph
.
sourceL2Id
);
printk
(
"[UE_IP_DRV] destinationL2Id Id: 0x%08x
\n
"
,
pdcph
.
destinationL2Id
);
=======
if
(
src_addr
)
{
printk
(
"[UE_IP_DRV][%s] Source %d.%d.%d.%d
\n
"
,
__FUNCTION__
,
src_addr
[
0
],
src_addr
[
1
],
src_addr
[
2
],
src_addr
[
3
]);
}
dst_addr
=
(
unsigned
char
*
)
&
((
struct
iphdr
*
)
&
skb_pP
->
data
[
hard_header_len
])
->
daddr
;
if
(
dst_addr
)
{
printk
(
"[UE_IP_DRV][%s] Dest %d.%d.%d.%d
\n
"
,
__FUNCTION__
,
dst_addr
[
0
],
dst_addr
[
1
],
dst_addr
[
2
],
dst_addr
[
3
]);
}
//get Ipv4 address and pass to PCDP header
printk
(
"[UE_IP_DRV] source Id: 0x%08x
\n
"
,
pdcph
.
sourceL2Id
);
printk
(
"[UE_IP_DRV] destinationL2Id Id: 0x%08x
\n
"
,
pdcph
.
destinationL2Id
);
pdcph
.
sourceL2Id
=
ntohl
(
((
struct
iphdr
*
)
&
skb_pP
->
data
[
hard_header_len
])
->
saddr
)
&
0x00FFFFFF
;
pdcph
.
destinationL2Id
=
ntohl
(
((
struct
iphdr
*
)
&
skb_pP
->
data
[
hard_header_len
])
->
daddr
)
&
0x00FFFFFF
;
>>>>>>>
main
/
develop
break
;
default:
...
...
openair2/NETWORK_DRIVER/UE_IP/device.c
View file @
40b1f542
...
...
@@ -99,12 +99,6 @@ void *ue_ip_interrupt(void)
}
#endif //NETLINK
//---------------------------------------------------------------------------
<<<<<<<
HEAD
=======
>>>>>>>
main
/
develop
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
void
ue_ip_timer
(
struct
timer_list
*
t
)
#else
...
...
@@ -268,11 +262,7 @@ int ue_ip_hard_start_xmit(struct sk_buff *skb_pP, struct net_device *dev_pP)
// End debug information
netif_stop_queue
(
dev_pP
);
<<<<<<<
HEAD
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
=======
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
>>>>>>>
main
/
develop
netif_trans_update
(
dev_pP
);
#else
dev_pP
->
trans_start
=
jiffies
;
...
...
openair2/NETWORK_DRIVER/UE_IP/local.h
View file @
40b1f542
...
...
@@ -91,11 +91,7 @@ typedef struct pdcp_data_req_header_s {
sdu_size_t
data_size
;
signed
int
inst
;
ip_traffic_type_t
traffic_type
;
<<<<<<<
HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>>
main
/
develop
uint32_t
sourceL2Id
;
uint32_t
destinationL2Id
;
#endif
...
...
@@ -106,11 +102,7 @@ typedef struct pdcp_data_ind_header_s {
sdu_size_t
data_size
;
signed
int
inst
;
ip_traffic_type_t
dummy_traffic_type
;
<<<<<<<
HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>>
main
/
develop
uint32_t
sourceL2Id
;
uint32_t
destinationL2Id
;
#endif
...
...
openair2/PHY_INTERFACE/IF_Module.c
View file @
40b1f542
...
...
@@ -583,11 +583,7 @@ void UL_indication(UL_IND_t *UL_info)
sched_info
->
DL_req
=
&
mac
->
DL_req
[
CC_id
];
sched_info
->
HI_DCI0_req
=
&
mac
->
HI_DCI0_req
[
CC_id
][
sched_info
->
subframe
];
if
((
mac
->
common_channels
[
CC_id
].
tdd_Config
==
NULL
)
||
<<<<<<<
HEAD
(
is_UL_sf
(
&
mac
->
common_channels
[
CC_id
],(
sched_info
->
subframe
+
sf_ahead
)
%
10
)
>
0
))
=======
(
is_UL_sf
(
&
mac
->
common_channels
[
CC_id
],
sched_info
->
subframe
)
>
0
))
>>>>>>>
main
/
develop
sched_info
->
UL_req
=
&
mac
->
UL_req
[
CC_id
];
else
sched_info
->
UL_req
=
NULL
;
...
...
openair2/PHY_INTERFACE/UE_MAC_interface.h
deleted
100644 → 0
View file @
119b8a57
<<<<<<<
HEAD
/*This is the interface module between PHY
*Provided the FAPI style interface structures for P7.
*
*
*
*//*
=======
/*
>>>>>>> main/develop
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
<<<<<<< HEAD
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
=======
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
>>>>>>> main/develop
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
<<<<<<<
HEAD
=======
/* This is the interface module between PHY
* Provided the FAPI style interface structures for P7.
*/
>>>>>>>
main
/
develop
/*! \file openair2/PHY_INTERFACE/IF_Module.h
* \brief data structures for PHY/MAC interface modules
* \author EURECOM/NTUST
* \date 2017
* \version 0.1
* \company Eurecom
* \email: raymond.knopp@eurecom.fr
* \note
* \warning
*/
#ifndef __UE_MAC_INTERFACE__H__
#define __UE_MAC_INTERFACE__H__
#include "nfapi_interface.h"
#include "openair1/PHY/impl_defs_lte.h"
#include "targets/COMMON/openairinterface5g_limits.h"
#define MAX_NUM_DL_PDU 100
#define MAX_NUM_UL_PDU 100
#define MAX_NUM_HI_DCI0_PDU 100
#define MAX_NUM_TX_REQUEST_PDU 100
#define MAX_NUM_HARQ_IND 100
#define MAX_NUM_CRC_IND 100
#define MAX_NUM_SR_IND 100
#define MAX_NUM_CQI_IND 100
#define MAX_NUM_RACH_IND 100
#define MAX_NUM_SRS_IND 100
// UE_MAC enums
typedef
enum
{
UE_MAC_DL_IND_PDSCH_PDU_TYPE
=
0
,
UE_MAC_DL_IND_SI_PDSCH_PDU_TYPE
,
UE_MAC_DL_IND_P_PDSCH_PDU_TYPE
,
UE_MAC_DL_IND_DLSCH_RAR_PDU_TYPE
}
UE_MAC_dl_ind_pdu_type_e
;
// UE_MAC enums
typedef
enum
{
UE_MAC_Tx_IND_Msg1_TYPE
=
0
,
UE_MAC_Tx_IND_Msg3_TYPE
}
UE_MAC_Tx_ind_type_e
;
// *** UE_UL_Config.request related structures
typedef
struct
{
//module_id_t module_idP;
//int CC_id;
//frame_t frameP;
uint8_t
eNB_id
;
//uint16_t rnti;
//sub_frame_t subframe_tx;
uint32_t
SR_payload
;
//0 or 1
}
UE_MAC_ul_config_SR
;
typedef
struct
{
//module_id_t module_idP;
//int CC_id;
//frame_t frameP;
uint8_t
eNB_indexP
;
//sub_frame_t subframeP;
uint8_t
ra_RACH_MaskIndex
;
int8_t
ra_PREAMBLE_RECEIVED_TARGET_POWER
;
uint8_t
ra_TDD_map_index
;
uint16_t
ra_RNTI
;
uint8_t
*
Msg3
;
}
UE_MAC_ul_config_rach
;
typedef
struct
{
union
{
UE_MAC_ul_config_rach
ue_rach_config
;
//UE_MAC_ul_config_ULSCH ue_ULSCH_pdu;
UE_MAC_ul_config_SR
ue_SR_config
;
};
}
UE_MAC_ul_config_request_list
;
typedef
struct
{
nfapi_tl_t
tl
;
uint16_t
length_list
;
UE_MAC_ul_config_request_list
*
ue_ul_config_list
;
}
UE_MAC_ul_config_request_body_t
;
typedef
struct
{
//nfapi_p7_message_header_t header;
uint16_t
sfn_sf
;
UE_MAC_ul_config_request_body_t
ue_ul_config_request_body
;
//nfapi_dl_config_request_body_t
}
UE_MAC_ul_config_request_t
;
// *** UE_Tx.request related structures
typedef
struct
{
uint16_t
pdu_length
;
uint16_t
pdu_index
;
uint8_t
num_segments
;
struct
{
uint32_t
segment_length
;
uint8_t
*
segment_data
;
}
segments
[
NFAPI_TX_MAX_SEGMENTS
];
}
UE_MAC_tx_request_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
uint16_t
number_of_pdus
;
UE_MAC_tx_request_pdu_t
*
ue_tx_pdu_list
;
}
UE_MAC_tx_request_body_t
;
typedef
struct
{
//nfapi_p7_message_header_t header;
uint16_t
sfn_sf
;
UE_MAC_tx_request_body_t
ue_tx_request_body
;
}
UE_MAC_tx_request_t
;
typedef
struct
{
}
UE_MAC_sl_config_request_Tx_t
;
typedef
struct
{
}
UE_MAC_sl_config_request_Rx_t
;
typedef
struct
{
}
UE_MAC_sl_tx_request_t
;
// *** UE_DL.indication related structures
typedef
struct
{
unsigned
char
eNB_index
;
uint8_t
first_sync
;
//boolean 0 or 1
uint8_t
sync
;
// boolean 0 or 1 to indicate whether rrc_out_of_sync_ind() or dl_phy_sync_success()
// should be called from the handler function of the interface respectively.
}
UE_MAC_bch_indication_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
UE_MAC_bch_indication_pdu_t
*
bch_ind_list
;
}
UE_MAC_BCH_indication_body_t
;
<<<<<<<
HEAD
// Panos: Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p().
=======
// Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p().
>>>>>>>
main
/
develop
typedef
struct
{
uint8_t
*
data
;
uint16_t
data_len
;
}
UE_MAC_dlsch_pdu
;
<<<<<<<
HEAD
// Panos: Corresponding to inputs of MAC function: process_rar().
=======
// Corresponding to inputs of MAC function: process_rar().
>>>>>>>
main
/
develop
typedef
struct
{
rnti_t
ra_rnti
;
uint8_t
*
rar_input_buffer
;
// Originating from PHY
rnti_t
*
t_crnti
;
uint8_t
preamble_index
;
uint8_t
*
rar_output_buffer
;
//should be returned to PHY: dlsch0->harq_processes[0]->b
}
UE_MAC_dlsch_rar_pdu
;
typedef
struct
{
uint8_t
pdu_type
;
uint8_t
eNB_index
;
union
{
UE_MAC_dlsch_pdu
dlsch_pdu_ind
;
UE_MAC_dlsch_rar_pdu
dlsch_rar_pdu_ind
;
};
}
UE_MAC_dlsch_indication_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
uint16_t
number_of_pdus
;
UE_MAC_dlsch_indication_pdu_t
*
dlsch_ind_list
;
}
UE_MAC_DLSCH_indication_body_t
;
// *** UE_SL.indication related structures
typedef
struct
{
}
ue_sci_indication_body_t
;
typedef
struct
{
}
ue_SLSCH_indication_body_t
;
typedef
struct
{
}
ue_SLDCH_indication_body_t
;
typedef
struct
{
}
ue_SLBCH_indication_body_t
;
// *** UE_Config_common.request related structures
typedef
struct
{
uint8_t
subframeAssignment
;
uint8_t
specialSubframePatterns
;
}
UE_PHY_tdd_frame_structure_t
;
typedef
struct
{
uint16_t
rootSequenceIndex
;
uint8_t
prach_Config_enabled
;
uint8_t
prach_ConfigIndex
;
uint8_t
highSpeedFlag
;
uint8_t
zeroCorrelationZoneConfig
;
uint8_t
prach_FreqOffset
;
}
UE_PHY_prach_config_t
;
typedef
struct
{
uint8_t
deltaPUCCH_Shift
;
uint8_t
nRB_CQI
;
uint8_t
nCS_AN
;
uint16_t
n1PUCCH_AN
;
}
UE_PHY_pucch_config_t
;
typedef
struct
{
int8_t
referenceSignalPower
;
uint8_t
p_b
;
}
UE_PHY_pdsch_config_t
;
typedef
struct
{
uint8_t
n_SB
;
PUSCH_HOPPING_t
hoppingMode
;
uint8_t
pusch_HoppingOffset
;
uint8_t
enable64QAM
;
uint8_t
groupHoppingEnabled
;
uint8_t
groupAssignmentPUSCH
;
uint8_t
sequenceHoppingEnabled
;
uint8_t
cyclicShift
;
}
UE_PHY_pusch_config_t
;
typedef
struct
{
uint8_t
enabled_flag
;
uint8_t
srs_BandwidthConfig
;
uint8_t
srs_SubframeConfig
;
uint8_t
ackNackSRS_SimultaneousTransmission
;
uint8_t
srs_MaxUpPts
;
}
UE_PHY_SRS_config_t
;
typedef
struct
{
int8_t
p0_NominalPUSCH
;
PUSCH_alpha_t
alpha
;
int8_t
p0_NominalPUCCH
;
int8_t
deltaPreambleMsg3
;
long
deltaF_PUCCH_Format1
;
long
deltaF_PUCCH_Format1b
;
long
deltaF_PUCCH_Format2
;
long
deltaF_PUCCH_Format2a
;
long
deltaF_PUCCH_Format2b
;
}
UE_PHY_UL_power_control_config_t
;
typedef
struct
{
uint8_t
maxHARQ_Msg3Tx
;
}
UE_PHY_HARQ_Msg3_config_t
;
typedef
struct
{
uint8_t
nb_antennas_tx
;
}
UE_PHY_antenna_config_t
;
typedef
struct
{
PHICH_RESOURCE_t
phich_resource
;
PHICH_DURATION_t
phich_duration
;
}
UE_PHY_phich_config_t
;
typedef
struct
{
UE_PHY_tdd_frame_structure_t
ue_tdd_frame_structure_config
;
UE_PHY_prach_config_t
ue_prach_config
;
UE_PHY_pucch_config_t
ue_pucch_config
;
UE_PHY_pdsch_config_t
ue_pdsch_config
;
UE_PHY_pusch_config_t
ue_pusch_config
;
UE_PHY_SRS_config_t
ue_srs_config
;
UE_PHY_UL_power_control_config_t
ue_ul_pow_cntl_config
;
UE_PHY_HARQ_Msg3_config_t
ue_harq_msg3_config
;
/* Where can we find the types and values of the configuration for the PCH?
UE_MAC_pusch_config_t ue_pch_config
radioResourceConfigCommon->pcch_Config.defaultPagingCycle, radioResourceConfigCommon->pcch_Config.nB*/
UE_PHY_antenna_config_t
ue_ant_config
;
UE_PHY_phich_config_t
ue_phich_config
;
/* MBSFN?*/
}
UE_PHY_config_common_request_t
;
// *** UE_Config_dedicated. request related structures
typedef
struct
{
PA_t
p_a
;
}
UE_PHY_pdsch_config_dedicated_t
;
typedef
struct
{
uint8_t
ackNackRepetition
;
ANFBmode_t
tdd_AckNackFeedbackMode
;
//ACKNAKREP_t repetitionFactor;
//uint16_t n1PUCCH_AN_Rep;
}
UE_PHY_pucch_config_dedicated_t
;
typedef
struct
{
uint16_t
betaOffset_ACK_Index
;
uint16_t
betaOffset_RI_Index
;
uint16_t
betaOffset_CQI_Index
;
}
UE_PHY_pusch_config_dedicated_t
;
typedef
struct
{
int8_t
p0_UE_PUSCH
;
uint8_t
deltaMCS_Enabled
;
uint8_t
accumulationEnabled
;
int8_t
p0_UE_PUCCH
;
int8_t
pSRS_Offset
;
uint8_t
filterCoefficient
;
}
UE_PHY_ul_power_control_config_dedicated_t
;
typedef
struct
{
uint16_t
sr_PUCCH_ResourceIndex
;
uint8_t
sr_ConfigIndex
;
DSR_TRANSMAX_t
dsr_TransMax
;
}
UE_PHY_SR_config_dedicated_t
;
typedef
struct
{
uint8_t
srsConfigDedicatedSetup
;
uint8_t
duration
;
uint8_t
cyclicShift
;
uint8_t
freqDomainPosition
;
uint8_t
srs_Bandwidth
;
uint16_t
srs_ConfigIndex
;
uint8_t
srs_HoppingBandwidth
;
uint8_t
transmissionComb
;
//uint8_t srsCellSubframe;
//uint8_t srsUeSubframe;
}
UE_PHY_srs_ul_config_dedicated_t
;
typedef
struct
{
CQI_REPORTMODEAPERIODIC
cqi_ReportModeAperiodic
;
CQI_REPORTPERIODIC
CQI_ReportPeriodic
;
//int8_t nomPDSCH_RS_EPRE_Offset;
}
UE_PHY_cqi_report_config_dedicated_t
;
typedef
struct
{
uint8_t
transmission_mode
[
NUMBER_OF_CONNECTED_eNB_MAX
];
UE_PHY_pdsch_config_dedicated_t
ue_pdsch_config
;
UE_PHY_pucch_config_dedicated_t
ue_pucch_config
;
UE_PHY_pusch_config_dedicated_t
ue_pusch_config
;
UE_PHY_ul_power_control_config_dedicated_t
ue_ul_pow_cntrl_config
;
UE_PHY_SR_config_dedicated_t
ue_SR_config
;
UE_PHY_srs_ul_config_dedicated_t
ue_srs_ul_config
;
UE_PHY_cqi_report_config_dedicated_t
ue_cqi_report_config
;
}
UE_PHY_config_dedicated_request_t
;
#endif
/*
typedef struct {
nfapi_p4_p5_message_header_t header;
uint8_t num_tlv;
nfapi_subframe_config_t subframe_config;
nfapi_rf_config_t rf_config;
nfapi_phich_config_t phich_config;
nfapi_sch_config_t sch_config;
nfapi_prach_config_t prach_config;
nfapi_pusch_config_t pusch_config;
nfapi_pucch_config_t pucch_config;
nfapi_srs_config_t srs_config;
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
nfapi_laa_config_t laa_config;
nfapi_emtc_config_t emtc_config;
nfapi_tdd_frame_structure_t tdd_frame_structure_config;
nfapi_l23_config_t l23_config;
nfapi_nb_iot_config_t nb_iot_config;
// addition nfapi tlvs as per table 2-16 in idle or configure
nfapi_nfapi_t nfapi_config;
nfapi_vendor_extension_tlv_t vendor_extension;
} nfapi_config_request_t;
typedef struct {
nfapi_tl_t tl;
uint8_t dci_format;
uint8_t cce_index;
uint8_t aggregation_level;
uint16_t rnti;
uint8_t resource_block_start;
uint8_t number_of_resource_block;
uint8_t mcs_1;
uint8_t cyclic_shift_2_for_drms;
uint8_t frequency_hopping_enabled_flag;
uint8_t frequency_hopping_bits;
uint8_t new_data_indication_1;
uint8_t ue_tx_antenna_seleciton;
uint8_t tpc;
uint8_t cqi_csi_request;
uint8_t ul_index;
uint8_t dl_assignment_index;
uint32_t tpc_bitmap;
uint16_t transmission_power;
} nfapi_hi_dci0_dci_pdu_rel8_t;
*/
openair2/PHY_INTERFACE/phy_stub_UE.c
View file @
40b1f542
...
...
@@ -2,19 +2,11 @@
//#include "openair1/PHY/defs.h"
//#include "openair2/PHY_INTERFACE/IF_Module.h"
//#include "openair1/PHY/extern.h"
<<<<<<<
HEAD
#include "openair2/LAYER2/MAC/extern.h"
#include "openair2/LAYER2/MAC/defs.h"
#include "openair2/LAYER2/MAC/proto.h"
//#include "openair2/LAYER2/MAC/vars.h"
#include "openair1/SCHED/defs.h"
=======
#include "openair2/LAYER2/MAC/mac_extern.h"
#include "openair2/LAYER2/MAC/mac.h"
#include "openair2/LAYER2/MAC/mac_proto.h"
//#include "openair2/LAYER2/MAC/vars.h"
#include "openair1/SCHED_UE/sched_UE.h"
>>>>>>>
main
/
develop
#include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h"
//#include "common/ran_context.h"
#include "openair2/PHY_INTERFACE/phy_stub_UE.h"
...
...
@@ -30,10 +22,6 @@
extern
int
oai_nfapi_crc_indication
(
nfapi_crc_indication_t
*
crc_ind
);
extern
int
oai_nfapi_rx_ind
(
nfapi_rx_indication_t
*
ind
);
extern
int
oai_nfapi_rach_ind
(
nfapi_rach_indication_t
*
rach_ind
);
<<<<<<<
HEAD
//extern static int rrc_set_state (module_id_t ue_mod_idP, Rrc_State_t state);
=======
>>>>>>>
main
/
develop
void
configure_nfapi_pnf
(
char
*
vnf_ip_addr
,
int
vnf_p5_port
,
char
*
pnf_ip_addr
,
int
pnf_p7_port
,
int
vnf_p7_port
);
...
...
@@ -80,11 +68,7 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND
pdu
->
data
=
ulsch_buffer
;
// estimate timing advance for MAC
//sync_pos = lte_est_timing_advance_pusch(eNB,UE_id);
<<<<<<<
HEAD
timing_advance_update
=
0
;
//Panos: Don't know what to put here
=======
timing_advance_update
=
0
;
// Don't know what to put here
>>>>>>>
main
/
develop
pdu
->
rx_indication_rel8
.
timing_advance
=
timing_advance_update
;
int
SNRtimes10
=
640
;
...
...
@@ -103,10 +87,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND
void
fill_sr_indication_UE_MAC
(
int
Mod_id
,
int
frame
,
int
subframe
,
UL_IND_t
*
UL_INFO
,
uint16_t
rnti
)
{
<<<<<<<
HEAD
LOG_I
(
MAC
,
"fill_sr_indication_UE_MAC() for Mod_Id: %d
\n
"
,
Mod_id
);
=======
>>>>>>>
main
/
develop
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
...
...
@@ -125,17 +105,10 @@ void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_I
pdu
->
instance_length
=
0
;
// don't know what to do with this
// pdu->rx_ue_information.handle = handle;
pdu
->
rx_ue_information
.
tl
.
tag
=
NFAPI_RX_UE_INFORMATION_TAG
;
<<<<<<<
HEAD
pdu
->
rx_ue_information
.
rnti
=
rnti
;
//UE_mac_inst[Mod_id].crnti;; //Panos: Is this the right RNTI?
// Panos dependency from PHY not sure how to substitute this. Should we hardcode it?
=======
pdu
->
rx_ue_information
.
rnti
=
rnti
;
//UE_mac_inst[Mod_id].crnti
// dependency from PHY not sure how to substitute this. Should we hardcode it?
>>>>>>>
main
/
develop
//int SNRtimes10 = dB_fixed_times10(stat) - 200;//(10*eNB->measurements.n0_power_dB[0]);
int
SNRtimes10
=
640
;
...
...
@@ -157,11 +130,7 @@ void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
<<<<<<<
HEAD
//Panos: REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE!
=======
// REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE!
>>>>>>>
main
/
develop
nfapi_crc_indication_pdu_t
*
pdu
=
&
UL_INFO
->
crc_ind
.
crc_indication_body
.
crc_pdu_list
[
UL_INFO
->
crc_ind
.
crc_indication_body
.
number_of_crcs
];
UL_INFO
->
crc_ind
.
sfn_sf
=
frame
<<
4
|
subframe
;
...
...
@@ -203,15 +172,9 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
=
(
nfapi_preamble_pdu_t
*
)
malloc
(
UL_INFO
->
rach_ind
.
rach_indication_body
.
number_of_preambles
*
sizeof
(
nfapi_preamble_pdu_t
));
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
tl
.
tag
=
NFAPI_PREAMBLE_REL8_TAG
;
<<<<<<<
HEAD
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
timing_advance
=
0
;
//Panos: Not sure about that
//Panos: The two following should get extracted from the call to get_prach_resources().
=======
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
timing_advance
=
0
;
// Not sure about that
//The two following should get extracted from the call to get_prach_resources().
>>>>>>>
main
/
develop
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
preamble
=
ra_PreambleIndex
;
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
rnti
=
ra_RNTI
;
//UL_INFO->rach_ind.rach_indication_body.number_of_preambles++;
...
...
@@ -228,11 +191,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel8
.
rnti
,
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
[
0
].
preamble_rel13
.
rach_resource_type
);
<<<<<<<
HEAD
//Panos: This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge
=======
// This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge
>>>>>>>
main
/
develop
// with that branch.
oai_nfapi_rach_ind
(
&
UL_INFO
->
rach_ind
);
free
(
UL_INFO
->
rach_ind
.
rach_indication_body
.
preamble_list
);
...
...
@@ -251,34 +210,22 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram
pdu
->
rx_ue_information
.
tl
.
tag
=
NFAPI_RX_UE_INFORMATION_TAG
;
pdu
->
rx_ue_information
.
rnti
=
rnti
;
<<<<<<<
HEAD
//Panos: Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0.
=======
// Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0.
>>>>>>>
main
/
develop
pdu
->
cqi_indication_rel9
.
data_offset
=
0
;
// by default set O to rank 1 value
//pdu->cqi_indication_rel9.length = (ulsch_harq->Or1>>3) + ((ulsch_harq->Or1&7) > 0 ? 1 : 0);
<<<<<<<
HEAD
// Panos: Not useful field for our case
=======
// Not useful field for our case
>>>>>>>
main
/
develop
pdu
->
cqi_indication_rel9
.
tl
.
tag
=
NFAPI_CQI_INDICATION_REL9_TAG
;
pdu
->
cqi_indication_rel9
.
length
=
0
;
pdu
->
cqi_indication_rel9
.
ri
[
0
]
=
0
;
pdu
->
cqi_indication_rel9
.
timing_advance
=
0
;
pdu
->
cqi_indication_rel9
.
number_of_cc_reported
=
1
;
pdu
->
ul_cqi_information
.
channel
=
1
;
// PUSCH
pdu
->
cqi_indication_rel9
.
number_of_cc_reported
=
1
;
pdu
->
ul_cqi_information
.
channel
=
1
;
// PUSCH
<<<<<<<
HEAD
//Panos: Not sure how to substitute this. This should be the actual CQI value? So can
=======
// Not sure how to substitute this. This should be the actual CQI value? So can
>>>>>>>
main
/
develop
// we hardcode it to a specific value?
//memcpy((void*)raw_pdu->pdu,ulsch_harq->o,pdu->cqi_indication_rel9.length);
raw_pdu
->
pdu
[
0
]
=
7
;
...
...
@@ -292,11 +239,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram
void
fill_ulsch_harq_indication_UE_MAC
(
int
Mod_id
,
int
frame
,
int
subframe
,
UL_IND_t
*
UL_INFO
,
nfapi_ul_config_ulsch_harq_information
*
harq_information
,
uint16_t
rnti
)
{
<<<<<<<
HEAD
LOG_I
(
MAC
,
"Panos-D: fill_ulsch_harq_indication_UE_MAC(), NUM ACK_NAK REL. 10: %d, NUM ACK_NAK REL. 13: %d, SFN/SF: %d/%d"
,
harq_information
->
harq_information_rel10
.
harq_size
,
harq_information
->
harq_information_rel13
.
harq_size_2
,
frame
,
subframe
);
=======
>>>>>>>
main
/
develop
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
nfapi_harq_indication_pdu_t
*
pdu
=
&
UL_INFO
->
harq_ind
.
harq_indication_body
.
harq_pdu_list
[
UL_INFO
->
harq_ind
.
harq_indication_body
.
number_of_harqs
];
int
i
;
...
...
@@ -312,26 +254,6 @@ void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IN
pdu
->
rx_ue_information
.
tl
.
tag
=
NFAPI_RX_UE_INFORMATION_TAG
;
pdu
->
rx_ue_information
.
rnti
=
rnti
;
<<<<<<<
HEAD
//Panos: For now we consider only FDD
//if (eNB->frame_parms.frame_type == FDD) {
pdu
->
harq_indication_fdd_rel13
.
tl
.
tag
=
NFAPI_HARQ_INDICATION_FDD_REL13_TAG
;
pdu
->
harq_indication_fdd_rel13
.
mode
=
0
;
pdu
->
harq_indication_fdd_rel13
.
number_of_ack_nack
=
1
;
//harq_information->harq_information_rel10.harq_size;
//pdu->harq_indication_fdd_rel13.number_of_ack_nack = harq_information->harq_information_rel10.harq_size;
//Panos: Could this be wrong? Is the number_of_ack_nack field equivalent to O_ACK?
//pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK;
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
0
]
=
1
;
/*for (i=0;i<harq_information->harq_information_rel10.harq_size;i++) {
pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 1; //Panos: Assuming always an ACK (No NACK or DTX)
}*/
=======
// For now we consider only FDD
//if (eNB->frame_parms.frame_type == FDD) {
pdu
->
harq_indication_fdd_rel13
.
tl
.
tag
=
NFAPI_HARQ_INDICATION_FDD_REL13_TAG
;
...
...
@@ -346,7 +268,6 @@ void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IN
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
i
]
=
1
;
// Assuming always an ACK (No NACK or DTX)
}
>>>>>>>
main
/
develop
UL_INFO
->
harq_ind
.
harq_indication_body
.
number_of_harqs
++
;
pthread_mutex_unlock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
...
...
@@ -362,11 +283,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
/*uint8_t tdd_mapping_mode,
uint16_t tdd_multiplexing_mask*/
)
{
<<<<<<<
HEAD
LOG_I
(
MAC
,
"Panos-D: fill_uci_harq_indication_UE_MAC 1 SFN/SF: %d/%d
\n
"
,
frame
,
subframe
);
=======
>>>>>>>
main
/
develop
pthread_mutex_lock
(
&
UE_mac_inst
[
Mod_id
].
UL_INFO_mutex
);
nfapi_harq_indication_t
*
ind
=
&
UL_INFO
->
harq_ind
;
nfapi_harq_indication_body_t
*
body
=
&
ind
->
harq_indication_body
;
...
...
@@ -401,12 +317,7 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
pdu
->
harq_indication_fdd_rel13
.
number_of_ack_nack
=
1
;
//AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]);
<<<<<<<
HEAD
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
0
]
=
1
;
//Panos: Assuming always an ACK (No NACK or DTX)
LOG_I
(
MAC
,
"Panos-D: fill_uci_harq_indication_UE_MAC 2 SFN/SF: %d/%d, harq_information->harq_information_rel9_fdd.harq_size: %d
\n
"
,
frame
,
subframe
,
harq_information
->
harq_information_rel9_fdd
.
harq_size
);
=======
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
0
]
=
1
;
// Assuming always an ACK (No NACK or DTX)
>>>>>>>
main
/
develop
}
...
...
@@ -415,15 +326,8 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
pdu
->
harq_indication_fdd_rel13
.
tl
.
tag
=
NFAPI_HARQ_INDICATION_FDD_REL13_TAG
;
pdu
->
harq_indication_fdd_rel13
.
mode
=
0
;
pdu
->
harq_indication_fdd_rel13
.
number_of_ack_nack
=
2
;
<<<<<<<
HEAD
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
0
]
=
1
;
//Panos: Assuming always an ACK (No NACK or DTX)
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
1
]
=
1
;
//Panos: Assuming always an ACK (No NACK or DTX)
LOG_I
(
MAC
,
"Panos-D: fill_uci_harq_indication_UE_MAC 3 SFN/SF: %d/%d, harq_information->harq_information_rel9_fdd.harq_size: %d
\n
"
,
frame
,
subframe
,
harq_information
->
harq_information_rel9_fdd
.
harq_size
);
=======
pdu
->
harq_indication_fdd_rel13
.
harq_tb_n
[
0
]
=
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)
>>>>>>>
main
/
develop
}
else
AssertFatal
(
1
==
0
,
"only format 1a/b for now, received
\n
"
);
...
...
@@ -440,18 +344,10 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
nfapi_ul_config_request_pdu_t
*
ul_config_pdu
,
uint16_t
frame
,
uint8_t
subframe
,
uint8_t
srs_present
,
int
index
)
{
<<<<<<<
HEAD
nfapi_ul_config_ulsch_pdu_rel8_t
*
rel8
=
&
ul_config_pdu
->
ulsch_pdu
.
ulsch_pdu_rel8
;
if
(
ul_config_pdu
->
pdu_type
==
NFAPI_UL_CONFIG_ULSCH_PDU_TYPE
)
{
LOG_D
(
PHY
,
"Applying UL config for UE, rnti %x for frame %d, subframe %d
\n
"
,
rel8
->
rnti
,
frame
,
subframe
);
=======
if
(
ul_config_pdu
->
pdu_type
==
NFAPI_UL_CONFIG_ULSCH_PDU_TYPE
)
{
LOG_D
(
PHY
,
"Applying UL config for UE, rnti %x for frame %d, subframe %d
\n
"
,
(
ul_config_pdu
->
ulsch_pdu
.
ulsch_pdu_rel8
).
rnti
,
frame
,
subframe
);
>>>>>>>
main
/
develop
uint8_t
ulsch_buffer
[
5477
]
__attribute__
((
aligned
(
32
)));
uint16_t
buflen
=
ul_config_pdu
->
ulsch_pdu
.
ulsch_pdu_rel8
.
size
;
...
...
@@ -463,17 +359,6 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_crc_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
0
,
index
,
rnti
);
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
UE_mac_inst
[
Mod_id
].
RA_prach_resources
.
Msg3
,
buflen
,
rnti
,
index
);
Msg3_transmitted
(
Mod_id
,
0
,
frame
,
0
);
<<<<<<<
HEAD
// Panos: Modification
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
// Panos: This should be done after the reception of the respective hi_dci0
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
else
{
//LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.3 \n");
=======
// Modification
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
...
...
@@ -482,7 +367,6 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
else
{
>>>>>>>
main
/
develop
ue_get_sdu
(
Mod_id
,
0
,
frame
,
subframe
,
0
,
ulsch_buffer
,
buflen
,
&
access_mode
);
fill_crc_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
0
,
index
,
rnti
);
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
ulsch_buffer
,
buflen
,
rnti
,
index
);
...
...
@@ -505,19 +389,11 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
UE_mac_inst
[
Mod_id
].
RA_prach_resources
.
Msg3
,
buflen
,
rnti
,
index
);
Msg3_transmitted
(
Mod_id
,
0
,
frame
,
0
);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<<
HEAD
// Panos: Modification
=======
// Modification
>>>>>>>
main
/
develop
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
}
else
{
<<<<<<<
HEAD
//LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.1 \n");
=======
>>>>>>>
main
/
develop
ue_get_sdu
(
Mod_id
,
0
,
frame
,
subframe
,
0
,
ulsch_buffer
,
buflen
,
&
access_mode
);
fill_crc_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
0
,
index
,
rnti
);
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
ulsch_buffer
,
buflen
,
rnti
,
index
);
...
...
@@ -540,11 +416,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
UE_mac_inst
[
Mod_id
].
RA_prach_resources
.
Msg3
,
buflen
,
rnti
,
index
);
Msg3_transmitted
(
Mod_id
,
0
,
frame
,
0
);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<<
HEAD
// Panos: Modification
=======
// Modification
>>>>>>>
main
/
develop
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
}
...
...
@@ -571,11 +444,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC
(
Mod_id
,
frame
,
subframe
,
UL_INFO
,
UE_mac_inst
[
Mod_id
].
RA_prach_resources
.
Msg3
,
buflen
,
rnti
,
index
);
Msg3_transmitted
(
Mod_id
,
0
,
frame
,
0
);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<<
HEAD
// Panos: Modification
=======
// Modification
>>>>>>>
main
/
develop
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PUSCH
;
UE_mac_inst
[
Mod_id
].
first_ULSCH_Tx
=
0
;
}
...
...
@@ -690,26 +560,15 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti
int
tx_req_UE_MAC
(
nfapi_tx_request_t
*
req
)
{
<<<<<<<
HEAD
uint16_t
sfn
=
NFAPI_SFNSF2SFN
(
req
->
sfn_sf
);
uint16_t
sf
=
NFAPI_SFNSF2SF
(
req
->
sfn_sf
);
LOG_D
(
PHY
,
"%s() SFN/SF:%d/%d PDUs:%d
\n
"
,
__FUNCTION__
,
sfn
,
sf
,
req
->
tx_request_body
.
number_of_pdus
);
=======
LOG_D
(
PHY
,
"%s() SFN/SF:%d/%d PDUs:%d
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2SFN
(
req
->
sfn_sf
),
NFAPI_SFNSF2SF
(
req
->
sfn_sf
),
req
->
tx_request_body
.
number_of_pdus
);
>>>>>>>
main
/
develop
for
(
int
i
=
0
;
i
<
req
->
tx_request_body
.
number_of_pdus
;
i
++
)
{
LOG_D
(
PHY
,
"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d
\n
"
,
__FUNCTION__
,
<<<<<<<
HEAD
sfn
,
sf
,
=======
NFAPI_SFNSF2SFN
(
req
->
sfn_sf
),
NFAPI_SFNSF2SF
(
req
->
sfn_sf
),
>>>>>>>
main
/
develop
req
->
tx_request_body
.
number_of_pdus
,
i
,
req
->
tx_request_body
.
tx_pdu_list
[
i
].
pdu_length
,
...
...
@@ -786,25 +645,15 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
}
else
if
(
dl_config_pdu_list
[
i
].
dci_dl_pdu
.
dci_dl_pdu_rel8
.
rnti_type
==
2
)
{
dl_config_pdu_tmp
=
&
dl_config_pdu_list
[
i
+
1
];
<<<<<<<
HEAD
//LOG_I(MAC, "Panos-D: Before decoding SIB1 1\n \n");
=======
>>>>>>>
main
/
develop
if
(
dl_config_pdu_tmp
->
pdu_type
==
NFAPI_DL_CONFIG_DLSCH_PDU_TYPE
&&
dl_config_pdu_list
[
i
].
dci_dl_pdu
.
dci_dl_pdu_rel8
.
rnti
==
0xFFFF
&&
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
!=
NOT_SYNCHED
){
//&& UE_mac_inst[Mod_id].UE_mode[0] != NOT_SYNCHED
if
(
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){
<<<<<<<
HEAD
//LOG_I(MAC, "Panos-D: Before decoding SIB1 2\n \n");
ue_decode_si
(
Mod_id
,
0
,
sfn
,
0
,
tx_request_pdu_list
[
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
].
segments
[
0
].
segment_data
,
tx_request_pdu_list
[
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
].
segments
[
0
].
segment_length
,
NULL
,
NULL
,
NULL
);
=======
ue_decode_si
(
Mod_id
,
0
,
sfn
,
0
,
tx_request_pdu_list
[
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
].
segments
[
0
].
segment_data
,
tx_request_pdu_list
[
dl_config_pdu_tmp
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
].
segments
[
0
].
segment_length
);
>>>>>>>
main
/
develop
i
++
;
}
else
{
...
...
@@ -865,21 +714,12 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
// for our case.
//LOG_E(MAC,"dl_config_req_UE_MAC 4 Received MIB: sfn/sf: %d.%d \n", sfn, sf);
if
(
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
==
NOT_SYNCHED
){
<<<<<<<
HEAD
//rrc_set_state(Mod_id, RRC_STATE_IDLE);
=======
>>>>>>>
main
/
develop
dl_phy_sync_success
(
Mod_id
,
sfn
,
0
,
1
);
LOG_E
(
MAC
,
"dl_config_req_UE_MAC 5 Received MIB: UE_mode: %d, sfn/sf: %d.%d
\n
"
,
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
],
sfn
,
sf
);
UE_mac_inst
[
Mod_id
].
UE_mode
[
0
]
=
PRACH
;
}
<<<<<<<
HEAD
//else
//dl_phy_sync_success(Mod_id,sfn,0, 0);
=======
else
dl_phy_sync_success
(
Mod_id
,
sfn
,
0
,
0
);
>>>>>>>
main
/
develop
}
...
...
@@ -944,20 +784,9 @@ int hi_dci0_req_UE_MAC(nfapi_hi_dci0_request_t* req, module_id_t Mod_id)
// pnf_p7_subframe_ind.
int
memcpy_dl_config_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_dl_config_request_t
*
req
)
{
<<<<<<<
HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
dl_config_req
=
(
nfapi_dl_config_request_t
*
)
malloc
(
sizeof
(
nfapi_dl_config_request_t
));
//LOG_I(MAC, "Panos-D: memcpy_dl_config_req 1, Mod_id:%d \n", Mod_id);
=======
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
dl_config_req
=
(
nfapi_dl_config_request_t
*
)
malloc
(
sizeof
(
nfapi_dl_config_request_t
));
>>>>>>>
main
/
develop
//UE_mac_inst[Mod_id].dl_config_req->header = req->header;
dl_config_req
->
sfn_sf
=
req
->
sfn_sf
;
...
...
@@ -985,13 +814,6 @@ int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request
int
memcpy_ul_config_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_ul_config_request_t
*
req
)
{
<<<<<<<
HEAD
//LOG_D(MAC, "Panos-D: memcpy_ul_config_req 1 \n");
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>>
main
/
develop
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
...
...
@@ -1023,12 +845,6 @@ int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request
int
memcpy_tx_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_tx_request_t
*
req
)
{
<<<<<<<
HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>>
main
/
develop
tx_req_num_elems
=
req
->
tx_request_body
.
number_of_pdus
;
tx_request_pdu_list
=
(
nfapi_tx_request_pdu_t
*
)
calloc
(
tx_req_num_elems
,
sizeof
(
nfapi_tx_request_pdu_t
));
for
(
int
i
=
0
;
i
<
tx_req_num_elems
;
i
++
)
{
...
...
@@ -1051,13 +867,6 @@ int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req)
int
memcpy_hi_dci0_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
)
{
//if(req!=0){
<<<<<<<
HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>>
main
/
develop
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
hi_dci0_req
=
(
nfapi_hi_dci0_request_t
*
)
malloc
(
sizeof
(
nfapi_hi_dci0_request_t
));
...
...
@@ -1081,8 +890,7 @@ int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t*
//LOG_I(MAC, "Original hi_dci0 req. type:%d, Copy type: %d \n",req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type, UE_mac_inst[Mod_id].hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type);
}
//}
return
0
;
return
0
;
}
...
...
@@ -1101,11 +909,7 @@ void UE_config_stub_pnf(void) {
if
(
strcmp
(
*
(
L1_ParamList
.
paramarray
[
j
][
L1_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_mac"
)
==
0
)
{
sf_ahead
=
4
;
// Need 4 subframe gap between RX and TX
}
<<<<<<<
HEAD
// Panos: Right now that we have only one UE (thread) it is ok to put the eth_params in the UE_mac_inst.
=======
// Right now that we have only one UE (thread) it is ok to put the eth_params in the UE_mac_inst.
>>>>>>>
main
/
develop
// Later I think we have to change that to attribute eth_params to a global element for all the UEs.
else
if
(
strcmp
(
*
(
L1_ParamList
.
paramarray
[
j
][
L1_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"nfapi"
)
==
0
)
{
stub_eth_params
.
local_if_name
=
strdup
(
*
(
L1_ParamList
.
paramarray
[
j
][
L1_LOCAL_N_IF_NAME_IDX
].
strptr
));
...
...
@@ -1187,12 +991,7 @@ void phy_config_request(PHY_Config_t *phy_config) {
uint32_t
from_earfcn
(
int
eutra_bandP
,
uint32_t
dl_earfcn
)
{
return
(
0
);}
int32_t
get_uldl_offset
(
int
eutra_bandP
)
{
return
(
0
);}
<<<<<<<
HEAD
int
l1_north_init_eNB
()
{
=======
int
l1_north_init_eNB
(
void
)
{
>>>>>>>
main
/
develop
return
0
;
}
...
...
openair2/PHY_INTERFACE/phy_stub_UE.h
View file @
40b1f542
...
...
@@ -21,11 +21,7 @@ UL_IND_t *UL_INFO;
nfapi_tx_request_pdu_t
*
tx_request_pdu_list
;
// New
<<<<<<<
HEAD
/// Panos: Pointers to config_request types. Used from nfapi callback functions.
=======
/// Pointers to config_request types. Used from nfapi callback functions.
>>>>>>>
main
/
develop
nfapi_dl_config_request_t
*
dl_config_req
;
nfapi_ul_config_request_t
*
ul_config_req
;
nfapi_hi_dci0_request_t
*
hi_dci0_req
;
...
...
@@ -39,11 +35,7 @@ eth_params_t stub_eth_params;
<<<<<<<
HEAD
// Panos: This function should return all the sched_response config messages which concern a specific UE. Inside this
=======
// This function should return all the sched_response config messages which concern a specific UE. Inside this
>>>>>>>
main
/
develop
// function we should somehow make the translation of config message's rnti to Mod_ID.
Sched_Rsp_t
get_nfapi_sched_response
(
uint8_t
Mod_id
);
...
...
openair2/RRC/LTE/L2_interface.c
View file @
40b1f542
...
...
@@ -259,36 +259,7 @@ mac_rrc_data_ind(
if
((
srb_idP
&
RAB_OFFSET
)
==
CCCH
)
{
Srb_info
=
&
RC
.
rrc
[
module_idP
]
->
carrier
[
CC_id
].
Srb0
;
LOG_D
(
RRC
,
"[eNB %d] Received SDU for CCCH on SRB %d
\n
"
,
module_idP
,
Srb_info
->
Srb_id
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
L2_interface
.
c
#if 0 //defined(ENABLE_ITTI)
{
MessageDef *message_p;
int msg_sdu_size = sizeof(RRC_MAC_CCCH_DATA_IND (message_p).sdu);
if (sdu_lenP > msg_sdu_size) {
LOG_E(RRC, "SDU larger than CCCH SDU buffer size (%d, %d)", sdu_lenP, msg_sdu_size);
sdu_size = msg_sdu_size;
} else {
sdu_size = sdu_lenP;
}
message_p = itti_alloc_new_message (TASK_MAC_ENB, RRC_MAC_CCCH_DATA_IND);
RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_CCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size;
RRC_MAC_CCCH_DATA_IND (message_p).CC_id = CC_id;
memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size);
LOG_D(RRC,"[eNB %d] Sending message to RRC task\n",module_idP);
itti_send_msg_to_task (TASK_RRC_ENB, ctxt.instance, message_p);
}
#else
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
L2_interface
.
c
// msg("\n******INST %d Srb_info %p, Srb_id=%d****\n\n",Mod_id,Srb_info,Srb_info->Srb_id);
if
(
sdu_lenP
>
0
)
{
memcpy
(
Srb_info
->
Rx_buffer
.
Payload
,
sduP
,
sdu_lenP
);
...
...
openair2/RRC/LTE/L2_interface_ue.c
View file @
40b1f542
...
...
@@ -59,8 +59,6 @@ mac_rrc_data_req_ue(
)
//--------------------------------------------------------------------------
{
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
L2_interface_ue
.
c
protocol_ctxt_t
ctxt
;
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
Mod_idP
,
0
,
0
,
frameP
/
10
,
frameP
%
10
,
eNB_indexP
);
...
...
@@ -68,23 +66,6 @@ mac_rrc_data_req_ue(
#ifdef DEBUG_RRC
int
i
;
LOG_I
(
RRC
,
"[eNB %d] mac_rrc_data_req to SRB ID=%d
\n
"
,
Mod_idP
,
Srb_idP
);
=======
LOG_D
(
RRC
,
"[eNB %d] mac_rrc_data_req to SRB ID=%d
\n
"
,
Mod_idP
,
Srb_id
);
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LOG_D
(
RRC
,
"[UE %d] Frame %d Filling SL DISCOVERY SRB_ID %d
\n
"
,
Mod_idP
,
frameP
,
Srb_id
);
LOG_D
(
RRC
,
"[UE %d] Frame %d buffer_pP status %d,
\n
"
,
Mod_idP
,
frameP
,
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
payload_size
);
//TTN (for D2D)
if
(
Srb_id
==
SL_DISCOVERY
&&
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
payload_size
>
0
){
memcpy
(
&
buffer_pP
[
0
],
&
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
Payload
[
0
],
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
payload_size
);
uint8_t
Ret_size
=
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
payload_size
;
LOG_I
(
RRC
,
"[UE %d] Sending SL_Discovery, size %d bytes
\n
"
,
Mod_idP
,
Ret_size
);
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_index
].
Tx_buffer
.
payload_size
=
0
;
return
(
Ret_size
);
}
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
L2_interface_ue
.
c
#endif
LOG_D
(
RRC
,
"[UE %d] Frame %d Filling CCCH SRB_ID %d
\n
"
,
Mod_idP
,
frameP
,
Srb_idP
);
...
...
@@ -93,7 +74,7 @@ mac_rrc_data_req_ue(
AssertFatal
(
Srb_idP
==
MIBCH
||
Srb_idP
==
CCCH
||
Srb_idP
==
SL_DISCOVERY
,
"SRB_id %d is not possible should be (MIBCH %d or CCCH %d or SL_DISCOVERY %d)
\n
"
,
Srb_idP
,
MIBCH
,
CCCH
,
SL_DISCOVERY
);
#if
def Rel14
#if
(LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LOG_D
(
RRC
,
"[UE %d] Frame %d Filling SL DISCOVERY SRB_ID %d
\n
"
,
Mod_idP
,
frameP
,
Srb_idP
);
LOG_D
(
RRC
,
"[UE %d] Frame %d buffer_pP status %d,
\n
"
,
Mod_idP
,
frameP
,
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_indexP
].
Tx_buffer
.
payload_size
);
...
...
@@ -153,7 +134,7 @@ mac_rrc_data_req_ue(
return
(
Ret_size
);
}
#if
def Rel14
#if
(LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
//TTN (for D2D)
else
if
(
Srb_idP
==
SL_DISCOVERY
&&
UE_rrc_inst
[
Mod_idP
].
SL_Discovery
[
eNB_indexP
].
Tx_buffer
.
payload_size
>
0
){
...
...
@@ -404,11 +385,7 @@ rrc_data_req_ue(
sdu_sizeP
,
buffer_pP
,
modeP
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
L2_interface_ue
.
c
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
L2_interface_ue
.
c
,
NULL
,
NULL
#endif
);
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
40b1f542
...
...
@@ -69,15 +69,9 @@
#include "LTE_SIB-Type.h"
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
#include "BCCH-DL-SCH-Message.h"
#include "SBCCH-SL-BCH-MessageType.h"
#include "SBCCH-SL-BCH-Message.h"
=======
#include "LTE_BCCH-DL-SCH-Message.h"
#include "LTE_SBCCH-SL-BCH-MessageType.h"
#include "LTE_SBCCH-SL-BCH-Message.h"
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//#include "PHY/defs.h"
...
...
@@ -322,7 +316,6 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
//TTN for D2D
// 3GPP 36.331 (Section 5.10.7.4)
uint8_t
do_MIB_SL
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
eNB_index
,
int
absSF
,
uint8_t
in_coverage
)
...
...
@@ -394,9 +387,6 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
uint8_t
do_SIB1
(
rrc_eNB_carrier_data_t
*
carrier
,
int
Mod_id
,
int
CC_id
#if defined(ENABLE_ITTI)
...
...
@@ -615,18 +605,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
)
{
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib2_part
,
*
sib3_part
;
#if defined(Rel14)
//TTN - for D2D
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib18_part
,
*
sib19_part
,
*
sib21_part
;
SL_CommRxPoolList_r12_t
*
SL_CommRxPoolList
;
//for SIB18
struct
SL_CommResourcePool_r12
*
SL_CommResourcePool
;
//for SIB18
SL_DiscRxPoolList_r12_t
*
SL_DiscRxPoolList
;
//for SIB19 (discRxPool)
struct
SL_DiscResourcePool_r12
*
SL_DiscResourcePool
;
//for SIB19 (discRxPool)
=======
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib2_part
,
*
sib3_part
;
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
...
...
@@ -636,25 +614,16 @@ uint8_t do_SIB23(uint8_t Mod_id,
struct
LTE_SL_CommResourcePool_r12
*
SL_CommResourcePool
;
//for SIB18
LTE_SL_DiscRxPoolList_r12_t
*
SL_DiscRxPoolList
;
//for SIB19 (discRxPool)
struct
LTE_SL_DiscResourcePool_r12
*
SL_DiscResourcePool
;
//for SIB19 (discRxPool)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//SL_DiscRxPoolList_r12_t *SL_DiscRxPoolPSList; //for SIB19 (discRxPoolPS)
//struct SL_DiscResourcePool_r12 *SL_DiscResourcePoolPS; //for SIB19 (discRxPoolPS)
//struct SL_V2X_ConfigCommon_r14 *SL_V2X_ConfigCommon;
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
#if defined(Rel10) || defined(Rel14)
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
;
MBSFN_SubframeConfigList_t
*
MBSFNSubframeConfigList
;
MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
;
struct
MBSFN_AreaInfo_r9
*
MBSFN_Area1
,
*
MBSFN_Area2
;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
;
LTE_MBSFN_SubframeConfigList_t
*
MBSFNSubframeConfigList
;
LTE_MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
;
struct
LTE_MBSFN_AreaInfo_r9
*
MBSFN_Area1
,
*
MBSFN_Area2
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
#endif
asn_enc_rval_t
enc_rval
;
...
...
@@ -667,19 +636,11 @@ uint8_t do_SIB23(uint8_t Mod_id,
uint8_t
MBMS_flag
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
MBMS_flag
;
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
#if defined(Rel10) || defined(Rel14)
//TTN - for D2D
SystemInformationBlockType18_r12_t
**
sib18
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib18
;
SystemInformationBlockType19_r12_t
**
sib19
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib19
;
SystemInformationBlockType21_r14_t
**
sib21
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib21
;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//TTN - for D2D
LTE_SystemInformationBlockType18_r12_t
**
sib18
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib18
;
LTE_SystemInformationBlockType19_r12_t
**
sib19
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib19
;
LTE_SystemInformationBlockType21_r14_t
**
sib21
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib21
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
#endif
if
(
bcch_message
)
{
...
...
@@ -726,21 +687,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
#if defined(Rel10) || defined(Rel14)
//TTN - for D2D
sib18_part
=
CALLOC
(
1
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib19_part
=
CALLOC
(
1
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib21_part
=
CALLOC
(
1
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib18_part
,
0
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib19_part
,
0
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib21_part
,
0
,
sizeof
(
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib18_part
->
present
=
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250
;
sib19_part
->
present
=
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250
;
sib21_part
->
present
=
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430
;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//TTN - for D2D
sib18_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
...
...
@@ -753,15 +699,10 @@ uint8_t do_SIB23(uint8_t Mod_id,
sib18_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250
;
sib19_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250
;
sib21_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
*
sib18
=
&
sib18_part
->
choice
.
sib18_v1250
;
*
sib19
=
&
sib19_part
->
choice
.
sib19_v1250
;
*
sib21
=
&
sib21_part
->
choice
.
sib21_v1430
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
#endif
...
...
@@ -1148,11 +1089,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
#if defined(Rel10) || defined(Rel14)
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//TTN - for D2D
// SIB18
//commRxPool_r12
...
...
@@ -1172,78 +1109,44 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
prb_End_r12
=
configuration
->
rxPool_ResourceConfig_prb_End
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
configuration
->
rxPool_ResourceConfig_offsetIndicator_present
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
SL_OffsetIndicator_r12_PR_small_r12
)
{
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
configuration
->
rxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
SL_OffsetIndicator_r12_PR_large_r12
){
=======
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
LTE_SL_OffsetIndicator_r12_PR_small_r12
)
{
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
configuration
->
rxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
LTE_SL_OffsetIndicator_r12_PR_large_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
large_r12
=
configuration
->
rxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_present
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs4_r12
){
=======
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs4_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS4
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs8_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs8_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS8
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs12_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs12_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS12
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs16_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs16_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS16
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs30_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs30_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS30
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs40_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs40_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS40
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
bits_unused
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs42_r12
){
=======
}
else
if
(
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs42_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS42
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs42_r12
.
size
=
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_CommResourcePool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs42_r12
.
buf
=
(
uint8_t
*
)
configuration
->
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
...
...
@@ -1252,11 +1155,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
//dataHoppingConfig_r12
SL_CommResourcePool
->
dataHoppingConfig_r12
.
hoppingParameter_r12
=
0
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
dataHoppingConfig_r12
.
numSubbands_r12
=
SL_HoppingConfigComm_r12__numSubbands_r12_ns1
;
=======
SL_CommResourcePool
->
dataHoppingConfig_r12
.
numSubbands_r12
=
LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
dataHoppingConfig_r12
.
rb_Offset_r12
=
0
;
//ue_SelectedResourceConfig_r12
...
...
@@ -1264,15 +1163,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
prb_Num_r12
=
20
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
prb_Start_r12
=
5
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
prb_End_r12
=
44
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
SL_OffsetIndicator_r12_PR_small_r12
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
0
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
SubframeBitmapSL_r12_PR_bs40_r12
;
=======
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
LTE_SL_OffsetIndicator_r12_PR_small_r12
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
0
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
LTE_SubframeBitmapSL_r12_PR_bs40_r12
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
size
=
5
;
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
=
CALLOC
(
1
,
5
);
SL_CommResourcePool
->
ue_SelectedResourceConfig_r12
->
data_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
bits_unused
=
0
;
...
...
@@ -1290,11 +1183,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool
->
rxParametersNCell_r12
->
syncConfigIndex_r12
=
0
;
//txParameters_r12
SL_CommResourcePool
->
txParameters_r12
=
CALLOC
(
1
,
sizeof
(
*
SL_CommResourcePool
->
txParameters_r12
));
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
txParameters_r12
->
sc_TxParameters_r12
.
alpha_r12
=
Alpha_r12_al0
;
=======
SL_CommResourcePool
->
txParameters_r12
->
sc_TxParameters_r12
.
alpha_r12
=
LTE_Alpha_r12_al0
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePool
->
txParameters_r12
->
sc_TxParameters_r12
.
p0_r12
=
0
;
SL_CommResourcePool
->
ext1
=
NULL
;
...
...
@@ -1330,15 +1219,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
prb_Start_r12
=
configuration
->
discRxPool_ResourceConfig_prb_Start
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
prb_End_r12
=
configuration
->
discRxPool_ResourceConfig_prb_End
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
configuration
->
discRxPool_ResourceConfig_offsetIndicator_present
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
SL_OffsetIndicator_r12_PR_small_r12
)
{
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
configuration
->
discRxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
SL_OffsetIndicator_r12_PR_large_r12
){
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
large_r12
=
configuration
->
discRxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_present
[
CC_id
];
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs4_r12
){
=======
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
LTE_SL_OffsetIndicator_r12_PR_small_r12
)
{
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
configuration
->
discRxPool_ResourceConfig_offsetIndicator_choice
[
CC_id
]
;
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
offsetIndicator_r12
.
present
==
LTE_SL_OffsetIndicator_r12_PR_large_r12
){
...
...
@@ -1346,61 +1226,36 @@ uint8_t do_SIB23(uint8_t Mod_id,
}
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_present
[
CC_id
];
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs4_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS4
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs8_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs8_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS8
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs8_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs12_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs12_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS12
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs12_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs16_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs16_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS16
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs30_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs30_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS30
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs30_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs40_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs40_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS40
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs40_r12
.
bits_unused
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
[
CC_id
];
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
SubframeBitmapSL_r12_PR_bs42_r12
){
=======
}
else
if
(
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
present
==
LTE_SubframeBitmapSL_r12_PR_bs42_r12
){
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
//for BS42
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs42_r12
.
size
=
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
[
CC_id
];
SL_DiscResourcePool
->
tf_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs42_r12
.
buf
=
(
uint8_t
*
)
configuration
->
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
[
CC_id
];;
...
...
@@ -1487,13 +1342,8 @@ uint8_t do_SIB23(uint8_t Mod_id,
//SL_V2X_ConfigCommon= (*sib21)->sl_V2X_ConfigCommon_r14;
memset
((
*
sib21
)
->
sl_V2X_ConfigCommon_r14
,
0
,
sizeof
(
*
(
*
sib21
)
->
sl_V2X_ConfigCommon_r14
));
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
struct
SL_CommRxPoolListV2X_r14
*
SL_CommRxPoolListV2X
;
struct
SL_CommResourcePoolV2X_r14
*
SL_CommResourcePoolV2X
;
=======
struct
LTE_SL_CommRxPoolListV2X_r14
*
SL_CommRxPoolListV2X
;
struct
LTE_SL_CommResourcePoolV2X_r14
*
SL_CommResourcePoolV2X
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
(
*
sib21
)
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
=
CALLOC
(
1
,
sizeof
(
*
(
*
sib21
)
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
));
SL_CommRxPoolListV2X
=
(
*
sib21
)
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
;
...
...
@@ -1501,15 +1351,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
memset
(
SL_CommResourcePoolV2X
,
0
,
sizeof
(
*
SL_CommResourcePoolV2X
));
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
=
CALLOC
(
1
,
sizeof
(
*
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
));
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
->
present
=
SL_OffsetIndicator_r12_PR_small_r12
;
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
->
choice
.
small_r12
=
0
;
SL_CommResourcePoolV2X
->
sl_Subframe_r14
.
present
=
SubframeBitmapSL_r14_PR_bs40_r14
;
=======
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
->
present
=
LTE_SL_OffsetIndicator_r12_PR_small_r12
;
SL_CommResourcePoolV2X
->
sl_OffsetIndicator_r14
->
choice
.
small_r12
=
0
;
SL_CommResourcePoolV2X
->
sl_Subframe_r14
.
present
=
LTE_SubframeBitmapSL_r14_PR_bs40_r14
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
SL_CommResourcePoolV2X
->
sl_Subframe_r14
.
choice
.
bs40_r14
.
size
=
5
;
SL_CommResourcePoolV2X
->
sl_Subframe_r14
.
choice
.
bs40_r14
.
buf
=
CALLOC
(
1
,
5
);
SL_CommResourcePoolV2X
->
sl_Subframe_r14
.
choice
.
bs40_r14
.
bits_unused
=
0
;
...
...
@@ -1535,24 +1379,14 @@ uint8_t do_SIB23(uint8_t Mod_id,
//end SIB21
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
bcch_message
->
message
.
present
=
BCCH_DL_SCH_MessageType_PR_c1
;
bcch_message
->
message
.
choice
.
c1
.
present
=
BCCH_DL_SCH_MessageType__c1_PR_systemInformation
;
=======
bcch_message
->
message
.
present
=
LTE_BCCH_DL_SCH_MessageType_PR_c1
;
bcch_message
->
message
.
choice
.
c1
.
present
=
LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformation
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
/* memcpy((void*)&bcch_message.message.choice.c1.choice.systemInformation,
(void*)systemInformation,
sizeof(SystemInformation_t));*/
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
present
=
SystemInformation__criticalExtensions_PR_systemInformation_r8
;
=======
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
present
=
LTE_SystemInformation__criticalExtensions_PR_systemInformation_r8
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
.
count
=
0
;
// asn_set_empty(&systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list);//.size=0;
...
...
@@ -1566,15 +1400,13 @@ uint8_t do_SIB23(uint8_t Mod_id,
if
(
MBMS_flag
>
0
)
{
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib13_part
);
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
//for D2D
// Panos: following lines were removed in the develop branch. Now brought back in but we have to examine whether we should keep
// them in the new merge with sidelink. Probably we have to create a new message for SIB18/19/21 and not include these
// elements in the SIB2/3 message.
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib18_part
);
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib19_part
);
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib21_part
);
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
#endif
if
(
LOG_DEBUGFLAG
(
DEBUG_ASN1
)
)
{
...
...
@@ -1810,157 +1642,7 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, LTE_SL_Destin
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
enc_rval
.
failed_type
->
name
,
enc_rval
.
encoded
);
LOG_D
(
RRC
,
"SidelinkUEInformation Encoded %d bits (%d bytes)
\n
"
,(
uint32_t
)
enc_rval
.
encoded
,(
uint32_t
)((
enc_rval
.
encoded
+
7
)
/
8
));
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
//TTN for D2D - 3GPP TS 36.331 (Section 5.10.2.3)
uint8_t
do_SidelinkUEInformation
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
SL_DestinationInfoList_r12_t
*
destinationInfoList
,
long
*
discTxResourceReq
,
SL_TRIGGER_t
mode
)
{
asn_enc_rval_t
enc_rval
;
UL_DCCH_Message_t
ul_dcch_msg
;
SidelinkUEInformation_r12_t
*
sidelinkUEInformation
;
ARFCN_ValueEUTRA_r9_t
carrierFreq
=
25655
;
//sidelink communication frequency (hardcoded - should come from SIB2)
memset
((
void
*
)
&
ul_dcch_msg
,
0
,
sizeof
(
UL_DCCH_Message_t
));
ul_dcch_msg
.
message
.
present
=
UL_DCCH_MessageType_PR_messageClassExtension
;
ul_dcch_msg
.
message
.
choice
.
messageClassExtension
.
present
=
UL_DCCH_MessageType__messageClassExtension_PR_c2
;
ul_dcch_msg
.
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
present
=
UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12
;
sidelinkUEInformation
=
&
ul_dcch_msg
.
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
sidelinkUEInformation_r12
;
//3GPP TS 36.331 (Section 5.10.2.3)
sidelinkUEInformation
->
criticalExtensions
.
present
=
SidelinkUEInformation_r12__criticalExtensions_PR_c1
;
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
present
=
SidelinkUEInformation_r12__criticalExtensions__c1_PR_sidelinkUEInformation_r12
;
switch
(
mode
)
{
//if SIB18 is available
case
SL_RECEIVE_COMMUNICATION
:
// to receive sidelink communication
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commRxInterestedFreq_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commRxInterestedFreq_r12
));
memcpy
((
void
*
)
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commRxInterestedFreq_r12
,
(
void
*
)
&
carrierFreq
,
sizeof
(
ARFCN_ValueEUTRA_r9_t
));
break
;
case
SL_TRANSMIT_NON_RELAY_ONE_TO_MANY
:
//to transmit non-relay related one-to-many sidelink communication
//commTxResourceReq
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
->
carrierFreq_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
->
carrierFreq_r12
));
memcpy
((
void
*
)
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
->
carrierFreq_r12
,
(
void
*
)
&
carrierFreq
,
sizeof
(
ARFCN_ValueEUTRA_r9_t
));
memcpy
(
&
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
commTxResourceReq_r12
->
destinationInfoList_r12
,
destinationInfoList
,
sizeof
(
SL_DestinationInfoList_r12_t
));
break
;
case
SL_TRANSMIT_NON_RELAY_ONE_TO_ONE
:
//transmit non-relay related one-to-one sidelink communication
//if commTxResourceUC-ReqAllowed is included in SIB18
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
->
carrierFreq_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
->
carrierFreq_r12
));
memcpy
((
void
*
)
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
->
carrierFreq_r12
,
(
void
*
)
&
carrierFreq
,
sizeof
(
ARFCN_ValueEUTRA_r9_t
));
memcpy
(
&
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceReqUC_r13
->
destinationInfoList_r12
,
destinationInfoList
,
sizeof
(
SL_DestinationInfoList_r12_t
));
break
;
case
SL_TRANSMIT_RELAY_ONE_TO_ONE
:
//transmit relay related one-to-one sidelink communication
//if SIB19 includes discConfigRelay and UE acts a relay or UE has a selected relay
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelayUC_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelayUC_r13
));
memcpy
(
&
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelayUC_r13
->
destinationInfoList_r12
,
destinationInfoList
,
sizeof
(
*
destinationInfoList
));
//set ue-type to relayUE or remoteUE
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
ue_Type_r13
=
SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE
;
//sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12->nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_remoteUE;
break
;
case
SL_TRANSMIT_RELAY_ONE_TO_MANY
:
//transmit relay related one-to-many sidelink communication
//if SIB19 includes discConfigRelay and UE acts a relay
//set ue-type to relayUE
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelay_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelay_r13
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
ue_Type_r13
=
SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE
;
memcpy
(
&
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
commTxResourceInfoReqRelay_r13
->
commTxResourceReqRelay_r13
->
destinationInfoList_r12
,
destinationInfoList
,
sizeof
(
*
destinationInfoList
));
break
;
//if SIB19 is available
//we consider only one frequency - a serving frequency
case
SL_RECEIVE_DISCOVERY
:
//receive sidelink discovery announcements
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discRxInterest_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discRxInterest_r12
));
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discRxInterest_r12
=
SidelinkUEInformation_r12_IEs__discRxInterest_r12_true
;
break
;
case
SL_TRANSMIT_NON_PS_DISCOVERY
:
//to transmit non-PS related sidelink discovery announcements
//for the first frequency
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discTxResourceReq_r12
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discTxResourceReq_r12
));
memcpy
((
void
*
)
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
discTxResourceReq_r12
,
(
void
*
)
discTxResourceReq
,
sizeof
(
long
));
//for additional frequency
break
;
case
SL_TRANSMIT_PS_DISCOVERY
:
//to transmit PS related sidelink discovery announcements
//if to transmit non-relay PS related discovery announcements and SIB19 includes discConfigPS
//if UE is acting as relay UE and SIB includes discConfigRelay (relay threshold condition)
//if relay UE/has a selected relay UE and if SIB19 includes discConfigRelay
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
discTxResourceReqPS_r13
=
CALLOC
(
1
,
sizeof
(
*
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
discTxResourceReqPS_r13
));
sidelinkUEInformation
->
criticalExtensions
.
choice
.
c1
.
choice
.
sidelinkUEInformation_r12
.
nonCriticalExtension
->
discTxResourceReqPS_r13
->
discTxResourceReq_r13
=
*
discTxResourceReq
;
break
;
//SIB21
case
SL_RECEIVE_V2X
:
//TODO
break
;
case
SL_TRANSMIT_V2X
:
//TODO
break
;
//TODO: request sidelink discovery transmission/reception gaps
//TODO: report the system information parameters related to sidelink discovery of carriers other than the primary
default:
break
;
}
#ifdef XER_PRINT
xer_fprint
(
stdout
,
&
asn_DEF_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
);
#endif
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
,
buffer
,
100
);
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
enc_rval
.
failed_type
->
name
,
enc_rval
.
encoded
);
//Panos: Lines 1646-1663 were in the sidelink branch version. Not sure if they should be in the merged with develop version.
#if defined(ENABLE_ITTI)
# if !defined(DISABLE_XER_SPRINT)
{
...
...
@@ -1980,17 +1662,14 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_Destinatio
# endif
#endif
#ifdef USER_MODE
LOG_D
(
RRC
,
"SidelinkUEInformation Encoded %d bits (%d bytes)
\n
"
,
enc_rval
.
encoded
,(
enc_rval
.
encoded
+
7
)
/
8
);
#endif
LOG_D
(
RRC
,
"SidelinkUEInformation Encoded %d bits (%d bytes)
\n
"
,
(
uint32_t
)
enc_rval
.
encoded
,(
uint32_t
)((
enc_rval
.
encoded
+
7
)
/
8
)
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
uint8_t
do_RRCConnectionSetupComplete
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
const
uint8_t
Transaction_id
,
const
int
dedicatedInfoNASLength
,
const
char
*
dedicatedInfoNAS
)
{
...
...
@@ -2631,31 +2310,6 @@ do_RRCConnectionReconfiguration(
const
protocol_ctxt_t
*
const
ctxt_pP
,
uint8_t
*
buffer
,
uint8_t
Transaction_id
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
SRB_ToAddModList_t
*
SRB_list
,
DRB_ToAddModList_t
*
DRB_list
,
DRB_ToReleaseList_t
*
DRB_list2
,
struct
SPS_Config
*
sps_Config
,
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
,
MeasObjectToAddModList_t
*
MeasObj_list
,
ReportConfigToAddModList_t
*
ReportConfig_list
,
QuantityConfig_t
*
quantityConfig
,
MeasIdToAddModList_t
*
MeasId_list
,
MAC_MainConfig_t
*
mac_MainConfig
,
MeasGapConfig_t
*
measGapConfig
,
MobilityControlInfo_t
*
mobilityInfo
,
struct
MeasConfig__speedStatePars
*
speedStatePars
,
RSRP_Range_t
*
rsrp
,
C_RNTI_t
*
cba_rnti
,
struct
RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList
*
dedicatedInfoNASList
,
#ifdef Rel14
SL_CommConfig_r12_t
*
sl_CommConfig
,
SL_DiscConfig_r12_t
*
sl_DiscConfig
#endif
#if defined(Rel10) || defined(Rel14)
,
SCellToAddMod_r10_t
*
SCell_config
=======
LTE_SRB_ToAddModList_t
*
SRB_list
,
LTE_DRB_ToAddModList_t
*
DRB_list
,
LTE_DRB_ToReleaseList_t
*
DRB_list2
,
...
...
@@ -2677,7 +2331,6 @@ do_RRCConnectionReconfiguration(
LTE_SL_DiscConfig_r12_t
*
sl_DiscConfig
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
,
LTE_SCellToAddMod_r10_t
*
SCell_config
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
#endif
)
...
...
@@ -2788,11 +2441,7 @@ do_RRCConnectionReconfiguration(
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
=
CALLOC
(
1
,
sizeof
(
*
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
));
memcpy
((
void
*
)
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
,
(
void
*
)
sl_CommConfig
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
sizeof
(
SL_CommConfig_r12_t
));
=======
sizeof
(
LTE_SL_CommConfig_r12_t
));
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
}
//allocate dedicated resource pools for SL discovery (sl_DiscConfig)
...
...
@@ -2811,18 +2460,11 @@ do_RRCConnectionReconfiguration(
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_DiscConfig_r12
=
CALLOC
(
1
,
sizeof
(
*
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_DiscConfig_r12
));
memcpy
((
void
*
)
rrcConnectionReconfiguration
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionReconfiguration_r8
.
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_DiscConfig_r12
,
(
void
*
)
sl_DiscConfig
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
c
sizeof
(
SL_DiscConfig_r12_t
));
}
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_DL_DCCH_Message
,
=======
sizeof
(
LTE_SL_DiscConfig_r12_t
));
}
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_LTE_DL_DCCH_Message
,
NULL
,
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
c
(
void
*
)
&
dl_dcch_msg
,
buffer
,
RRC_BUF_SIZE
);
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.h
View file @
40b1f542
...
...
@@ -38,14 +38,8 @@
#include <asn_application.h>
#include <asn_internal.h>
/* for _ASN_DEFAULT_STACK_MAX */
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
h
#include "RRC/LITE/defs.h"
#include "SL-DestinationInfoList-r12.h"
=======
#include "RRC/LTE/rrc_defs.h"
#include "LTE_SL-DestinationInfoList-r12.h"
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
h
/*
* The variant of the above function which dumps the BASIC-XER (XER_F_BASIC)
...
...
@@ -115,11 +109,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv);
@param discTxResourceReq Pointer to number of discovery messages for discovery announcements for which UE requests E-UTRAN to assign dedicated resources
@param mode Indicates different requests from upper layers
@returns Size of encoded bit stream in bytes*/
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
h
uint8_t
do_SidelinkUEInformation
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
SL_DestinationInfoList_r12_t
*
destinationInfoList
,
long
*
discTxResourceReq
,
SL_TRIGGER_t
mode
);
=======
uint8_t
do_SidelinkUEInformation
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
LTE_SL_DestinationInfoList_r12_t
*
destinationInfoList
,
long
*
discTxResourceReq
,
SL_TRIGGER_t
mode
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
h
/** \brief Generate an RRCConnectionSetupComplete UL-DCCH-Message (UE)
@param buffer Pointer to PER-encoded ASN.1 description of UL-DCCH-Message PDU
...
...
@@ -189,28 +179,6 @@ do_RRCConnectionReconfiguration(
const
protocol_ctxt_t
*
const
ctxt_pP
,
uint8_t
*
buffer
,
uint8_t
Transaction_id
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
MESSAGES
/
asn1_msg
.
h
SRB_ToAddModList_t
*
SRB_list
,
DRB_ToAddModList_t
*
DRB_list
,
DRB_ToReleaseList_t
*
DRB_list2
,
struct
SPS_Config
*
sps_Config
,
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
,
MeasObjectToAddModList_t
*
MeasObj_list
,
ReportConfigToAddModList_t
*
ReportConfig_list
,
QuantityConfig_t
*
quantityConfig
,
MeasIdToAddModList_t
*
MeasId_list
,
MAC_MainConfig_t
*
mac_MainConfig
,
MeasGapConfig_t
*
measGapConfig
,
MobilityControlInfo_t
*
mobilityInfo
,
struct
MeasConfig__speedStatePars
*
speedStatePars
,
RSRP_Range_t
*
rsrp
,
C_RNTI_t
*
cba_rnti
,
struct
RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList
*
dedicatedInfoNASList
,
SL_CommConfig_r12_t
*
sl_CommConfig
,
SL_DiscConfig_r12_t
*
sl_DiscConfig
#if defined(Rel10) || defined(Rel14)
,
SCellToAddMod_r10_t
*
SCell_config
=======
LTE_SRB_ToAddModList_t
*
SRB_list
,
LTE_DRB_ToAddModList_t
*
DRB_list
,
LTE_DRB_ToReleaseList_t
*
DRB_list2
,
...
...
@@ -231,7 +199,6 @@ do_RRCConnectionReconfiguration(
LTE_SL_DiscConfig_r12_t
*
sl_DiscConfig
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
,
LTE_SCellToAddMod_r10_t
*
SCell_config
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
MESSAGES
/
asn1_msg
.
h
#endif
);
/**
...
...
openair2/RRC/LTE/rrc_UE.c
View file @
40b1f542
...
...
@@ -31,11 +31,10 @@
#define RRC_UE
#define RRC_UE_C
#define _GNU_SOURCE
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#include <pthread.h>
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
// Panos: Not sure if pthread.h is needed here
//#include <pthread.h>
#include "assertions.h"
#include "hashtable.h"
#include "asn1_conversions.h"
...
...
@@ -86,8 +85,6 @@
#endif
#include "SIMULATION/TOOLS/sim.h" // for taus
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#ifdef Rel14
#include "SL-Preconfiguration-r12.h"
...
...
@@ -99,18 +96,13 @@ int slrb_id;
int
send_ue_information
=
0
;
SL_UE_STATE_t
On_Off_Net
=
UE_STATE_OFF_NETWORK
;
#endif
=======
#include "openair2/LAYER2/MAC/mac_extern.h"
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#include "LTE_SL-Preconfiguration-r12.h"
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
extern
uint8_t
nfapi_mode
;
//#define XER_PRINT
=======
//for D2D
int
ctrl_sock_fd
;
#define BUFSIZE 1024
...
...
@@ -118,7 +110,6 @@ struct sockaddr_in prose_app_addr;
int
slrb_id
;
int
send_ue_information
=
0
;
#endif
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
// for malloc_clear
#include "PHY/defs_UE.h"
...
...
@@ -168,11 +159,7 @@ static uint8_t check_trigger_meas_event(
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
static
void
decode_MBSFNAreaConfiguration
(
module_id_t
module_idP
,
uint8_t
eNB_index
,
frame_t
frameP
,
uint8_t
mbsfn_sync_area
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
uint8_t
rrc_ue_generate_SidelinkUEInformation
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
eNB_index
,
SL_DestinationInfoList_r12_t
*
destinationInfoList
,
long
*
discTxResourceReq
,
SL_TRIGGER_t
mode
);
=======
uint8_t
rrc_ue_generate_SidelinkUEInformation
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
eNB_index
,
LTE_SL_DestinationInfoList_r12_t
*
destinationInfoList
,
long
*
discTxResourceReq
,
SL_TRIGGER_t
mode
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
...
...
@@ -294,25 +281,6 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sizeof_SIB1
[
eNB_index
]
=
0
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sizeof_SI
[
eNB_index
]
=
0
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
SIB1
[
eNB_index
]
=
(
uint8_t
*
)
malloc16_clear
(
32
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib1
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType1_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib2
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType2_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib3
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType3_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib4
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType4_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib5
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType5_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib6
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType6_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib7
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType7_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib8
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType8_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib9
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType9_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib10
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType10_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib11
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType11_t
)
);
#if defined(Rel10) || defined(Rel14)
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib12
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType12_r9_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib13
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType13_r9_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType18_r12_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType19_r12_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib21
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
SystemInformationBlockType21_r14_t
)
);
=======
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib1
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType1_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib2
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType2_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib3
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType3_t
)
);
...
...
@@ -330,8 +298,6 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType18_r12_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType19_r12_t
)
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib21
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
LTE_SystemInformationBlockType21_r14_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
UE_rrc_inst
[
ctxt_pP
->
module_id
].
SI
[
eNB_index
]
=
(
uint8_t
*
)
malloc16_clear
(
64
);
...
...
@@ -341,280 +307,96 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIcnt
=
0
;
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#ifdef Rel14
void
init_SL_preconfig
(
UE_RRC_INST
*
UE
,
const
uint8_t
eNB_index
)
{
LOG_I
(
RRC
,
"Initializing Sidelink Pre-configuration for UE
\n
"
);
// General
UE
->
SL_Preconfiguration
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
struct
SL_Preconfiguration_r12
)
);
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
rohc_Profiles_r12
.
profile0x0001_r12
=
true
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
carrierFreq_r12
=
3350
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
maxTxPower_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
additionalSpectrumEmission_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
sl_bandwidth_r12
=
SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
tdd_ConfigSL_r12
.
subframeAssignmentSL_r12
=
TDD_ConfigSL_r12__subframeAssignmentSL_r12_none
;
// SYNC
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncCP_Len_r12
=
SL_CP_Len_r12_normal
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncOffsetIndicator1_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncOffsetIndicator2_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncTxParameters_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncTxThreshOoC_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
filterCoefficient_r12
=
FilterCoefficient_fc0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncRefMinHyst_r12
=
SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncRefDiffHyst_r12
=
SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
ext1
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigSync_r12__ext1
));
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
ext1
->
syncTxPeriodic_r13
=
NULL
;
// SL Control portion
struct
SL_PreconfigCommPool_r12
*
preconfigpool
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigCommPool_r12
));
preconfigpool
->
sc_CP_Len_r12
=
SL_CP_Len_r12_normal
;
preconfigpool
->
sc_Period_r12
=
SL_PeriodComm_r12_sf320
;
// 4 PRBs for SL-SC communications
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_Num_r12
=
4
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_Start_r12
=
5
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_End_r12
=
44
;
// Offset set to 0 subframes
preconfigpool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
SL_OffsetIndicator_r12_PR_small_r12
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
0
;
// 4 ms SL Period
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
SubframeBitmapSL_r12_PR_bs4_r12
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
=
CALLOC
(
1
,
1
);
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
size
=
1
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
bits_unused
=
4
;
// 1st 4 subframes for PSCCH
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
[
0
]
=
0x0F
;
preconfigpool
->
sc_TxParameters_r12
=
0
;
//SL Data portion
// 20 PRBs for SL communications
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_Num_r12
=
20
;
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_Start_r12
=
5
;
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_End_r12
=
44
;
preconfigpool
->
data_CP_Len_r12
=
SL_CP_Len_r12_normal
;
preconfigpool
->
dataHoppingConfig_r12
.
hoppingParameter_r12
=
0
;
preconfigpool
->
dataHoppingConfig_r12
.
numSubbands_r12
=
SL_HoppingConfigComm_r12__numSubbands_r12_ns1
;
preconfigpool
->
dataHoppingConfig_r12
.
rb_Offset_r12
=
0
;
preconfigpool
->
dataTxParameters_r12
=
0
;
ASN_SEQUENCE_ADD
(
&
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigComm_r12
.
list
,
preconfigpool
);
// Discovery (Use Rel13 fields)
// Rel13 extensions
struct
SL_Preconfiguration_r12__ext1
*
ext1
=
malloc16_clear
(
sizeof
(
struct
SL_Preconfiguration_r12__ext1
));
ext1
->
preconfigComm_v1310
=
NULL
;
ext1
->
preconfigRelay_r13
=
NULL
;
ext1
->
preconfigDisc_r13
=
malloc16_clear
(
sizeof
(
struct
SL_Preconfiguration_r12__ext1__preconfigDisc_r13
));
SL_PreconfigDiscPool_r13_t
*
discrxpool
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigDiscPool_r13
));
UE
->
SL_Preconfiguration
[
eNB_index
]
->
ext1
=
ext1
;
discrxpool
->
cp_Len_r13
=
SL_CP_Len_r12_normal
;
discrxpool
->
discPeriod_r13
=
SL_PreconfigDiscPool_r13__discPeriod_r13_rf128
;
discrxpool
->
numRetx_r13
=
3
;
discrxpool
->
numRepetition_r13
=
1
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_Num_r12
=
8
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_Start_r12
=
15
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_End_r12
=
34
;
discrxpool
->
tf_ResourceConfig_r13
.
offsetIndicator_r12
.
present
=
SL_OffsetIndicator_r12_PR_small_r12
;
discrxpool
->
tf_ResourceConfig_r13
.
offsetIndicator_r12
.
choice
.
small_r12
=
1
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
present
=
SubframeBitmapSL_r12_PR_bs16_r12
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
=
CALLOC
(
1
,
2
);
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
[
0
]
=
0xFF
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
[
1
]
=
0xFF
;
discrxpool
->
txParameters_r13
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigDiscPool_r13__txParameters_r13
));
discrxpool
->
txParameters_r13
->
txParametersGeneral_r13
=
0
;
discrxpool
->
txParameters_r13
->
txProbability_r13
=
SL_PreconfigDiscPool_r13__txParameters_r13__txProbability_r13_p100
;
ASN_SEQUENCE_ADD
(
&
ext1
->
preconfigDisc_r13
->
discRxPoolList_r13
.
list
,
discrxpool
);
UE
->
SL_Preconfiguration
[
eNB_index
]
->
ext1
=
ext1
;
}
#endif
#if defined(Rel10) || defined(Rel14)
//-----------------------------------------------------------------------------
#if 0
void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index)
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
void
init_SL_preconfig
(
UE_RRC_INST
*
UE
,
const
uint8_t
eNB_index
)
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n");
UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct LTE_SL_Preconfiguration_r12) );
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.maxTxPower_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = LTE_SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = LTE_TDD_ConfigSL_r12__subframeAssignmentSL_r12_none;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = LTE_SL_CP_Len_r12_normal;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxParameters_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxThreshOoC_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.filterCoefficient_r12 = LTE_FilterCoefficient_fc0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefMinHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct LTE_SL_PreconfigSync_r12__ext1));
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL;
struct LTE_SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct LTE_SL_PreconfigCommPool_r12));
preconfigpool->sc_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
preconfigpool->sc_Period_r12 = LTE_SL_PeriodComm_r12_sf40;
// 20 PRBs for SL communications
preconfigpool->sc_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->sc_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 40 ms SL Period
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs40_r12;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5);
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0;
// 1st 4 subframes for PSCCH
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[4] = 0;
preconfigpool->sc_TxParameters_r12 = 0;
preconfigpool->data_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
// 20 PRBs for SL communications
preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->data_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->data_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 40 ms SL Period
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs40_r12;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5);
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0;
// last 36 subframes for PSCCH
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF0;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[5] = 0xFF;
preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0;
preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0;
preconfigpool->dataTxParameters_r12 = 0;
ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
// Rel13 extensions
UE->SL_Preconfiguration[eNB_index]->ext1 = NULL;
/*
// Establish a SLRB (using DRB 3 for now)
protocol_ctxt_t ctxt;
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0);
UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod));
UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long));
UE->DRB_config[0][0]->drb_Identity = 3;
UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long));
// allowed value 5..15, value : x+4
*(UE->DRB_config[0][0]->eps_BearerIdentity) = 3;
UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long));
*(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
// TTN - Establish a new SLRB for PC5-S (using DRB 10 for now)
UE->DRB_config[0][1] = CALLOC(1,sizeof(struct DRB_ToAddMod));
UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long));
UE->DRB_config[0][1]->drb_Identity = 10;
UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long));
// allowed value 5..15, value : x+4
*(UE->DRB_config[0][1]->eps_BearerIdentity) = 10;
UE->DRB_config[0][1]->logicalChannelIdentity = CALLOC(1, sizeof(long));
*(UE->DRB_config[0][1]->logicalChannelIdentity) = UE->DRB_config[0][1]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
struct RLC_Config *DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config));
struct PDCP_Config *DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config));
struct PDCP_Config__rlc_UM *PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM));
struct LogicalChannelConfig *DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig));
struct LogicalChannelConfig__ul_SpecificParameters
*DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters));
long *logicalchannelgroup_drb = CALLOC(1, sizeof(long));
DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional;
DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35;
UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config;
UE->DRB_config[0][1]->rlc_Config = DRB_rlc_config;
DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config));
UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config;
UE->DRB_config[0][1]->pdcp_Config = DRB_pdcp_config;
DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long));
*DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity;
DRB_pdcp_config->rlc_AM = NULL;
DRB_pdcp_config->rlc_UM = NULL;
// avoid gcc warnings
(void)PDCP_rlc_UM;
DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits;
DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed;
UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config;
UE->DRB_config[0][1]->logicalChannelConfig = DRB_lchan_config;
DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters));
DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters;
DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer
DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ;
//LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
DRB_ul_SpecificParameters->bucketSizeDuration =
LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50;
// LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM)
*logicalchannelgroup_drb = 1;
DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t));
ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][1]);
rrc_pdcp_config_asn1_req(&ctxt,
(SRB_ToAddModList_t *) NULL,
UE->DRB_configList,
(DRB_ToReleaseList_t*) NULL,
0xff, NULL, NULL, NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
, (LTE_PMCH_InfoList_r9_t *) NULL
#endif
,NULL);
rrc_rlc_config_asn1_req(&ctxt,
(SRB_ToAddModList_t*)NULL,
UE->DRB_configList,
(DRB_ToReleaseList_t*)NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
,(LTE_PMCH_InfoList_r9_t *)NULL
#endif
);
*/
LOG_I
(
RRC
,
"Initializing Sidelink Pre-configuration for UE
\n
"
);
//General
UE
->
SL_Preconfiguration
[
eNB_index
]
=
malloc16_clear
(
sizeof
(
struct
LTE_SL_Preconfiguration_r12
)
);
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
rohc_Profiles_r12
.
profile0x0001_r12
=
true
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
carrierFreq_r12
=
3350
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
maxTxPower_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
additionalSpectrumEmission_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
sl_bandwidth_r12
=
LTE_SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigGeneral_r12
.
tdd_ConfigSL_r12
.
subframeAssignmentSL_r12
=
LTE_TDD_ConfigSL_r12__subframeAssignmentSL_r12_none
;
//SYNC
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncCP_Len_r12
=
LTE_SL_CP_Len_r12_normal
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncOffsetIndicator1_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncOffsetIndicator2_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncTxParameters_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncTxThreshOoC_r12
=
0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
filterCoefficient_r12
=
LTE_FilterCoefficient_fc0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncRefMinHyst_r12
=
LTE_SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
syncRefDiffHyst_r12
=
LTE_SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0
;
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
ext1
=
malloc16_clear
(
sizeof
(
struct
LTE_SL_PreconfigSync_r12__ext1
));
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigSync_r12
.
ext1
->
syncTxPeriodic_r13
=
NULL
;
struct
LTE_SL_PreconfigCommPool_r12
*
preconfigpool
=
malloc16_clear
(
sizeof
(
struct
LTE_SL_PreconfigCommPool_r12
));
preconfigpool
->
sc_CP_Len_r12
=
LTE_SL_CP_Len_r12_normal
;
preconfigpool
->
sc_Period_r12
=
LTE_SL_PeriodComm_r12_sf40
;
// 4 PRBs for SL communications
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_Num_r12
=
4
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_Start_r12
=
5
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
prb_End_r12
=
44
;
// Offset set to 0 subframes
preconfigpool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
present
=
LTE_SL_OffsetIndicator_r12_PR_small_r12
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
offsetIndicator_r12
.
choice
.
small_r12
=
0
;
// 4 ms SL Period
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
present
=
LTE_SubframeBitmapSL_r12_PR_bs4_r12
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
=
CALLOC
(
1
,
1
);
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
size
=
1
;
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
bits_unused
=
4
;
// 1st 4 subframes for PSCCH
preconfigpool
->
sc_TF_ResourceConfig_r12
.
subframeBitmap_r12
.
choice
.
bs4_r12
.
buf
[
0
]
=
0x0F
;
preconfigpool
->
sc_TxParameters_r12
=
0
;
//SL Data portion
// 20 PRBs for SL communications
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_Num_r12
=
20
;
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_Start_r12
=
5
;
preconfigpool
->
data_TF_ResourceConfig_r12
.
prb_End_r12
=
44
;
preconfigpool
->
data_CP_Len_r12
=
LTE_SL_CP_Len_r12_normal
;
preconfigpool
->
dataHoppingConfig_r12
.
hoppingParameter_r12
=
0
;
preconfigpool
->
dataHoppingConfig_r12
.
numSubbands_r12
=
LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1
;
preconfigpool
->
dataHoppingConfig_r12
.
rb_Offset_r12
=
0
;
preconfigpool
->
dataTxParameters_r12
=
0
;
ASN_SEQUENCE_ADD
(
&
UE
->
SL_Preconfiguration
[
eNB_index
]
->
preconfigComm_r12
.
list
,
preconfigpool
);
// Discovery (Use Rel13 fields)
// Rel13 extensions
struct
SL_Preconfiguration_r12__ext1
*
ext1
=
malloc16_clear
(
sizeof
(
struct
SL_Preconfiguration_r12__ext1
));
ext1
->
preconfigComm_v1310
=
NULL
;
ext1
->
preconfigRelay_r13
=
NULL
;
ext1
->
preconfigDisc_r13
=
malloc16_clear
(
sizeof
(
struct
SL_Preconfiguration_r12__ext1__preconfigDisc_r13
));
SL_PreconfigDiscPool_r13_t
*
discrxpool
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigDiscPool_r13
));
UE
->
SL_Preconfiguration
[
eNB_index
]
->
ext1
=
ext1
;
discrxpool
->
cp_Len_r13
=
SL_CP_Len_r12_normal
;
discrxpool
->
discPeriod_r13
=
SL_PreconfigDiscPool_r13__discPeriod_r13_rf128
;
discrxpool
->
numRetx_r13
=
3
;
discrxpool
->
numRepetition_r13
=
1
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_Num_r12
=
8
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_Start_r12
=
15
;
discrxpool
->
tf_ResourceConfig_r13
.
prb_End_r12
=
34
;
discrxpool
->
tf_ResourceConfig_r13
.
offsetIndicator_r12
.
present
=
SL_OffsetIndicator_r12_PR_small_r12
;
discrxpool
->
tf_ResourceConfig_r13
.
offsetIndicator_r12
.
choice
.
small_r12
=
1
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
present
=
SubframeBitmapSL_r12_PR_bs16_r12
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
=
CALLOC
(
1
,
2
);
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
[
0
]
=
0xFF
;
discrxpool
->
tf_ResourceConfig_r13
.
subframeBitmap_r12
.
choice
.
bs16_r12
.
buf
[
1
]
=
0xFF
;
discrxpool
->
txParameters_r13
=
malloc16_clear
(
sizeof
(
struct
SL_PreconfigDiscPool_r13__txParameters_r13
));
discrxpool
->
txParameters_r13
->
txParametersGeneral_r13
=
0
;
discrxpool
->
txParameters_r13
->
txProbability_r13
=
SL_PreconfigDiscPool_r13__txParameters_r13__txProbability_r13_p100
;
ASN_SEQUENCE_ADD
(
&
ext1
->
preconfigDisc_r13
->
discRxPoolList_r13
.
list
,
discrxpool
);
UE
->
SL_Preconfiguration
[
eNB_index
]
->
ext1
=
ext1
;
}
#endif
...
...
@@ -909,12 +691,7 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co
char
message_string
[
10000
];
size_t
message_string_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "Panos-D: rrc_ue_decode_ccch, Before xer_sprint() \n");
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_DL_CCCH_Message
,
(
void
*
)
dl_ccch_msg
))
>
0
)
{
=======
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_LTE_DL_CCCH_Message
,
(
void
*
)
dl_ccch_msg
))
>
0
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
MessageDef
*
msg_p
;
msg_p
=
itti_alloc_new_message_sized
(
TASK_RRC_UE
,
RRC_DL_CCCH
,
message_string_size
+
sizeof
(
IttiMsgText
));
...
...
@@ -1219,9 +996,8 @@ rrc_ue_process_measConfig(
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
,
...
...
@@ -1230,13 +1006,6 @@ rrc_ue_process_measConfig(
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
}
...
...
@@ -1680,17 +1449,10 @@ rrc_ue_process_radioResourceConfigDedicated(
// Refresh SRBs
rrc_rlc_config_asn1_req
(
ctxt_pP
,
radioResourceConfigDedicated
->
srb_ToAddModList
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
(
DRB_ToAddModList_t
*
)
NULL
,
(
DRB_ToReleaseList_t
*
)
NULL
#if defined(Rel10) || defined(Rel14)
,(
PMCH_InfoList_r9_t
*
)
NULL
=======
(
LTE_DRB_ToAddModList_t
*
)
NULL
,
(
LTE_DRB_ToReleaseList_t
*
)
NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,(
LTE_PMCH_InfoList_r9_t
*
)
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
,
0
,
0
#endif
);
...
...
@@ -1758,9 +1520,8 @@ rrc_ue_process_radioResourceConfigDedicated(
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
,
...
...
@@ -1769,13 +1530,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
}
...
...
@@ -1836,8 +1590,7 @@ rrc_ue_process_radioResourceConfigDedicated(
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -1847,13 +1600,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
}
...
...
@@ -1909,15 +1655,9 @@ rrc_ue_process_radioResourceConfigDedicated(
rrc_rlc_config_asn1_req
(
ctxt_pP
,
(
LTE_SRB_ToAddModList_t
*
)
NULL
,
radioResourceConfigDedicated
->
drb_ToAddModList
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
(
DRB_ToReleaseList_t
*
)
NULL
#if defined(Rel10) || defined(Rel14)
,(
PMCH_InfoList_r9_t
*
)
NULL
=======
(
LTE_DRB_ToReleaseList_t
*
)
NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,(
LTE_PMCH_InfoList_r9_t
*
)
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
,
0
,
0
#endif
);
...
...
@@ -1969,8 +1709,7 @@ rrc_ue_process_radioResourceConfigDedicated(
UE_rrc_inst
[
ue_mod_idP
].
num_active_cba_groups
,
//
UE_rrc_inst
[
ue_mod_idP
].
cba_rnti
[
0
]
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -1980,13 +1719,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
...
...
@@ -2075,17 +1807,10 @@ rrc_ue_process_securityModeCommand(
if
(
securityMode
>=
NO_SECURITY_MODE
)
{
LOG_I
(
RRC
,
"rrc_ue_process_securityModeCommand, security mode complete case
\n
"
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
ul_dcch_msg
.
message
.
choice
.
c1
.
present
=
UL_DCCH_MessageType__c1_PR_securityModeComplete
;
}
else
{
LOG_I
(
RRC
,
"rrc_ue_process_securityModeCommand, security mode failure case
\n
"
);
ul_dcch_msg
.
message
.
choice
.
c1
.
present
=
UL_DCCH_MessageType__c1_PR_securityModeFailure
;
=======
ul_dcch_msg
.
message
.
choice
.
c1
.
present
=
LTE_UL_DCCH_MessageType__c1_PR_securityModeComplete
;
}
else
{
LOG_I
(
RRC
,
"rrc_ue_process_securityModeCommand, security mode failure case
\n
"
);
ul_dcch_msg
.
message
.
choice
.
c1
.
present
=
LTE_UL_DCCH_MessageType__c1_PR_securityModeFailure
;
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
}
...
...
@@ -2174,13 +1899,7 @@ rrc_ue_process_securityModeCommand(
{
char
message_string
[
20000
];
size_t
message_string_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "Panos-D: rrc_ue_process_securityModeCommand, Before xer_sprint() \n");
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
))
>
0
)
{
=======
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_LTE_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
))
>
0
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
MessageDef
*
msg_p
;
msg_p
=
itti_alloc_new_message_sized
(
TASK_RRC_UE
,
RRC_UL_DCCH
,
message_string_size
+
sizeof
(
IttiMsgText
));
...
...
@@ -2259,11 +1978,7 @@ rrc_ue_process_ueCapabilityEnquiry(
"UECapabilityEnquiry->criticalExtensions.present (%d) != UECapabilityEnquiry__criticalExtensions_PR_c1 (%d)
\n
"
,
UECapabilityEnquiry
->
criticalExtensions
.
present
,
LTE_UECapabilityEnquiry__criticalExtensions_PR_c1
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
if
(
UECapabilityEnquiry
->
criticalExtensions
.
choice
.
c1
.
present
!=
UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8
)
=======
if
(
UECapabilityEnquiry
->
criticalExtensions
.
choice
.
c1
.
present
!=
LTE_UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8
)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"UECapabilityEnquiry->criticalExtensions.choice.c1.present (%d) != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)
\n
"
,
UECapabilityEnquiry
->
criticalExtensions
.
choice
.
c1
.
present
);
...
...
@@ -2294,13 +2009,7 @@ rrc_ue_process_ueCapabilityEnquiry(
{
char
message_string
[
20000
];
size_t
message_string_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "Panos-D: rrc_ue_process_ueCapabilityEnquiry, Before xer_sprint() \n");
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
))
>
0
)
{
=======
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_LTE_UL_DCCH_Message
,
(
void
*
)
&
ul_dcch_msg
))
>
0
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
MessageDef
*
msg_p
;
msg_p
=
itti_alloc_new_message_sized
(
TASK_RRC_UE
,
RRC_UL_DCCH
,
message_string_size
+
sizeof
(
IttiMsgText
));
...
...
@@ -2386,26 +2095,15 @@ rrc_ue_process_rrcConnectionReconfiguration(
!=
NULL
)
&&
(
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
!=
NULL
))
{
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
if
(
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
->
commTxResources_r12
->
present
!=
SL_CommConfig_r12__commTxResources_r12_PR_NOTHING
){
On_Off_Net
=
UE_STATE_ON_NETWORK
;
LOG_I
(
RRC
,
"sl-CommConfig is present, UE state: %d
\n
"
,
On_Off_Net
);
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig
(
ctxt_pP
->
module_id
,
eNB_index
,
(
SystemInformationBlockType18_r12_t
*
)
NULL
,
(
SystemInformationBlockType19_r12_t
*
)
NULL
,
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
,
(
SL_DiscConfig_r12_t
*
)
NULL
=======
if
(
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
->
commTxResources_r12
->
present
!=
LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING
){
LOG_I
(
RRC
,
"sl-CommConfig is present
\n
"
);
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig
(
ctxt_pP
->
module_id
,
eNB_index
,
(
LTE_SystemInformationBlockType18_r12_t
*
)
NULL
,
(
LTE_SystemInformationBlockType19_r12_t
*
)
NULL
,
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
,
(
LTE_SL_DiscConfig_r12_t
*
)
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
(
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
->
commTxResources_r12
->
present
!=
LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING
){
On_Off_Net
=
UE_STATE_ON_NETWORK
;
LOG_I
(
RRC
,
"sl-CommConfig is present, UE state: %d
\n
"
,
On_Off_Net
);
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig
(
ctxt_pP
->
module_id
,
eNB_index
,
(
LTE_SystemInformationBlockType18_r12_t
*
)
NULL
,
(
LTE_SystemInformationBlockType19_r12_t
*
)
NULL
,
rrcConnectionReconfiguration_r8
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
nonCriticalExtension
->
sl_CommConfig_r12
,
(
LTE_SL_DiscConfig_r12_t
*
)
NULL
);
}
}
...
...
@@ -2530,7 +2228,6 @@ rrc_ue_process_mobilityControlInfo(
}
*/
//Removing SRB1 and SRB2 and DRB0
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
LOG_N
(
RRC
,
"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)
\n
"
,
ctxt_pP
->
module_id
);
rrc_pdcp_config_req
(
ctxt_pP
,
SRB_FLAG_YES
,
CONFIG_ACTION_REMOVE
,
DCCH
,
UNDEF_SECURITY_MODE
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
...
...
@@ -2568,15 +2265,6 @@ rrc_ue_process_mobilityControlInfo(
,
0
#endif
);
=======
LOG_I
(
RRC
,
"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)
\n
"
,
ctxt_pP
->
module_id
);
rrc_pdcp_config_req
(
ctxt_pP
,
SRB_FLAG_YES
,
CONFIG_ACTION_REMOVE
,
DCCH
,
UNDEF_SECURITY_MODE
);
rrc_rlc_config_req
(
ctxt_pP
,
SRB_FLAG_YES
,
MBMS_FLAG_NO
,
CONFIG_ACTION_REMOVE
,
ctxt_pP
->
module_id
+
DCCH
,
Rlc_info_am_config
);
rrc_pdcp_config_req
(
ctxt_pP
,
SRB_FLAG_YES
,
CONFIG_ACTION_REMOVE
,
DCCH1
,
UNDEF_SECURITY_MODE
);
rrc_rlc_config_req
(
ctxt_pP
,
SRB_FLAG_YES
,
CONFIG_ACTION_REMOVE
,
MBMS_FLAG_NO
,
ctxt_pP
->
module_id
+
DCCH1
,
Rlc_info_am_config
);
rrc_pdcp_config_req
(
ctxt_pP
,
SRB_FLAG_NO
,
CONFIG_ACTION_REMOVE
,
DTCH
,
UNDEF_SECURITY_MODE
);
rrc_rlc_config_req
(
ctxt_pP
,
SRB_FLAG_NO
,
CONFIG_ACTION_REMOVE
,
MBMS_FLAG_NO
,
ctxt_pP
->
module_id
+
DTCH
,
Rlc_info_um
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
/*
rrc_pdcp_config_asn1_req(NB_eNB_INST+ue_mod_idP,frameP, 0,eNB_index,
NULL, // SRB_ToAddModList
...
...
@@ -2656,8 +2344,7 @@ rrc_ue_process_mobilityControlInfo(
,
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -2667,13 +2354,6 @@ rrc_ue_process_mobilityControlInfo(
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
...
...
@@ -2759,12 +2439,7 @@ rrc_ue_decode_dcch(
char
message_string
[
30000
];
size_t
message_string_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "Panos-D: rrc_ue_decode_dcch, Before xer_sprint() \n");
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_DL_DCCH_Message
,
(
void
*
)
dl_dcch_msg
))
>
0
)
{
=======
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_LTE_DL_DCCH_Message
,
(
void
*
)
dl_dcch_msg
))
>
0
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
msg_p
=
itti_alloc_new_message_sized
(
TASK_RRC_UE
,
RRC_DL_DCCH
,
message_string_size
+
sizeof
(
IttiMsgText
));
msg_p
->
ittiMsg
.
rrc_dl_dcch
.
size
=
message_string_size
;
memcpy
(
&
msg_p
->
ittiMsg
.
rrc_dl_dcch
.
text
,
message_string
,
message_string_size
);
...
...
@@ -2983,13 +2658,8 @@ rrc_ue_decode_dcch(
if
(
send_ue_information
==
0
)
{
LOG_I
(
RRC
,
"TEST SidelinkUEInformation [UE %d] Received (eNB %d)
\n
"
,
ctxt_pP
->
module_id
,
eNB_indexP
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
SL_DestinationInfoList_r12_t
*
destinationInfoList
=
CALLOC
(
1
,
sizeof
(
SL_DestinationInfoList_r12_t
));
SL_DestinationIdentity_r12_t
*
sl_destination_identity
=
CALLOC
(
1
,
sizeof
(
SL_DestinationIdentity_r12_t
));
=======
LTE_SL_DestinationInfoList_r12_t
*
destinationInfoList
=
CALLOC
(
1
,
sizeof
(
LTE_SL_DestinationInfoList_r12_t
));
LTE_SL_DestinationIdentity_r12_t
*
sl_destination_identity
=
CALLOC
(
1
,
sizeof
(
LTE_SL_DestinationIdentity_r12_t
));
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
sl_destination_identity
->
size
=
3
;
sl_destination_identity
->
buf
=
CALLOC
(
1
,
3
);
sl_destination_identity
->
buf
[
0
]
=
0x00
;
...
...
@@ -3309,12 +2979,7 @@ int decode_BCCH_DLSCH_Message(
char
message_string
[
15000
];
size_t
message_string_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "Panos-D: decode_BCCH_DLSCH_Message, Before xer_sprint() \n");
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
))
>
0
)
{
=======
if
((
message_string_size
=
xer_sprint
(
message_string
,
sizeof
(
message_string
),
&
asn_DEF_LTE_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
))
>
0
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
MessageDef
*
msg_p
;
msg_p
=
itti_alloc_new_message_sized
(
TASK_RRC_UE
,
RRC_DL_BCCH
,
message_string_size
+
sizeof
(
IttiMsgText
));
...
...
@@ -3338,12 +3003,6 @@ int decode_BCCH_DLSCH_Message(
(
void
*
)
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformationBlockType1
,
sizeof
(
LTE_SystemInformationBlockType1_t
)
);
LOG_D
(
RRC
,
"[UE %"
PRIu8
"] Decoding First SIB1
\n
"
,
ctxt_pP
->
module_id
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
//printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
decode_SIB1
(
ctxt_pP
,
eNB_index
,
rsrq
,
rsrp
);
}
}
...
...
@@ -3362,11 +3021,6 @@ int decode_BCCH_DLSCH_Message(
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Decoding SI for frameP %"
PRIu32
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
//printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
decode_SI
(
ctxt_pP
,
eNB_index
);
//if (nfapi_mode == 3)
UE_mac_inst
[
ctxt_pP
->
module_id
].
SI_Decoded
=
1
;
...
...
@@ -3575,8 +3229,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -3589,17 +3242,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
#endif
);
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
#endif
);
LOG_I
(
RRC
,
"Setting SIStatus bit 0 to 1
\n
"
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
=
1
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIB1systemInfoValueTag
=
sib1
->
systemInfoValueTag
;
...
...
@@ -3677,11 +3320,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
//-----------------------------------------------------------------------------
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
void
dump_sib2
(
SystemInformationBlockType2_t
*
sib2
)
=======
void
dump_sib2
(
LTE_SystemInformationBlockType2_t
*
sib2
)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
{
// ac_BarringInfo
if
(
sib2
->
ac_BarringInfo
)
{
...
...
@@ -3925,11 +3564,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
}
//-----------------------------------------------------------------------------
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
void
dump_sib3
(
SystemInformationBlockType3_t
*
sib3
)
=======
void
dump_sib3
(
LTE_SystemInformationBlockType3_t
*
sib3
)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
{
LOG_I
(
RRC
,
"Dumping SIB3 (see TS36.331 V8.21.0)
\n
"
);
...
...
@@ -4076,11 +3711,7 @@ uint64_t arfcn_to_freq(long arfcn) {
exit
(
1
);
}
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
void
dump_sib5
(
SystemInformationBlockType5_t
*
sib5
)
=======
void
dump_sib5
(
LTE_SystemInformationBlockType5_t
*
sib5
)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
{
LTE_InterFreqCarrierFreqList_t
interFreqCarrierFreqList
=
sib5
->
interFreqCarrierFreqList
;
int
i
,
j
;
...
...
@@ -4172,13 +3803,8 @@ uint64_t arfcn_to_freq(long arfcn) {
}
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel10) || defined(Rel14)
void
dump_sib13
(
SystemInformationBlockType13_r9_t
*
sib13
)
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
void
dump_sib13
(
LTE_SystemInformationBlockType13_r9_t
*
sib13
)
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
{
LOG_I
(
RRC
,
"[UE] Dumping SIB13
\n
"
);
LOG_I
(
RRC
,
"[UE] dumping sib13 second time
\n
"
);
...
...
@@ -4190,18 +3816,6 @@ uint64_t arfcn_to_freq(long arfcn) {
//TTN - SIB18
//-----------------------------------------------------------------------------
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
void
dump_sib18
(
SystemInformationBlockType18_r12_t
*
sib18
){
LOG_I
(
RRC
,
"[UE] Dumping SIB18
\n
"
);
for
(
int
i
=
0
;
i
<
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
count
;
i
++
)
{
LOG_I
(
RRC
,
" Contents of SIB18 %d/%d
\n
"
,
i
+
1
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
count
);
LOG_I
(
RRC
,
" SIB18 rxPool_sc_CP_Len: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_CP_Len_r12
);
LOG_I
(
RRC
,
" SIB18 sc_Period_r12: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_Period_r12
);
LOG_I
(
RRC
,
" SIB18 data_CP_Len_r12: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
data_CP_Len_r12
);
LOG_I
(
RRC
,
" SIB18 prb_Num_r12: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_Num_r12
);
LOG_I
(
RRC
,
" SIB18 prb_Start_r12: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_Start_r12
);
LOG_I
(
RRC
,
" SIB18 prb_End_r12: %d
\n
"
,
(
int
)
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_End_r12
);
=======
void
dump_sib18
(
LTE_SystemInformationBlockType18_r12_t
*
sib18
){
LOG_I
(
RRC
,
"[UE] Dumping SIB18
\n
"
);
for
(
int
i
=
0
;
i
<
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
count
;
i
++
)
{
...
...
@@ -4212,45 +3826,12 @@ uint64_t arfcn_to_freq(long arfcn) {
LOG_I
(
RRC
,
" SIB18 prb_Num_r12: %ld
\n
"
,
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_Num_r12
);
LOG_I
(
RRC
,
" SIB18 prb_Start_r12: %ld
\n
"
,
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_Start_r12
);
LOG_I
(
RRC
,
" SIB18 prb_End_r12: %ld
\n
"
,
sib18
->
commConfig_r12
->
commRxPool_r12
.
list
.
array
[
i
]
->
sc_TF_ResourceConfig_r12
.
prb_End_r12
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
//to add more log
}
}
//TTN - SIB19
//-----------------------------------------------------------------------------
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
void
dump_sib19
(
SystemInformationBlockType19_r12_t
*
sib19
){
LOG_I
(
RRC
,
"[UE] Dumping SIB19
\n
"
);
for
(
int
i
=
0
;
i
<
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
count
;
i
++
)
{
LOG_I
(
RRC
,
" Contents of SIB18 %d/%d
\n
"
,
i
+
1
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
count
);
LOG_I
(
RRC
,
" SIB19 cp_Len_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
cp_Len_r12
);
LOG_I
(
RRC
,
" SIB19 discPeriod_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
discPeriod_r12
);
LOG_I
(
RRC
,
" SIB19 numRetx_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
numRetx_r12
);
LOG_I
(
RRC
,
" SIB19 numRepetition_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
numRepetition_r12
);
LOG_I
(
RRC
,
" SIB19 prb_Num_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
tf_ResourceConfig_r12
.
prb_Num_r12
);
LOG_I
(
RRC
,
" SIB19 prb_Start_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
tf_ResourceConfig_r12
.
prb_Start_r12
);
LOG_I
(
RRC
,
" SIB19 prb_End_r12: %d
\n
"
,
(
int
)
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
array
[
i
]
->
tf_ResourceConfig_r12
.
prb_End_r12
);
//to add more log
}
}
void
dump_sib21
(
SystemInformationBlockType21_r14_t
*
sib21
){
if
((
sib21
->
sl_V2X_ConfigCommon_r14
!=
NULL
)
&&
(
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
!=
NULL
)
){
for
(
int
i
=
0
;
i
<
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
count
;
i
++
)
{
LOG_I
(
RRC
,
" Contents of SIB21 %d/%d
\n
"
,
i
+
1
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
count
);
LOG_I
(
RRC
,
" SIB21 sl_Subframe_r14: %d
\n
"
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
array
[
i
]
->
sl_Subframe_r14
.
present
);
LOG_I
(
RRC
,
" SIB21 adjacencyPSCCH_PSSCH_r14: %d
\n
"
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
array
[
i
]
->
adjacencyPSCCH_PSSCH_r14
);
LOG_I
(
RRC
,
" SIB21 sizeSubchannel_r14: %ld
\n
"
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
array
[
i
]
->
sizeSubchannel_r14
);
LOG_I
(
RRC
,
" SIB21 numSubchannel_r14: %ld
\n
"
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
array
[
i
]
->
numSubchannel_r14
);
LOG_I
(
RRC
,
" SIB21 startRB_Subchannel_r14: %ld
\n
"
,
sib21
->
sl_V2X_ConfigCommon_r14
->
v2x_CommRxPool_r14
->
list
.
array
[
i
]
->
startRB_Subchannel_r14
);
//to add more log
}
}
}
=======
void
dump_sib19
(
LTE_SystemInformationBlockType19_r12_t
*
sib19
){
LOG_I
(
RRC
,
"[UE] Dumping SIB19
\n
"
);
for
(
int
i
=
0
;
i
<
sib19
->
discConfig_r12
->
discRxPool_r12
.
list
.
count
;
i
++
)
{
...
...
@@ -4280,61 +3861,36 @@ uint64_t arfcn_to_freq(long arfcn) {
}
}
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
//-----------------------------------------------------------------------------
int
decode_SI
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
eNB_index
)
{
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_D( RRC, "Panos-D: decode_SI 1 \n");
SystemInformation_t
**
si
=
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
si
[
eNB_index
];
=======
LTE_SystemInformation_t
**
si
=
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
si
[
eNB_index
];
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
int
new_sib
=
0
;
LTE_SystemInformationBlockType1_t
*
sib1
=
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib1
[
eNB_index
];
//LOG_D( RRC, "Panos-D: decode_SI 2 \n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI
,
VCD_FUNCTION_IN
);
// Dump contents
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
if
((
*
si
)
->
criticalExtensions
.
present
==
SystemInformation__criticalExtensions_PR_systemInformation_r8
||
(
*
si
)
->
criticalExtensions
.
present
==
SystemInformation__criticalExtensions_PR_criticalExtensionsFuture
)
{
=======
if
((
*
si
)
->
criticalExtensions
.
present
==
LTE_SystemInformation__criticalExtensions_PR_systemInformation_r8
||
#if (LTE_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
(
*
si
)
->
criticalExtensions
.
present
==
LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r15
)
{
#else
(
*
si
)
->
criticalExtensions
.
present
==
LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture
)
{
#endif
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_D
(
RRC
,
"[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d
\n
"
,
(
*
si
)
->
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
.
count
);
}
else
{
//LOG_D( RRC, "Panos-D: decode_SI 2.3 \n");
LOG_D
(
RRC
,
"[UE] Unknown criticalExtension version (not Rel8)
\n
"
);
return
-
1
;
}
LOG_D
(
RRC
,
"Panos-D: decode_SI 3
\n
"
);
for
(
int
i
=
0
;
i
<
(
*
si
)
->
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
.
count
;
i
++
)
{
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I( RRC, "Panos-D: SI count %d\n", i );
struct
SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
typeandinfo
;
typeandinfo
=
(
*
si
)
->
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
.
array
[
i
];
switch
(
typeandinfo
->
present
)
{
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2
:
//LOG_D( RRC, "Panos-D: decode_SI 4 \n");
=======
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
typeandinfo
;
typeandinfo
=
(
*
si
)
->
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
.
array
[
i
];
switch
(
typeandinfo
->
present
)
{
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
2
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
2
;
new_sib
=
1
;
...
...
@@ -4373,8 +3929,7 @@ uint64_t arfcn_to_freq(long arfcn) {
,
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -4384,13 +3939,6 @@ uint64_t arfcn_to_freq(long arfcn) {
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
// After SI is received, prepare RRCConnectionRequest
...
...
@@ -4436,12 +3984,7 @@ uint64_t arfcn_to_freq(long arfcn) {
}
break
;
// case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3
:
//LOG_D( RRC, "Panos-D: decode_SI 5 \n");
=======
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
4
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
4
;
new_sib
=
1
;
...
...
@@ -4466,12 +4009,7 @@ uint64_t arfcn_to_freq(long arfcn) {
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
16
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
16
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib5
[
eNB_index
],
&
typeandinfo
->
choice
.
sib5
,
sizeof
(
SystemInformationBlockType5_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib5
[
eNB_index
],
&
typeandinfo
->
choice
.
sib5
,
sizeof
(
LTE_SystemInformationBlockType5_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB5 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
dump_sib5
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib5
[
eNB_index
]);
}
...
...
@@ -4482,11 +4020,7 @@ uint64_t arfcn_to_freq(long arfcn) {
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
32
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib6
[
eNB_index
],
&
typeandinfo
->
choice
.
sib6
,
sizeof
(
SystemInformationBlockType6_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib6
[
eNB_index
],
&
typeandinfo
->
choice
.
sib6
,
sizeof
(
LTE_SystemInformationBlockType6_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB6 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
}
break
;
...
...
@@ -4513,12 +4047,7 @@ uint64_t arfcn_to_freq(long arfcn) {
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
256
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
256
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib9
[
eNB_index
],
&
typeandinfo
->
choice
.
sib9
,
sizeof
(
SystemInformationBlockType9_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib9
[
eNB_index
],
&
typeandinfo
->
choice
.
sib9
,
sizeof
(
LTE_SystemInformationBlockType9_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB9 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
}
break
;
...
...
@@ -4553,20 +4082,12 @@ uint64_t arfcn_to_freq(long arfcn) {
}
break
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
:
=======
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
4096
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
4096
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib13
[
eNB_index
],
&
typeandinfo
->
choice
.
sib13_v920
,
sizeof
(
SystemInformationBlockType13_r9_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib13
[
eNB_index
],
&
typeandinfo
->
choice
.
sib13_v920
,
sizeof
(
LTE_SystemInformationBlockType13_r9_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB13 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
dump_sib13
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib13
[
eNB_index
]
);
// adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer
...
...
@@ -4596,8 +4117,7 @@ uint64_t arfcn_to_freq(long arfcn) {
,
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -4607,37 +4127,20 @@ uint64_t arfcn_to_freq(long arfcn) {
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
break
;
}
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel10) || defined(Rel14)
//SIB18
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250
:
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//SIB18
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
8192
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
8192
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
],
&
typeandinfo
->
choice
.
sib18_v1250
,
sizeof
(
SystemInformationBlockType18_r12_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
],
&
typeandinfo
->
choice
.
sib18_v1250
,
sizeof
(
LTE_SystemInformationBlockType18_r12_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB18 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
dump_sib18
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
]
);
// adding here function to store necessary parameters to transfer to PHY layer
...
...
@@ -4647,35 +4150,20 @@ uint64_t arfcn_to_freq(long arfcn) {
//process SIB18 to transfer SL-related parameters to PHY
rrc_ue_process_sidelink_radioResourceConfig
(
ctxt_pP
->
module_id
,
eNB_index
,
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib18
[
eNB_index
],
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
(
SystemInformationBlockType19_r12_t
*
)
NULL
,
(
SL_CommConfig_r12_t
*
)
NULL
,
(
SL_DiscConfig_r12_t
*
)
NULL
=======
(
LTE_SystemInformationBlockType19_r12_t
*
)
NULL
,
(
LTE_SL_CommConfig_r12_t
*
)
NULL
,
(
LTE_SL_DiscConfig_r12_t
*
)
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
);
}
break
;
//SIB19
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250
:
=======
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
16384
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
16384
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
],
&
typeandinfo
->
choice
.
sib19_v1250
,
sizeof
(
SystemInformationBlockType19_r12_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
],
&
typeandinfo
->
choice
.
sib19_v1250
,
sizeof
(
LTE_SystemInformationBlockType19_r12_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB19 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
dump_sib19
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
]
);
// adding here function to store necessary parameters to transfer to PHY layer
...
...
@@ -4683,37 +4171,22 @@ uint64_t arfcn_to_freq(long arfcn) {
ctxt_pP
->
frame
,
ctxt_pP
->
module_id
,
eNB_index
,
ctxt_pP
->
module_id
);
//process SIB19 to transfer SL-related parameters to PHY
rrc_ue_process_sidelink_radioResourceConfig
(
ctxt_pP
->
module_id
,
eNB_index
,
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
(
SystemInformationBlockType18_r12_t
*
)
NULL
,
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
],
(
SL_CommConfig_r12_t
*
)
NULL
,
(
SL_DiscConfig_r12_t
*
)
NULL
=======
(
LTE_SystemInformationBlockType18_r12_t
*
)
NULL
,
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib19
[
eNB_index
],
(
LTE_SL_CommConfig_r12_t
*
)
NULL
,
(
LTE_SL_DiscConfig_r12_t
*
)
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
);
}
break
;
//SIB21
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
case
SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430
:
=======
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430
:
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
if
((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
32768
)
==
0
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
|=
32768
;
new_sib
=
1
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib21
[
eNB_index
],
&
typeandinfo
->
choice
.
sib21_v1430
,
sizeof
(
SystemInformationBlockType21_r14_t
)
);
=======
memcpy
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib21
[
eNB_index
],
&
typeandinfo
->
choice
.
sib21_v1430
,
sizeof
(
LTE_SystemInformationBlockType21_r14_t
)
);
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Frame %"
PRIu32
" Found SIB21 from eNB %"
PRIu8
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
dump_sib21
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib21
[
eNB_index
]
);
// adding here function to store necessary parameters to transfer to PHY layer
...
...
@@ -4878,11 +4351,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
LOG_I
(
RRC
,
"[UE %d] Frame %d : Generating Measurement Report for eNB %d
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
eNB_index
);
result
=
pdcp_data_req
(
ctxt_pP
,
SRB_FLAG_YES
,
DCCH
,
rrc_mui
++
,
0
,
size
,
buffer
,
PDCP_TRANSMISSION_MODE_DATA
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
,
NULL
,
NULL
#endif
);
...
...
@@ -5197,8 +4666,7 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
0
,
0
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
...
...
@@ -5208,13 +4676,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
1025
,
// indicates that there is no update in the frame number
11
,
// /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0
,
NULL
,
NULL
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
#endif
);
...
...
@@ -5296,24 +4757,14 @@ void *rrc_ue_task( void *args_p )
break
;
case
RRC_MAC_OUT_OF_SYNC_IND
:
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "In rrc_ue_task() received RRC_MAC_OUT_OF_SYNC_IND message through ITTI, UE RRC state: %d \n", rrc_get_state(ue_mod_id));
LOG_D
(
RRC
,
"[UE %d] Received %s: frameP %d, eNB %d
\n
"
,
ue_mod_id
,
msg_name
,
=======
LOG_D
(
RRC
,
"[UE %d] Received %s: frameP %d, eNB %d
\n
"
,
ue_mod_id
,
ITTI_MSG_NAME
(
msg_p
),
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
RRC_MAC_OUT_OF_SYNC_IND
(
msg_p
).
frame
,
RRC_MAC_OUT_OF_SYNC_IND
(
msg_p
).
enb_index
);
UE_rrc_inst
[
ue_mod_id
].
Info
[
RRC_MAC_OUT_OF_SYNC_IND
(
msg_p
).
enb_index
].
N310_cnt
++
;
break
;
case
RRC_MAC_BCCH_DATA_IND
:
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
//LOG_I(RRC, "In rrc_ue_task() received RRC_MAC_BCCH_DATA_IND message through ITTI, UE RRC state: %d \n", rrc_get_state(ue_mod_id));
LOG_D
(
RRC
,
"[UE %d] Received %s: frameP %d, eNB %d
\n
"
,
ue_mod_id
,
msg_name
,
=======
LOG_D
(
RRC
,
"[UE %d] Received %s: frameP %d, eNB %d
\n
"
,
ue_mod_id
,
ITTI_MSG_NAME
(
msg_p
),
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
RRC_MAC_BCCH_DATA_IND
(
msg_p
).
frame
,
RRC_MAC_BCCH_DATA_IND
(
msg_p
).
enb_index
);
// PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
...
...
@@ -5372,11 +4823,7 @@ void *rrc_ue_task( void *args_p )
/* //TTN (for D2D)
case RRC_MAC_SL_DISCOVERY_DATA_IND:
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
=======
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
//send to ProSeApp
...
...
@@ -5438,11 +4885,7 @@ void *rrc_ue_task( void *args_p )
/* NAS messages */
case
NAS_CELL_SELECTION_REQ
:
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
LOG_I
(
RRC
,
"[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x
\n
"
,
ue_mod_id
,
msg_name
,
rrc_get_state
(
ue_mod_id
),
=======
LOG_D
(
RRC
,
"[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x
\n
"
,
ue_mod_id
,
ITTI_MSG_NAME
(
msg_p
),
rrc_get_state
(
ue_mod_id
),
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
NAS_CELL_SELECTION_REQ
(
msg_p
).
plmnID
.
MCCdigit1
,
NAS_CELL_SELECTION_REQ
(
msg_p
).
plmnID
.
MCCdigit2
,
NAS_CELL_SELECTION_REQ
(
msg_p
).
plmnID
.
MCCdigit3
,
...
...
@@ -5795,27 +5238,15 @@ openair_rrc_top_init_ue(
UE_rrc_inst
[
module_id
].
UECap
=
UECap
;
UE_rrc_inst
[
module_id
].
UECapability
=
UECap
->
sdu
;
UE_rrc_inst
[
module_id
].
UECapability_size
=
UECap
->
sdu_size
;
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#if defined(Rel10) || defined(Rel14)
LOG_I
(
RRC
,
"[UE] eMBMS active state is %d
\n
"
,
eMBMS_active
);
=======
}
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
LOG_I
(
RRC
,
"[UE] eMBMS active state is %d
\n
"
,
eMBMS_active
);
for
(
module_id
=
0
;
module_id
<
NB_UE_INST
;
module_id
++
)
{
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
UE_rrc_inst
[
module_id
].
MBMS_flag
=
(
uint8_t
)
eMBMS_active
;
#endif
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
#ifdef Rel14
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
init_SL_preconfig
(
&
UE_rrc_inst
[
module_id
],
0
);
rrc_mac_config_req_ue
(
module_id
,
...
...
@@ -5857,20 +5288,11 @@ openair_rrc_top_init_ue(
11
,
// /indicates that there isno update in the subframe number
NULL
#endif
#endif
);
#endif
}
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
/* TODO: this is disabled for the moment because the standard UE
* crashes when calling this function.
*/
//init_SL_preconfig(&UE_rrc_inst[module_id],0);
#endif
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
}
else
{
UE_rrc_inst
=
NULL
;
}
...
...
@@ -5886,12 +5308,6 @@ rrc_top_cleanup_ue(
{
if
(
NB_UE_INST
>
0
)
free
(
UE_rrc_inst
);
<<<<<<<
HEAD
:
openair2
/
RRC
/
LITE
/
rrc_UE
.
c
=======
>>>>>>>
main
/
develop
:
openair2
/
RRC
/
LTE
/
rrc_UE
.
c
}
...
...
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