diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-24 17:05:48 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-26 20:57:24 +0100 |
commit | df6b4f52e05e699b9a96a920973bff6241b5a853 (patch) | |
tree | 433c1d5a236191f6ed4cb500054447ffae0712f6 /src/rlc.h | |
parent | 9eb8ace2608980f6c5e68610210fc6dd921b41ff (diff) |
tbf/rlc: Move the parsing of RBB to Decoding, move window marking out
Move the parsing of the bitbmap out of the TBF code into Decoding.
Move the updating of the V_B into the V_B class. Add some comments
about handling the mod_sns, mod_sns_half parameters by using template
code.
Diffstat (limited to 'src/rlc.h')
-rw-r--r-- | src/rlc.h | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -25,6 +25,7 @@ #define RLC_MAX_WS 64 /* max window size */ #define RLC_MAX_LEN 54 /* CS-4 including spare bits */ +class BTS; struct gprs_rlc_data { uint8_t *prepare(size_t block_data_length); @@ -43,11 +44,18 @@ struct gprs_rlc { gprs_rlc_data blocks[RLC_MAX_SNS/2]; }; +/** + * TODO: for GPRS/EDGE maybe make sns a template parameter + * so we create specialized versions... + */ struct gprs_rlc_v_b { int resend_needed(const uint16_t acked, const uint16_t sent, const uint16_t mod_sns, const uint16_t mod_sns_half); int mark_for_resend(const uint16_t acked, const uint16_t sent, const uint16_t mod_sns, const uint16_t mod_sns_half); + void update(BTS *bts, char *show_rbb, uint8_t ssn, const uint16_t v_a, + const uint16_t mod_sns, const uint16_t mod_sns_half, + uint16_t *lost, uint16_t *received); /* Check for an individual frame */ bool is_unacked(int index) const; |