summaryrefslogtreecommitdiff
path: root/mac/fira_session.h
diff options
context:
space:
mode:
Diffstat (limited to 'mac/fira_session.h')
-rw-r--r--mac/fira_session.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/mac/fira_session.h b/mac/fira_session.h
index c1e334b..47abf84 100644
--- a/mac/fira_session.h
+++ b/mac/fira_session.h
@@ -59,6 +59,7 @@ struct fira_session_params {
int max_number_of_measurements;
int max_rr_retry;
bool round_hopping;
+ int block_stride_len;
int priority;
bool result_report_phase;
/* Radio. */
@@ -136,6 +137,15 @@ struct fira_session {
*/
int next_round_index;
/**
+ * @block_stride_len: Stride length for the reference block.
+ */
+ int block_stride_len;
+ /**
+ * @next_block_stride_len: Stride length for the block after the
+ * reference block.
+ */
+ int next_block_stride_len;
+ /**
* @tx_ant: Antenna index to use for transmission in the reference
* block.
*/
@@ -307,6 +317,14 @@ bool fira_session_is_ready(struct fira_local *local,
struct fira_session *session);
/**
+ * fira_session_prepare() - Prepare a FiRa session to run.
+ * @local: FiRa context.
+ * @session: Session.
+ */
+void fira_session_prepare(struct fira_local *local,
+ struct fira_session *session);
+
+/**
* fira_session_next() - Find the next session to use after the given timestamp.
* @local: FiRa context.
* @next_timestamp_dtu: Next access opportunity.
@@ -319,10 +337,10 @@ struct fira_session *fira_session_next(struct fira_local *local,
u32 max_access_duration_dtu);
/**
- * fira_session_round_hopping() - Update round index for round hopping.
+ * fira_session_update_round_index() - Update round index for round hopping.
* @session: Session to update.
*/
-void fira_session_round_hopping(struct fira_session *session);
+void fira_session_update_round_index(struct fira_session *session);
/**
* fira_session_resync() - Resync session parameters on control message.
@@ -381,6 +399,7 @@ fira_session_get_block_duration_margin(struct fira_local *local,
const struct fira_session *session)
{
return (long long int)session->params.block_duration_dtu *
+ (session->block_stride_len + 1) *
local->block_duration_rx_margin_ppm / 1000000;
}