diff options
Diffstat (limited to 'include/osmocom/bsc/bssmap_reset.h')
-rw-r--r-- | include/osmocom/bsc/bssmap_reset.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bssmap_reset.h b/include/osmocom/bsc/bssmap_reset.h new file mode 100644 index 000000000..ba6425701 --- /dev/null +++ b/include/osmocom/bsc/bssmap_reset.h @@ -0,0 +1,27 @@ +/* Manage RESET and disconnection detection on BSSMAP and BSSMAP-LE */ +#pragma once + +enum bssmap_reset_fsm_event { + BSSMAP_RESET_EV_RX_RESET_ACK, + BSSMAP_RESET_EV_CONN_CFM_SUCCESS, + BSSMAP_RESET_EV_CONN_CFM_FAILURE, +}; + +struct bssmap_reset_cfg { + int conn_cfm_failure_threshold; + struct { + void (*tx_reset)(void *data); + void (*link_up)(void *data); + void (*link_lost)(void *data); + } ops; + void *data; +}; + +struct bssmap_reset { + struct osmo_fsm_inst *fi; + struct bssmap_reset_cfg cfg; + int conn_cfm_failures; +}; + +struct bssmap_reset *bssmap_reset_alloc(void *ctx, const char *label, const struct bssmap_reset_cfg *cfg); +bool bssmap_reset_is_conn_ready(const struct bssmap_reset *bssmap_reset); |