Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
OAI-RAN-5G-sheduler_MaxTBS
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MAQ5G-PFC
OAI-RAN-5G-sheduler_MaxTBS
Commits
d5d1dd0e
Commit
d5d1dd0e
authored
8 years ago
by
Sandeep Kumar
Browse files
Options
Downloads
Patches
Plain Diff
fixed packet struct types
parent
f101c663
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+66
-55
66 additions, 55 deletions
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.h
+20
-21
20 additions, 21 deletions
openair1/PHY/LTE_TRANSPORT/if4_tools.h
with
86 additions
and
76 deletions
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+
66
−
55
View file @
d5d1dd0e
...
...
@@ -38,40 +38,44 @@
* \warning
*/
#ifndef USER_MODE
#include
"if4_tools.h"
#include
<stdint.h>
#else
#include
"PHY/LTE_TRANSPORT/if4_tools.h"
#endif
// Define how data blocks are stored and transferred
void
send_IF4
(
PHY_VARS_eNB
*
eNB
,
int
subframe
){
eNB_proc_t
*
proc
=
&
eNB
->
proc
;
//void send_IF4(PHY_VARS_eNB *eNB, int subframe){
//eNB_proc_t *proc = &eNB->proc;
//int frame=proc->frame_tx;
//int subframe=proc->subframe_tx;
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
//
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
uint32_t
i
,
j
;
float
*
data_block
=
malloc
(
length
*
sizeof
(
long
));
//
uint32_t i,j;
//
float *data_block = malloc(length*sizeof(long));
// Generate IF4 packet (for now DL) with frame status information
dl_packet
=
gen_IF4_dl_packet
(
/* ADD INFO and data_block pointer */
);
//
dl_packet = gen_IF4_dl_packet( /* ADD INFO and data_block pointer */ );
for
(
i
=
0
;
i
<
fp
->
symbols_per_tti
;
i
++
)
{
//
for(i=0; i<fp->symbols_per_tti; i++) {
// Do compression of the two parts and generate data blocks
symbol
=
eNB
->
common_vars
.
txdataF
[
0
][
0
/*antenna number*/
][
subframe
*
fp
->
ofdm_symbol_size
*
(
fp
->
symbols_per_tti
)]
data_block
[
j
]
=
Atan
(
symbol
[
fp
->
ofmd_symbol_size
-
NrOfNonZeroValues
+
j
-
1
])
<<
16
+
Atan
(
symbol
[
fp
->
ofmd_symbol_size
-
NrOfNonZeroValues
+
j
]);
data_block
[
j
+
NrOfNonZeroValues
]
=
Atan
(
subframe
[
i
][
j
+
1
])
<<
16
+
Atan
(
subframe
[
i
][
j
+
2
]);
//
symbol = eNB->common_vars.txdataF[0][0 /*antenna number*/][subframe*fp->ofdm_symbol_size*(fp->symbols_per_tti)]
//
data_block[j] = Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j -1])<<16 + Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j]);
//
data_block[j+NrOfNonZeroValues] = Atan(subframe[i][j+1])<<16 + Atan(subframe[i][j+2]);
// Set data blocks and update subframe no./other information to generated packet
// Write the packet(s) to the fronthaul
}
//
}
}
//
}
void
recv_IF4
(
/* ADD INFO and data_block pointer */
)
{
...
...
@@ -83,83 +87,83 @@ void recv_IF4( /* ADD INFO and data_block pointer */ ) {
}
IF4_dl_packet
gen_IF4_dl_packet
(
/* ADD INFO and data_block pointer */
)
{
IF4_dl_packet
dl_packet
;
struct
IF4_dl_packet
gen_IF4_dl_packet
(
/* ADD INFO and data_block pointer */
)
{
struct
IF4_dl_packet
dl_packet
;
// Set destination and source address
// Set Type and Sub-Type
dl_packet
.
type
=
;
//
08
_
0A
?
dl_packet
.
type
=
0x
080A
;
dl_packet
.
sub_type
=
0x0020
;
// Leave reserved as it is
//dl_packet.rsvd = ;
// Set frame status
dl_packet
.
frame_status
.
ant_num
=
;
dl_packet
.
frame_status
.
ant_start
=
;
dl_packet
.
frame_status
.
rf_num
=
;
dl_packet
.
frame_status
.
sf_num
=
;
dl_packet
.
frame_status
.
sym_num
=
;
dl_packet
.
frame_status
.
ant_num
=
0
;
dl_packet
.
frame_status
.
ant_start
=
0
;
dl_packet
.
frame_status
.
rf_num
=
0
;
dl_packet
.
frame_status
.
sf_num
=
0
;
dl_packet
.
frame_status
.
sym_num
=
0
;
//dl_packet.frame_status.rsvd = ;
// Set data blocks if sent
if
(
data_block
!=
NULL
)
{
}
else
{
}
//
if (data_block != NULL) {
//
//
} else {
//
//
}
// Set frame check sequence
dl_packet
.
fcs
=
;
dl_packet
.
fcs
=
0
;
return
dl_packet
;
}
IF4_ul_packet
gen_IF4_ul_packet
(
/* ADD INFO and data_block pointer */
)
{
IF4_ul_packet
ul_packet
;
struct
IF4_ul_packet
gen_IF4_ul_packet
(
/* ADD INFO and data_block pointer */
)
{
struct
IF4_ul_packet
ul_packet
;
// Set destination and source address
// Set Type and Sub-Type
ul_packet
.
type
=
;
//
08
_
0A
?
ul_packet
.
type
=
0x
080A
;
ul_packet
.
sub_type
=
0x0019
;
// Leave reserved as it is
//ul_packet.rsvd = ;
// Set frame status
ul_packet
.
frame_status
.
ant_num
=
;
ul_packet
.
frame_status
.
ant_start
=
;
ul_packet
.
frame_status
.
rf_num
=
;
ul_packet
.
frame_status
.
sf_num
=
;
ul_packet
.
frame_status
.
sym_num
=
;
ul_packet
.
frame_status
.
ant_num
=
0
;
ul_packet
.
frame_status
.
ant_start
=
0
;
ul_packet
.
frame_status
.
rf_num
=
0
;
ul_packet
.
frame_status
.
sf_num
=
0
;
ul_packet
.
frame_status
.
sym_num
=
0
;
//ul_packet.frame_status.rsvd = ;
// Set antenna specific gain
ul_packet
.
gain0
.
exponent
=
;
ul_packet
.
gain0
.
exponent
=
0
;
//ul_packet.gain0.rsvd = ;
// Set data blocks if sent
if
(
data_block
!=
NULL
)
{
}
else
{
}
//
if (data_block != NULL) {
//
//
} else {
//
//
}
// Set frame check sequence
ul_packet
.
fcs
=
;
ul_packet
.
fcs
=
0
;
return
ul_packet
;
}
IF4_prach_packet
gen_IF4_prach_packet
(
/* ADD INFO and data_block pointer */
)
{
IF4_prach_packet
prach_packet
;
struct
IF4_prach_packet
gen_IF4_prach_packet
(
/* ADD INFO and data_block pointer */
)
{
struct
IF4_prach_packet
prach_packet
;
// Set destination and source address
// Set Type and Sub-Type
prach_packet
.
type
=
;
//
08
_
0A
?
prach_packet
.
type
=
0x
080A
;
prach_packet
.
sub_type
=
0x0021
;
// Leave reserved as it is
...
...
@@ -167,20 +171,27 @@ IF4_prach_packet gen_IF4_prach_packet( /* ADD INFO and data_block pointer */ ) {
// Set LTE Prach configuration
//prach_packet.prach_conf.rsvd = ;
prach_packet
.
prach_conf
.
ant
=
;
prach_packet
.
prach_conf
.
rf_num
=
;
prach_packet
.
prach_conf
.
sf_num
=
;
prach_packet
.
prach_conf
.
exponent
=
;
prach_packet
.
prach_conf
.
ant
=
0
;
prach_packet
.
prach_conf
.
rf_num
=
0
;
prach_packet
.
prach_conf
.
sf_num
=
0
;
prach_packet
.
prach_conf
.
exponent
=
0
;
// Set data blocks if sent
if
(
data_block
!=
NULL
)
{
}
else
{
}
//
if (data_block != NULL) {
//
//
} else {
//
//
}
// Set frame check sequence
prach_packet
.
fcs
=
;
prach_packet
.
fcs
=
0
;
return
prach_packet
;
}
int
main
(){
uint32_t
i
=
0
;
return
0
;
}
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/if4_tools.h
+
20
−
21
View file @
d5d1dd0e
...
...
@@ -38,8 +38,6 @@
* \warning
*/
#include
<stdint.h>
/// IF4 Frame Status (32 bits)
struct
IF4_frame_status
{
/// Antenna Numbers
...
...
@@ -59,9 +57,9 @@ struct IF4_frame_status {
/// IF4 Antenna Gain (16 bits)
struct
IF4_gain
{
/// Reserved
uint
32
_t
rsvd
:
10
;
uint
16
_t
rsvd
:
10
;
/// FFT Exponent Output
uint
32
_t
exponent
:
6
;
uint
16
_t
exponent
:
6
;
};
/// IF4 LTE PRACH Configuration (32 bits)
...
...
@@ -77,7 +75,7 @@ struct IF4_lte_prach_conf {
/// FFT Exponent Output
uint32_t
exponent
:
6
;
};
struct
IF4_dl_packet
{
/// Destination Address
...
...
@@ -90,13 +88,14 @@ struct IF4_dl_packet {
/// Reserved
uint32_t
rsvd
;
/// Frame Status
IF4_frame_status
frame_status
;
struct
IF4_frame_status
frame_status
;
/// Data Blocks
/// Frame Check Sequence
uint32_t
fcs
;
};
struct
IF4_ul_packet
{
/// Destination Address
...
...
@@ -109,23 +108,23 @@ struct IF4_ul_packet {
/// Reserved
uint32_t
rsvd
;
/// Frame Status
IF4_frame_status
frame_status
;
struct
IF4_frame_status
frame_status
;
/// Gain 0
IF4_gain
gain0
;
struct
IF4_gain
gain0
;
/// Gain 1
IF4_gain
gain1
;
struct
IF4_gain
gain1
;
/// Gain 2
IF4_gain
gain2
;
struct
IF4_gain
gain2
;
/// Gain 3
IF4_gain
gain3
;
struct
IF4_gain
gain3
;
/// Gain 4
IF4_gain
gain4
;
struct
IF4_gain
gain4
;
/// Gain 5
IF4_gain
gain5
;
struct
IF4_gain
gain5
;
/// Gain 6
IF4_gain
gain6
;
struct
IF4_gain
gain6
;
/// Gain 7
IF4_gain
gain7
;
struct
IF4_gain
gain7
;
/// Data Blocks
/// Frame Check Sequence
...
...
@@ -144,7 +143,7 @@ struct IF4_prach_packet {
/// Reserved
uint32_t
rsvd
;
/// LTE Prach Configuration
IF4_lte_prach_conf
prach_conf
;
struct
IF4_lte_prach_conf
prach_conf
;
/// Prach Data Block (one antenna)
/// Frame Check Sequence
...
...
@@ -153,12 +152,12 @@ struct IF4_prach_packet {
// Needs to be checked
IF4_dl_packet
gen_IF4_dl_packet
();
struct
IF4_dl_packet
gen_IF4_dl_packet
();
IF4_ul_packet
gen_IF4_ul_packet
();
struct
IF4_ul_packet
gen_IF4_ul_packet
();
IF4_prach_packet
gen_IF4_prach_packet
();
struct
IF4_prach_packet
gen_IF4_prach_packet
();
void
send_IF4
(
PHY_VARS_eNB
*
eNB
,
int
subframe
);
void
send_IF4
(
/* ADD INFO */
);
void
recv_IF4
(
PHY_VARS_eNB
*
eNB
,
int
subframe
);
void
recv_IF4
(
/* ADD INFO */
);
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment