aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-12-08 21:15:45 +0100
committerHarald Welte <laforge@osmocom.org>2020-12-09 22:57:53 +0100
commit1fcfce86cb1dbc048731583401c2524864bf729e (patch)
treeb54890f2f3717cee8c981289da7de83ac6e22441 /include/osmocom
parent4394bb96291fabbdb102afd5d681ad720d75ab94 (diff)
bssgp_bvc_fsm: Add basic BVC flow control rx/tx support
The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Related: OS#4891 Change-Id: Ie59be6761177c43456898be9148727f15861a622
Diffstat (limited to 'include/osmocom')
-rw-r--r--include/osmocom/gprs/bssgp_bvc_fsm.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h
index 7c6fdeb0..e69c2051 100644
--- a/include/osmocom/gprs/bssgp_bvc_fsm.h
+++ b/include/osmocom/gprs/bssgp_bvc_fsm.h
@@ -4,6 +4,7 @@
struct gprs_ns2_inst;
struct osmo_fsm_inst;
struct gprs_ra_id;
+struct bssgp2_flow_ctrl;
enum bssp_ptp_bvc_fsm_state {
BSSGP_BVCFSM_S_NULL,
@@ -22,10 +23,13 @@ enum bssgp_ptp_bvc_fsm_event {
BSSGP_BVCFSM_E_RX_UNBLOCK_ACK,
BSSGP_BVCFSM_E_RX_RESET,
BSSGP_BVCFSM_E_RX_RESET_ACK,
+ BSSGP_BVCFSM_E_RX_FC_BVC,
+ BSSGP_BVCFSM_E_RX_FC_BVC_ACK,
/* Requests of the local user */
BSSGP_BVCFSM_E_REQ_BLOCK, /* data: uint8_t *cause */
BSSGP_BVCFSM_E_REQ_UNBLOCK,
BSSGP_BVCFSM_E_REQ_RESET, /* data: uint8_t *cause */
+ BSSGP_BVCFSM_E_REQ_FC_BVC, /* data: struct bssgp2_flow_ctrl */
};
struct bssgp_bvc_fsm_ops {
@@ -35,6 +39,7 @@ struct bssgp_bvc_fsm_ops {
/* call-back notifying the user of a BVC-RESET event */
void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id,
uint16_t cell_id, uint8_t cause, void *priv);
+ void (*rx_fc_bvc)(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv);
};
struct osmo_fsm_inst *