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
5c2cbdd0
Commit
5c2cbdd0
authored
Jul 25, 2017
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
seperation completed for PHY/CODING/:ccoding_byte_NB_IoT.c
crc_byte_NB_IoT.c defs_nb_iot.h
parent
0d383484
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
44 additions
and
33 deletions
+44
-33
openair1/PHY/CODING/ccoding_byte_NB_IoT.c
openair1/PHY/CODING/ccoding_byte_NB_IoT.c
+0
-3
openair1/PHY/CODING/crc_byte_NB_IoT.c
openair1/PHY/CODING/crc_byte_NB_IoT.c
+22
-22
openair1/PHY/CODING/defs_nb_iot.h
openair1/PHY/CODING/defs_nb_iot.h
+20
-6
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
+1
-1
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
+1
-1
No files found.
openair1/PHY/CODING/ccoding_byte_NB_IoT.c
View file @
5c2cbdd0
...
...
@@ -12,13 +12,10 @@
* \warning
*/
#include "defs.h"
#include "defs_nb_iot.h"
unsigned
char
ccodelte_table_NB_IoT
[
128
];
// for transmitter
unsigned
short
glte_NB_IoT
[]
=
{
0133
,
0171
,
0165
};
// {A,B} //renaimed but is exactly the same as the one in the old implementation
//unsigned char ccodelte_table_rev[128]; // for receiver
/*************************************************************************
Encodes for an arbitrary convolutional code of rate 1/3
...
...
openair1/PHY/CODING/crc_byte_NB_IoT.c
View file @
5c2cbdd0
...
...
@@ -34,16 +34,16 @@
//#include "PHY/types.h"
#include "defs.h" // to delete in final code version
//
#include "defs.h" // to delete in final code version
#include "defs_nb_iot.h" //
/*ref 36-212 v8.6.0 , pp 8-9 */
/* the highest degree is set by default */
unsigned
int
poly24a
=
0x864cfb00
;
//1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1
unsigned
int
poly24b
=
0x80006300
;
// 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1
unsigned
int
poly16
=
0x10210000
;
// 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1
unsigned
int
poly12
=
0x80F00000
;
// 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1
unsigned
int
poly8
=
0x9B000000
;
// 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1
unsigned
int
poly24a
_NB_IoT
=
0x864cfb00
;
//1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1
unsigned
int
poly24b
_NB_IoT
=
0x80006300
;
// 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1
unsigned
int
poly16
_NB_IoT
=
0x10210000
;
// 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1
unsigned
int
poly12
_NB_IoT
=
0x80F00000
;
// 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1
unsigned
int
poly8
_NB_IoT
=
0x9B000000
;
// 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1
/*********************************************************
For initialization && verification purposes,
...
...
@@ -78,22 +78,22 @@ crcbit_NB_IoT (unsigned char * inputptr, int octetlen, unsigned int poly)
crc table initialization
*********************************************************/
static
unsigned
int
crc24aTable
[
256
];
static
unsigned
int
crc24bTable
[
256
];
static
unsigned
short
crc16Table
[
256
];
static
unsigned
short
crc12Table
[
256
];
static
unsigned
char
crc8Table
[
256
];
static
unsigned
int
crc24aTable_NB_IoT
[
256
];
static
unsigned
int
crc24bTable_NB_IoT
[
256
];
static
unsigned
short
crc16Table
_NB_IoT
[
256
];
static
unsigned
short
crc12Table
_NB_IoT
[
256
];
static
unsigned
char
crc8Table
_NB_IoT
[
256
];
void
crcTableInit_NB_IoT
(
void
)
{
unsigned
char
c
=
0
;
do
{
crc24aTable
[
c
]
=
crcbit
(
&
c
,
1
,
poly24a
);
crc24bTable
[
c
]
=
crcbit
(
&
c
,
1
,
poly24b
);
crc16Table
[
c
]
=
(
unsigned
short
)
(
crcbit
(
&
c
,
1
,
poly16
)
>>
16
);
crc12Table
[
c
]
=
(
unsigned
short
)
(
crcbit
(
&
c
,
1
,
poly12
)
>>
16
);
crc8Table
[
c
]
=
(
unsigned
char
)
(
crcbit
(
&
c
,
1
,
poly8
)
>>
24
);
crc24aTable
_NB_IoT
[
c
]
=
crcbit_NB_IoT
(
&
c
,
1
,
poly24a_NB_IoT
);
crc24bTable
_NB_IoT
[
c
]
=
crcbit_NB_IoT
(
&
c
,
1
,
poly24b_NB_IoT
);
crc16Table
_NB_IoT
[
c
]
=
(
unsigned
short
)
(
crcbit_NB_IoT
(
&
c
,
1
,
poly16_NB_IoT
)
>>
16
);
crc12Table
_NB_IoT
[
c
]
=
(
unsigned
short
)
(
crcbit_NB_IoT
(
&
c
,
1
,
poly12_NB_IoT
)
>>
16
);
crc8Table
_NB_IoT
[
c
]
=
(
unsigned
char
)
(
crcbit_NB_IoT
(
&
c
,
1
,
poly8_NB_IoT
)
>>
24
);
}
while
(
++
c
);
}
/*********************************************************
...
...
@@ -113,11 +113,11 @@ crc24a_NB_IoT (unsigned char * inptr, int bitlen)
while
(
octetlen
--
>
0
)
{
// printf("in %x => crc %x\n",crc,*inptr);
crc
=
(
crc
<<
8
)
^
crc24aTable
[(
*
inptr
++
)
^
(
crc
>>
24
)];
crc
=
(
crc
<<
8
)
^
crc24aTable
_NB_IoT
[(
*
inptr
++
)
^
(
crc
>>
24
)];
}
if
(
resbit
>
0
)
crc
=
(
crc
<<
resbit
)
^
crc24aTable
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))];
crc
=
(
crc
<<
resbit
)
^
crc24aTable
_NB_IoT
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))];
return
crc
;
}
...
...
@@ -131,11 +131,11 @@ unsigned int crc24b_NB_IoT (unsigned char * inptr, int bitlen)
resbit
=
(
bitlen
%
8
);
while
(
octetlen
--
>
0
)
{
crc
=
(
crc
<<
8
)
^
crc24bTable
[(
*
inptr
++
)
^
(
crc
>>
24
)];
crc
=
(
crc
<<
8
)
^
crc24bTable
_NB_IoT
[(
*
inptr
++
)
^
(
crc
>>
24
)];
}
if
(
resbit
>
0
)
crc
=
(
crc
<<
resbit
)
^
crc24bTable
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))];
crc
=
(
crc
<<
resbit
)
^
crc24bTable
_NB_IoT
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))];
return
crc
;
}
...
...
@@ -150,11 +150,11 @@ crc16_NB_IoT (unsigned char * inptr, int bitlen)
while
(
octetlen
--
>
0
)
{
crc
=
(
crc
<<
8
)
^
(
crc16Table
[(
*
inptr
++
)
^
(
crc
>>
24
)]
<<
16
);
crc
=
(
crc
<<
8
)
^
(
crc16Table
_NB_IoT
[(
*
inptr
++
)
^
(
crc
>>
24
)]
<<
16
);
}
if
(
resbit
>
0
)
crc
=
(
crc
<<
resbit
)
^
(
crc16Table
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))]
<<
16
);
crc
=
(
crc
<<
resbit
)
^
(
crc16Table
_NB_IoT
[((
*
inptr
)
>>
(
8
-
resbit
))
^
(
crc
>>
(
32
-
resbit
))]
<<
16
);
return
crc
;
}
...
...
openair1/PHY/CODING/defs_nb_iot.h
View file @
5c2cbdd0
...
...
@@ -29,8 +29,22 @@
#define OPENAIR1_PHY_CODING_DEFS_NB_IOT_H_
#include <stdint.h>
//#include "PHY/defs.h"
#ifndef NO_OPENAIR1
#include "PHY/defs_nb_iot.h"
#else
#include "PHY/TOOLS/time_meas.h"
#endif
#define CRC24_A_NB_IoT 0
#define CRC24_B_NB_IoT 1
#define CRC16_NB_IoT 2
#define CRC8_NB_IoT 3
//#define MAX_TURBO_ITERATIONS_MBSFN 8 // no MBSFN
#define MAX_TURBO_ITERATIONS_NB_IoT 4
#define LTE_NULL_NB_IoT 2
/** \fn uint32_t sub_block_interleaving_cc(uint32_t D, uint8_t *d,uint8_t *w)
\brief This is the subblock interleaving algorithm for convolutionally coded blocks from 36-212 (Release 13.4, 2017).
...
...
@@ -51,9 +65,9 @@ uint32_t sub_block_interleaving_cc_NB_IoT(uint32_t D, uint8_t *d,uint8_t *w);
\returns \f$E\f$, the number of coded bits per segment */
uint32_t
lte_rate_matching_cc_NB_IoT
(
uint32_t
RCC
,
// RRC = 2
uint16_t
E
,
// E = 1600
uint8_t
*
w
,
// length
uint8_t
*
e
);
// length 1600
uint16_t
E
,
// E = 1600
uint8_t
*
w
,
// length
uint8_t
*
e
);
// length 1600
/** \fn void ccodelte_encode(int32_t numbits,uint8_t add_crc, uint8_t *inPtr,uint8_t *outPtr,uint16_t rnti)
\brief This function implements the LTE convolutional code of rate 1/3
...
...
@@ -106,8 +120,8 @@ uint32_t crc16_NB_IoT (uint8_t *inPtr, int32_t bitlen);
uint32_t
crcbit_NB_IoT
(
uint8_t
*
,
int32_t
,
uint32_t
);
int32_t
,
uint32_t
);
/** \fn void sub_block_deinterleaving_turbo(uint32_t D, int16_t *d,int16_t *w)
\brief This is the subblock deinterleaving algorithm from 36-212 (Release 8, 8.6 2009-03), pages 15-16.
...
...
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
View file @
5c2cbdd0
#include "../SCHED/IF_Module_L1_primitives_nb_iot.h"
#include "../SCHED/defs.h"
#include "../SCHED/defs_nb_iot.h"
#include "
common/utils/itti/
assertions.h"
#include "assertions.h"
#include "PHY/defs.h"
#include "PHY/defs_nb_iot.h"
//#include "PHY/extern.h"
...
...
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
View file @
5c2cbdd0
...
...
@@ -946,7 +946,7 @@ void phy_procedures_eNB_TX_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
int8_t
UE_id
=
0
;
int
**
txdataF
=
eNB
->
common_vars
.
txdataF
[
0
];
uint32_t
sib1_startFrame
=
-
1
;
NB_IoT_eNB_NPDCCH_t
*
npdcch
;
//
NB_IoT_eNB_NPDCCH_t*npdcch;
...
...
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