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
ZhouShuya
OpenXG-RAN
Commits
99df8881
Commit
99df8881
authored
Jun 19, 2018
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
procedures for msg4
parent
72f01769
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
265 additions
and
41 deletions
+265
-41
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
+14
-0
openair1/PHY/LTE_TRANSPORT/dlsch_coding_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/dlsch_coding_NB_IoT.c
+51
-17
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling_NB_IoT.c
+1
-1
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+1
-1
openair1/PHY/defs_common.h
openair1/PHY/defs_common.h
+13
-0
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+185
-22
No files found.
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
View file @
99df8881
...
...
@@ -189,6 +189,20 @@ typedef struct {
/// Sub-block interleaver outputs
uint8_t
w
[
3
*
3
*
(
56
+
24
)];
// new parameter
/////////////////////////////////
uint16_t
si_rnti_x
;
/// Concatenated "e"-sequences (for definition see 36-212 V8.6 2009-03, p.17-18)
uint8_t
e_x
[
236
];
/// data after scrambling
uint8_t
s_e_x
[
236
];
//length of the table e
uint16_t
length_e_x
;
// new parameter
/// Tail-biting convolutional coding outputs
uint8_t
d_x
[
96
+
(
3
*
(
24
+
120
))];
// new parameter
/// Sub-block interleaver outputs
uint8_t
w_x
[
3
*
3
*
(
120
+
24
)];
// new parameter
////////////////////////////////
/// Status Flag indicating for this DLSCH (idle,active,disabled)
//SCH_status_t status;
/// Transport block size
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_coding_NB_IoT.c
View file @
99df8881
...
...
@@ -162,8 +162,13 @@ int dlsch_encoding_rar_NB_IoT(unsigned char *a,
uint8_t
npbch_a_crc
[
10
];
bzero
(
npbch_a
,
7
);
bzero
(
npbch_a_crc
,
10
);
uint8_t
npbch_a_x
[
15
];
uint8_t
npbch_a_crc_x
[
18
];
bzero
(
npbch_a_x
,
15
);
bzero
(
npbch_a_crc_x
,
18
);
A
=
56
;
dlsch
->
length_e
=
G
;
// G*Nsf (number_of_subframes) = total number of bits to transmit G=236
...
...
@@ -171,36 +176,65 @@ int dlsch_encoding_rar_NB_IoT(unsigned char *a,
if
(
option
==
1
)
{
A
=
56
;
for
(
int
i
=
0
;
i
<
7
;
i
++
)
{
npbch_a
[
i
]
=
a
[
i
];
}
}
else
{
for
(
int
i
=
0
;
i
<
6
;
i
++
)
A
=
120
;
for
(
int
i
=
0
;
i
<
15
;
i
++
)
{
npbch_a
[
i
]
=
a
[
i
];
npbch_a
_x
[
i
]
=
a
[
i
];
}
}
crc
=
crc24a_NB_IoT
(
npbch_a
,
A
)
>>
8
;
if
(
option
==
1
)
{
crc
=
crc24a_NB_IoT
(
npbch_a
,
A
)
>>
8
;
for
(
int
j
=
0
;
j
<
7
;
j
++
)
{
npbch_a_crc
[
j
]
=
npbch_a
[
j
];
for
(
int
j
=
0
;
j
<
7
;
j
++
)
{
npbch_a_crc
[
j
]
=
npbch_a
[
j
];
}
npbch_a_crc
[
7
]
=
((
uint8_t
*
)
&
crc
)[
2
];
npbch_a_crc
[
8
]
=
((
uint8_t
*
)
&
crc
)[
1
];
npbch_a_crc
[
9
]
=
((
uint8_t
*
)
&
crc
)[
0
];
dlsch
->
B
=
numbits
;
// The length of table b in bits
//memcpy(dlsch->b,a,numbits/8); // comment if option 2
memset
(
dlsch
->
d
,
LTE_NULL_NB_IoT
,
96
);
ccode_encode_npdsch_NB_IoT
(
numbits
,
npbch_a_crc
,
dlsch
->
d
+
96
,
crc
);
RCC
=
sub_block_interleaving_cc_NB_IoT
(
numbits
,
dlsch
->
d
+
96
,
dlsch
->
w
);
// step 2 interleaving
lte_rate_matching_cc_NB_IoT
(
RCC
,
dlsch
->
length_e
,
dlsch
->
w
,
dlsch
->
e
);
// step 3 Rate Matching
}
else
{
crc
=
crc24a_NB_IoT
(
npbch_a_x
,
A
)
>>
8
;
for
(
int
j
=
0
;
j
<
7
;
j
++
)
{
npbch_a_crc_x
[
j
]
=
npbch_a_x
[
j
];
}
npbch_a_crc_x
[
7
]
=
((
uint8_t
*
)
&
crc
)[
2
];
npbch_a_crc_x
[
8
]
=
((
uint8_t
*
)
&
crc
)[
1
];
npbch_a_crc_x
[
9
]
=
((
uint8_t
*
)
&
crc
)[
0
];
dlsch
->
B
=
numbits
;
// The length of table b in bits
//memcpy(dlsch->b,a,numbits/8); // comment if option 2
memset
(
dlsch
->
d_x
,
LTE_NULL_NB_IoT
,
96
);
ccode_encode_npdsch_NB_IoT
(
numbits
,
npbch_a_crc_x
,
dlsch
->
d_x
+
96
,
crc
);
RCC
=
sub_block_interleaving_cc_NB_IoT
(
numbits
,
dlsch
->
d_x
+
96
,
dlsch
->
w_x
);
// step 2 interleaving
lte_rate_matching_cc_NB_IoT
(
RCC
,
dlsch
->
length_e_x
,
dlsch
->
w_x
,
dlsch
->
e_x
);
// step 3 Rate Matching
}
npbch_a_crc
[
7
]
=
((
uint8_t
*
)
&
crc
)[
2
];
npbch_a_crc
[
8
]
=
((
uint8_t
*
)
&
crc
)[
1
];
npbch_a_crc
[
9
]
=
((
uint8_t
*
)
&
crc
)[
0
];
dlsch
->
B
=
numbits
;
// The length of table b in bits
//memcpy(dlsch->b,a,numbits/8); // comment if option 2
memset
(
dlsch
->
d
,
LTE_NULL_NB_IoT
,
96
);
ccode_encode_npdsch_NB_IoT
(
numbits
,
npbch_a_crc
,
dlsch
->
d
+
96
,
crc
);
RCC
=
sub_block_interleaving_cc_NB_IoT
(
numbits
,
dlsch
->
d
+
96
,
dlsch
->
w
);
// step 2 interleaving
lte_rate_matching_cc_NB_IoT
(
RCC
,
dlsch
->
length_e
,
dlsch
->
w
,
dlsch
->
e
);
// step 3 Rate Matching
return
(
0
);
}
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling_NB_IoT.c
View file @
99df8881
...
...
@@ -81,7 +81,7 @@ void dlsch_sib_scrambling_rar_NB_IoT(LTE_DL_FRAME_PARMS *frame_parms,
int
tot_bits
,
// total number of bits to transmit
uint16_t
Nf
,
// Nf is the frame number (0..9)
uint8_t
Ns
,
uint
16
_t
rnti
)
uint
32
_t
rnti
)
{
int
i
,
j
,
k
=
0
;
uint32_t
x1
,
x2
,
s
=
0
;
...
...
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
View file @
99df8881
...
...
@@ -124,7 +124,7 @@ void dlsch_sib_scrambling_rar_NB_IoT(LTE_DL_FRAME_PARMS *frame_parms,
int
tot_bits
,
// total number of bits to transmit
uint16_t
Nf
,
// Nf is the frame number (0..9)
uint8_t
Ns
,
uint
16
_t
rnti
);
uint
32
_t
rnti
);
/*
int scrambling_npbch_REs_rel_14(LTE_DL_FRAME_PARMS *frame_parms,
int32_t **txdataF,
...
...
openair1/PHY/defs_common.h
View file @
99df8881
...
...
@@ -78,9 +78,11 @@ typedef struct {
uint8_t
rar_to_transmit
;
uint8_t
subframe_SP
;
uint8_t
subframe_SP2
;
int
next_frame_tx
;
int
next_subframe_tx
;
uint8_t
SP
;
uint8_t
SP2
;
uint8_t
there_is_sib23
;
int
next_frame_tx_DCI
;
int
next_subframe_tx_DCI
;
...
...
@@ -92,6 +94,17 @@ typedef struct {
uint8_t
counter_msg3
;
uint32_t
frame_msg3
;
uint8_t
flag_DCI_msg4
;
uint8_t
flag_msg4
;
uint8_t
counter_DCI_msg4
;
uint8_t
counter_msg4
;
uint32_t
frame_DCI_msg4
;
uint32_t
frame_msg4
;
uint32_t
subframe_DCI_msg4
;
uint32_t
subframe_msg4
;
uint8_t
guard
;
uint8_t
remaining_dci
;
uint8_t
remaining_rar
;
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
99df8881
This diff is collapsed.
Click to expand it.
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