aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoding.h
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2016-01-13 13:55:44 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-08 00:45:34 +0100
commitae9c575d2c2e7f906c41d28682445e6c8cb53f03 (patch)
treeb9236fb18dc558431e8fa398b530de4fcb06641f /src/decoding.h
parentc2141c6064ddf5283937c7f77468bf2396787804 (diff)
edge: Handle EGPRS PACKET DOWNLINK ACK NACK
Currently this message is ignored. Support decoding and handling of this message. Use a bitvec for the decoder that just represents a BSN sequence without any encoding details (first bit -> first BSN). Return the corresponding BSN range (snsmod(bsn_begin + bits_in_bitvec) = bsn_end), so snsmod(bsn_end-1) is the last BSN if there is at least 1. If bsn_begin == bsn_end, no BSNs has been added. Note that this bitvec is not yet used for RBB handling. It just calls the old rcvd_dl_ack with a faked (all bits are 1) RBB map. Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/decoding.h')
-rw-r--r--src/decoding.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/decoding.h b/src/decoding.h
index c75b19a1..99cb3187 100644
--- a/src/decoding.h
+++ b/src/decoding.h
@@ -24,6 +24,8 @@
#include <stdint.h>
+struct bitvec;
+
class Decoding {
public:
struct RlcData {
@@ -51,4 +53,8 @@ public:
const struct gprs_rlc_data_info *rlc,
unsigned int data_block_idx,
const uint8_t *src, uint8_t *buffer);
+ static int decode_egprs_acknack_bits(
+ const EGPRS_AckNack_Desc_t *desc,
+ struct bitvec *bits, int *bsn_begin, int *bsn_end,
+ struct gprs_rlc_dl_window *window);
};