diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-07-30 15:43:15 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-08-20 22:19:17 +0200 |
commit | b2c19fc5d35f25a63b2ee523761c3d9714b146e9 (patch) | |
tree | 600cdaa4d86b9d66167015cf8647e6c10993a619 /include | |
parent | 35564c691fe975047efe640db098a8385a8482f3 (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')
-rw-r--r-- | include/l1ctl_proto.h | 44 |
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__ */ |