FlexRAN: Calculate sfnsn such that diff 1s = 1000
This commit is contained in:
@@ -71,19 +71,10 @@ sub_frame_t flexran_get_current_subframe(mid_t mod_id)
|
|||||||
return RC.mac[mod_id]->subframe;
|
return RC.mac[mod_id]->subframe;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Why uint16_t, frame_t and sub_frame_t are defined as uint32_t? */
|
uint32_t flexran_get_sfn_sf(mid_t mod_id)
|
||||||
uint16_t flexran_get_sfn_sf(mid_t mod_id)
|
|
||||||
{
|
{
|
||||||
if (!mac_is_present(mod_id)) return 0;
|
if (!mac_is_present(mod_id)) return 0;
|
||||||
frame_t frame = flexran_get_current_system_frame_num(mod_id);
|
return flexran_get_current_frame(mod_id) * 10 + flexran_get_current_subframe(mod_id);
|
||||||
sub_frame_t subframe = flexran_get_current_subframe(mod_id);
|
|
||||||
uint16_t sfn_sf, frame_mask, sf_mask;
|
|
||||||
|
|
||||||
frame_mask = (1 << 12) - 1;
|
|
||||||
sf_mask = (1 << 4) - 1;
|
|
||||||
sfn_sf = (subframe & sf_mask) | ((frame & frame_mask) << 4);
|
|
||||||
|
|
||||||
return sfn_sf;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t flexran_get_future_sfn_sf(mid_t mod_id, int ahead_of_time)
|
uint16_t flexran_get_future_sfn_sf(mid_t mod_id, int ahead_of_time)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ sub_frame_t flexran_get_current_subframe(mid_t mod_id);
|
|||||||
|
|
||||||
/*Return the frame and subframe number in compact 16-bit format.
|
/*Return the frame and subframe number in compact 16-bit format.
|
||||||
Bits 0-3 subframe, rest for frame. Required by FlexRAN protocol*/
|
Bits 0-3 subframe, rest for frame. Required by FlexRAN protocol*/
|
||||||
uint16_t flexran_get_sfn_sf(mid_t mod_id);
|
uint32_t flexran_get_sfn_sf(mid_t mod_id);
|
||||||
|
|
||||||
/* Return a future frame and subframe number that is ahead_of_time
|
/* Return a future frame and subframe number that is ahead_of_time
|
||||||
subframes later in compact 16-bit format. Bits 0-3 subframe,
|
subframes later in compact 16-bit format. Bits 0-3 subframe,
|
||||||
|
|||||||
Reference in New Issue
Block a user