summaryrefslogtreecommitdiffstats
path: root/include/l1ctl_proto.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-07-30 15:43:15 +0200
committerHarald Welte <laforge@gnumonks.org>2017-08-20 22:19:17 +0200
commitb2c19fc5d35f25a63b2ee523761c3d9714b146e9 (patch)
tree600cdaa4d86b9d66167015cf8647e6c10993a619 /include/l1ctl_proto.h
parent35564c691fe975047efe640db098a8385a8482f3 (diff)
VIRT-PHY: Add support for GPRS / TBF mode
we add a new STATE_TBF to vthe MS model and add some L1CTL primitives to configure that TBF mode as well as to enqueue transmissions for blocks at a given USF+TS. Change-Id: Ie6f37090bd45f463aa25d9e00bc06f563be5264a
Diffstat (limited to 'include/l1ctl_proto.h')
-rw-r--r--include/l1ctl_proto.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/include/l1ctl_proto.h b/include/l1ctl_proto.h
index 771bf1c3..37d3d879 100644
--- a/include/l1ctl_proto.h
+++ b/include/l1ctl_proto.h
@@ -56,6 +56,13 @@ enum {
L1CTL_TRAFFIC_REQ,
L1CTL_TRAFFIC_CONF,
L1CTL_TRAFFIC_IND,
+
+ /* configure TBF for uplink/downlink */
+ L1CTL_TBF_CFG_REQ,
+ L1CTL_TBF_CFG_CONF,
+
+ L1CTL_DATA_TBF_REQ,
+ L1CTL_DATA_TBF_CONF,
};
enum ccch_mode {
@@ -70,6 +77,23 @@ enum neigh_mode {
NEIGH_MODE_SB,
};
+enum l1ctl_coding_scheme {
+ L1CTL_CS_NONE,
+ L1CTL_CS1,
+ L1CTL_CS2,
+ L1CTL_CS3,
+ L1CTL_CS4,
+ L1CTL_MCS1,
+ L1CTL_MCS2,
+ L1CTL_MCS3,
+ L1CTL_MCS4,
+ L1CTL_MCS5,
+ L1CTL_MCS6,
+ L1CTL_MCS7,
+ L1CTL_MCS8,
+ L1CTL_MCS9,
+};
+
#define TRAFFIC_DATA_LEN 40
/*
@@ -152,6 +176,15 @@ struct l1ctl_info_ul {
uint8_t payload[0];
} __attribute__((packed));
+struct l1ctl_info_ul_tbf {
+ /* references l1ctl_tbf_cfg_req.tbf_nr */
+ uint8_t tbf_nr;
+ uint8_t coding_scheme;
+ uint8_t padding[2];
+ /* RLC/MAC block, size determines CS */
+ uint8_t payload[0];
+} __attribute__((packed));
+
/*
* msg for FBSB_REQ
* the l1_info_ul header is in front
@@ -300,4 +333,15 @@ struct l1ctl_traffic_req {
uint8_t data[TRAFFIC_DATA_LEN];
} __attribute__((packed));
+struct l1ctl_tbf_cfg_req {
+ /* future support for multiple concurrent TBFs. 0 for now */
+ uint8_t tbf_nr;
+ /* is this about an UL TBF (1) or DL (0) */
+ uint8_t is_uplink;
+ uint8_t padding[2];
+
+ /* one USF for each TN, or 255 for invalid/unused */
+ uint8_t usf[8];
+} __attribute__((packed));
+
#endif /* __L1CTL_PROTO_H__ */