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
zzha zzha
OpenXG-RAN
Commits
afb5e36c
Commit
afb5e36c
authored
Jun 07, 2016
by
Anta Huang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* update the mapping of qci to DRB
parent
fea2d300
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
81 additions
and
45 deletions
+81
-45
openair2/RRC/LITE/L2_interface.c
openair2/RRC/LITE/L2_interface.c
+2
-2
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+72
-39
openair2/RRC/LITE/rrc_eNB_S1AP.c
openair2/RRC/LITE/rrc_eNB_S1AP.c
+1
-1
openair3/S1AP/s1ap_eNB_decoder.c
openair3/S1AP/s1ap_eNB_decoder.c
+2
-1
openair3/S1AP/s1ap_eNB_handlers.c
openair3/S1AP/s1ap_eNB_handlers.c
+4
-2
No files found.
openair2/RRC/LITE/L2_interface.c
View file @
afb5e36c
...
...
@@ -598,13 +598,13 @@ rrc_data_ind(
if
(
ctxt_pP
->
enb_flag
==
ENB_FLAG_NO
)
{
LOG_N
(
RRC
,
"[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB %d
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
DCCH_index
,
Srb_id
-
1
,
sdu_sizeP
,
ctxt_pP
->
eNB_index
);
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
DCCH_index
,
Srb_id
,
sdu_sizeP
,
ctxt_pP
->
eNB_index
);
}
else
{
LOG_N
(
RRC
,
"[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
DCCH_index
,
Srb_id
-
1
,
Srb_id
,
sdu_sizeP
,
ctxt_pP
->
rnti
);
}
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
afb5e36c
...
...
@@ -1128,6 +1128,8 @@ rrc_eNB_generate_RRCConnectionRelease(
PDCP_TRANSMISSION_MODE_CONTROL
);
}
uint8_t
qci_to_priority
[
9
]
=
{
2
,
4
,
3
,
5
,
1
,
6
,
7
,
8
,
9
};
// TBD: this directive can be remived if we create a similar e_rab_param_t structure in RRC context
#if defined(ENABLE_ITTI)
//-----------------------------------------------------------------------------
...
...
@@ -1158,9 +1160,11 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
struct
RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList
*
dedicatedInfoNASList
=
NULL
;
DedicatedInfoNAS_t
*
dedicatedInfoNas
=
NULL
;
/* for no gcc warnings */
(
void
)
dedicatedInfoNas
;
long
*
logicalchannelgroup
,
*
logicalchannelgroup_drb
;
int
drb_identity_index
=
0
;
//, nas_sequence_flag = 0;
long
*
logicalchannelgroup_drb
;
int
drb_identity_index
=
0
;
uint8_t
xid
=
rrc_eNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
//Transaction_id,
DRB_configList2
=&
ue_context_pP
->
ue_context
.
DRB_configList2
[
xid
];
...
...
@@ -1169,6 +1173,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
}
//*DRB_configList = CALLOC(1, sizeof(*DRB_configList));
*
DRB_configList2
=
CALLOC
(
1
,
sizeof
(
**
DRB_configList2
));
/* Initialize NAS list */
dedicatedInfoNASList
=
CALLOC
(
1
,
sizeof
(
struct
RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList
));
int
e_rab_done
=
0
;
...
...
@@ -1187,7 +1192,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
DRB_config
->
eps_BearerIdentity
=
CALLOC
(
1
,
sizeof
(
long
));
// allowed value 5..15, value : x+4
*
(
DRB_config
->
eps_BearerIdentity
)
=
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
e_rab_id
+
4
;
*
(
DRB_config
->
eps_BearerIdentity
)
=
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
e_rab_id
;
//+ 4; // especial case generation
DRB_config
->
drb_Identity
=
1
+
drb_identity_index
+
e_rab_done
;
// + i ;// (DRB_Identity_t) ue_context_pP->ue_context.e_rab[i].param.e_rab_id;
// 1 + drb_identiy_index;
...
...
@@ -1205,12 +1210,18 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
DRB_pdcp_config
->
rlc_AM
=
NULL
;
DRB_pdcp_config
->
rlc_UM
=
NULL
;
switch
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
qos
.
qci
){
case
1
:
// RLC _UM
case
2
:
case
3
:
case
4
:
case
5
:
/*
* type: realtime data with medium packer error rate
* action: swtich to RLC UM
*/
case
1
:
// 100ms, 10^-2, p2, GBR
case
2
:
// 150ms, 10^-3, p4, GBR
case
3
:
// 50ms, 10^-3, p3, GBR
case
7
:
// 100ms, 10^-3, p7, GBR
case
65
:
// 75ms, 10^-2, p0.7, mission critical voice, GBR
case
66
:
// 100ms, 10^-2, p2, non-mission critical voice , GBR
// RLC
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
;
...
...
@@ -1221,11 +1232,18 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
DRB_pdcp_config
->
rlc_UM
=
PDCP_rlc_UM
;
PDCP_rlc_UM
->
pdcp_SN_Size
=
PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits
;
break
;
case
6
:
case
7
:
case
8
:
case
9
:
default:
/*
* type: non-realtime data with low packer error rate
* action: swtich to RLC AM
*/
case
4
:
// 300ms, 10^-6, p5
case
5
:
// 100ms, 10^-6, p1 , IMS signaling
case
6
:
// 300ms, 10^-6, p6
case
8
:
// 300ms, 10^-6, p8
case
9
:
// 300ms, 10^-6, p9
case
69
:
// 60ms, 10^-6, p0.5, mission critical delay sensitive data, Lowest Priority
case
70
:
// 200ms, 10^-6, p5.5, mision critical data
// RLC
DRB_rlc_config
->
present
=
RLC_Config_PR_am
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC
.
t_PollRetransmit
=
T_PollRetransmit_ms50
;
...
...
@@ -1240,8 +1258,12 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
DRB_pdcp_config
->
rlc_AM
=
PDCP_rlc_AM
;
PDCP_rlc_AM
->
statusReportRequired
=
FALSE
;
//LOG_I(RRC,"not supported qci %d\n", ue_context_pP->ue_context.e_rab[i].param.qos.qci);
break
;
default
:
LOG_E
(
RRC
,
"not supported qci %d
\n
"
,
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
qos
.
qci
);
ue_context_pP
->
ue_context
.
e_rab
[
i
].
status
=
E_RAB_STATUS_FAILED
;
ue_context_pP
->
ue_context
.
e_rab
[
i
].
xid
=
xid
;
continue
;
}
DRB_pdcp_config
->
headerCompression
.
present
=
PDCP_Config__headerCompression_PR_notUsed
;
...
...
@@ -1251,10 +1273,14 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
DRB_ul_SpecificParameters
=
CALLOC
(
1
,
sizeof
(
*
DRB_ul_SpecificParameters
));
DRB_lchan_config
->
ul_SpecificParameters
=
DRB_ul_SpecificParameters
;
DRB_ul_SpecificParameters
->
priority
=
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
qos
.
allocation_retention_priority
.
priority_level
;
// TO DO
DRB_ul_SpecificParameters
->
prioritisedBitRate
=
LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
qos
.
qci
<
10
)
DRB_ul_SpecificParameters
->
priority
=
qci_to_priority
[
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
qos
.
qci
-
1
]
+
3
;
// ue_context_pP->ue_context.e_rab[i].param.qos.allocation_retention_priority.priority_level;
else
DRB_ul_SpecificParameters
->
priority
=
4
;
DRB_ul_SpecificParameters
->
prioritisedBitRate
=
LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8
;
//LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
DRB_ul_SpecificParameters
->
bucketSizeDuration
=
LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50
;
...
...
@@ -1275,7 +1301,10 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
*
DRB_ul_SpecificParameters
->
logicalChannelGroup
);
//if (nas_sequence_flag == 0)
e_rab_done
++
;
ue_context_pP
->
ue_context
.
e_rab
[
i
].
status
=
E_RAB_STATUS_DONE
;
ue_context_pP
->
ue_context
.
e_rab
[
i
].
xid
=
xid
;
{
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
dedicatedInfoNas
=
CALLOC
(
1
,
sizeof
(
DedicatedInfoNAS_t
));
...
...
@@ -1284,7 +1313,10 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
(
char
*
)
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
,
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
length
);
ASN_SEQUENCE_ADD
(
&
dedicatedInfoNASList
->
list
,
dedicatedInfoNas
);
// nas_sequence_flag = 1;
LOG_I
(
RRC
,
"add NAS info with size %d (rab id %d)
\n
"
,
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
length
,
i
);
}
else
{
LOG_W
(
RRC
,
"Not received activate dedicated EPS bearer context request
\n
"
);
}
/* TODO parameters yet to process ... */
{
...
...
@@ -1292,19 +1324,19 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
// ue_context_pP->ue_context.e_rab[i].param.sgw_addr;
// ue_context_pP->ue_context.e_rab[i].param.gtp_teid;
}
}
}
/* If list is empty free the list and reset the address */
if
(
dedicatedInfoNASList
!=
NULL
)
{
if
(
dedicatedInfoNASList
->
list
.
count
==
0
)
{
free
(
dedicatedInfoNASList
);
dedicatedInfoNASList
=
NULL
;
LOG_W
(
RRC
,
"dedlicated NAS list is empty, free the list and reset the address
\n
"
);
}
}
}
e_rab_done
++
;
ue_context_pP
->
ue_context
.
e_rab
[
i
].
status
=
E_RAB_STATUS_DONE
;
ue_context_pP
->
ue_context
.
e_rab
[
i
].
xid
=
xid
;
}
else
{
LOG_W
(
RRC
,
"dedlicated NAS list is empty
\n
"
);
}
memset
(
buffer
,
0
,
RRC_BUF_SIZE
);
...
...
@@ -1324,6 +1356,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
#endif
);
#ifdef RRC_MSG_PRINT
LOG_F
(
RRC
,
"[MSG] RRC Connection Reconfiguration
\n
"
);
for
(
i
=
0
;
i
<
size
;
i
++
)
{
...
...
@@ -1346,7 +1379,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
#endif
LOG_I
(
RRC
,
"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration (bytes %d, UE
id
%x)
\n
"
,
"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration (bytes %d, UE
RNTI
%x)
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
size
,
ue_context_pP
->
ue_context
.
rnti
);
LOG_D
(
RRC
,
...
...
@@ -1496,7 +1529,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
SRB2_ul_SpecificParameters
=
CALLOC
(
1
,
sizeof
(
*
SRB2_ul_SpecificParameters
));
SRB2_ul_SpecificParameters
->
priority
=
1
;
SRB2_ul_SpecificParameters
->
priority
=
3
;
// let some priority for SRB1 and dedicated DRBs
SRB2_ul_SpecificParameters
->
prioritisedBitRate
=
LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
SRB2_ul_SpecificParameters
->
bucketSizeDuration
=
...
...
@@ -1591,9 +1624,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
DRB_ul_SpecificParameters
=
CALLOC
(
1
,
sizeof
(
*
DRB_ul_SpecificParameters
));
DRB_lchan_config
->
ul_SpecificParameters
=
DRB_ul_SpecificParameters
;
DRB_ul_SpecificParameters
->
priority
=
2
;
// lower priority than srb1, srb2
DRB_ul_SpecificParameters
->
prioritisedBitRate
=
LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
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
;
...
...
openair2/RRC/LITE/rrc_eNB_S1AP.c
View file @
afb5e36c
...
...
@@ -28,7 +28,7 @@
*******************************************************************************/
/*! \file rrc_eNB_S1AP.c
* \brief rrc S1AP procedures for eNB
* \author
Laurent Winckel, Sebastien ROUX, Navid Nikaein
and Lionel GAUTHIER
* \author
Navid Nikaein, Laurent Winckel, Sebastien ROUX,
and Lionel GAUTHIER
* \date 2013-2016
* \version 1.0
* \company Eurecom
...
...
openair3/S1AP/s1ap_eNB_decoder.c
View file @
afb5e36c
...
...
@@ -142,6 +142,7 @@ static int s1ap_eNB_decode_initiating_message(s1ap_message *message,
//s1ap_xer_print_s1ap_e_rabsetuprequest(s1ap_xer__print2sp, message_string, message);
S1AP_INFO
(
"TODO E_RABRelease nitiating message
\n
"
);
free
(
message_string
);
break
;
default:
S1AP_ERROR
(
"Unknown procedure ID (%d) for initiating message
\n
"
,
...
...
openair3/S1AP/s1ap_eNB_handlers.c
View file @
afb5e36c
...
...
@@ -771,6 +771,7 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id,
memcpy
(
S1AP_INITIAL_CONTEXT_SETUP_REQ
(
message_p
).
e_rab_param
[
i
].
nas_pdu
.
buffer
,
item_p
->
nAS_PDU
->
buf
,
item_p
->
nAS_PDU
->
size
);
S1AP_DEBUG
(
"Received NAS message with the E_RAB setup procedure
\n
"
);
}
else
{
S1AP_INITIAL_CONTEXT_SETUP_REQ
(
message_p
).
e_rab_param
[
i
].
nas_pdu
.
length
=
0
;
S1AP_INITIAL_CONTEXT_SETUP_REQ
(
message_p
).
e_rab_param
[
i
].
nas_pdu
.
buffer
=
NULL
;
...
...
@@ -951,6 +952,7 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id,
memcpy
(
S1AP_E_RAB_SETUP_REQ
(
message_p
).
e_rab_setup_params
[
i
].
nas_pdu
.
buffer
,
item_p
->
nAS_PDU
.
buf
,
item_p
->
nAS_PDU
.
size
);
// S1AP_INFO("received a NAS PDU with size %d (%02x.%02x)\n",S1AP_E_RAB_SETUP_REQ(message_p).e_rab_setup_params[i].nas_pdu.length, item_p->nAS_PDU.buf[0], item_p->nAS_PDU.buf[1]);
}
else
{
S1AP_E_RAB_SETUP_REQ
(
message_p
).
e_rab_setup_params
[
i
].
nas_pdu
.
length
=
0
;
S1AP_E_RAB_SETUP_REQ
(
message_p
).
e_rab_setup_params
[
i
].
nas_pdu
.
buffer
=
NULL
;
...
...
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