osmo-tetra/src/tetra_upper_mac.h

25 lines
1.0 KiB
C

#ifndef TETRA_UPPER_MAC_H
#define TETRA_UPPER_MAC_H
#include "tetra_prim.h"
#define REASSEMBLE_FRAGMENTS 1 /* Set to 0 to disable reassembly functionality */
#define FRAGSLOT_NR_SLOTS 5 /* Slot 0 is unused */
#define N203 6 /* Fragslot max age, see N.203 in the tetra docs, must be 4 multiframes or greater */
#define FRAGSLOT_MSGB_SIZE 8192
struct fragslot {
bool active; /* Set to 1 when fragslot holds a partially constructed message */
uint32_t age; /* Maintains the number of multiframes since the last fragment */
int num_frags; /* Maintains the number of fragments appended in the msgb */
int length; /* Maintains the number of bits appended in the msgb */
bool encryption; /* Set to true if the fragments were received encrypted */
struct tetra_key *key; /* Holds pointer to the key to be used for this slot */
struct msgb *msgb; /* Message buffer in which fragments are appended */
};
void upper_mac_init_fragslots();
int upper_mac_prim_recv(struct osmo_prim_hdr *op, void *priv);
#endif