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.h49
1 files changed, 45 insertions, 4 deletions
diff --git a/mac/fira_session.h b/mac/fira_session.h
index 4f02596..d890f31 100644
--- a/mac/fira_session.h
+++ b/mac/fira_session.h
@@ -81,6 +81,10 @@ struct fira_controlee {
*/
enum fira_controlee_state state;
/**
+ * @range_data_ntf_status: range_data_ntf status of the controlee.
+ */
+ enum fira_range_data_ntf_status range_data_ntf_status;
+ /**
* @entry: Entry in list of controlees.
*/
struct list_head entry;
@@ -154,8 +158,12 @@ struct fira_session_params {
/* Misc */
enum fira_sts_length sts_length;
enum fira_range_data_ntf_config range_data_ntf_config;
- u32 range_data_ntf_proximity_near_mm;
- u32 range_data_ntf_proximity_far_mm;
+ u32 range_data_ntf_proximity_near_rctu;
+ u32 range_data_ntf_proximity_far_rctu;
+ s16 range_data_ntf_lower_bound_aoa_azimuth_2pi;
+ s16 range_data_ntf_upper_bound_aoa_azimuth_2pi;
+ s16 range_data_ntf_lower_bound_aoa_elevation_2pi;
+ s16 range_data_ntf_upper_bound_aoa_elevation_2pi;
};
/**
@@ -282,6 +290,11 @@ struct fira_session {
* is present in measurement report frame.
*/
bool next_round_index_valid;
+ /**
+ * @ctlr_range_data_ntf_status: range_data_ntf status of the
+ * controller.
+ */
+ enum fira_range_data_ntf_status ctlr_range_data_ntf_status;
} controlee;
/**
* @controller: Group of persistent variable(s) used when session
@@ -412,7 +425,7 @@ struct fira_report_info {
* @ranging_data: Base address of ranging data per peer, or null
* pointer.
*/
- const struct fira_ranging_info *ranging_data;
+ struct fira_ranging_info *ranging_data;
/**
* @n_ranging_data: Number of entry in ranging_data above.
*/
@@ -505,6 +518,24 @@ int fira_session_del_controlees(struct fira_session *session,
struct list_head *controlees, bool async);
/**
+ * fira_session_get_controlee() - Get controlee info from short address.
+ * @session: Session.
+ * @short_addr: Short address of the controlee.
+ *
+ * Return: The corresponding controlee object or NULL.
+ */
+static inline struct fira_controlee *
+fira_session_get_controlee(struct fira_session *session, u16 short_addr)
+{
+ struct fira_controlee *controlee;
+ list_for_each_entry (controlee, &session->current_controlees, entry) {
+ if (controlee->short_addr == short_addr)
+ return controlee;
+ }
+ return NULL;
+}
+
+/**
* fira_session_stop_controlees() - Stop controlees.
* @session: Session.
*/
@@ -590,13 +621,23 @@ fira_session_get_rx_ant_set(const struct fira_session *session,
}
/**
+ * fira_session_set_range_data_ntf_status() - Update range_data_ntf_status
+ * for a given ranging.
+ * @session: FiRa session.
+ * @ranging_info: ranging data to be evaluated.
+ */
+void fira_session_set_range_data_ntf_status(
+ const struct fira_session *session,
+ struct fira_ranging_info *ranging_info);
+
+/**
* fira_session_report() - Report state change and ranging result for a session.
* @local: FiRa context.
* @session: Session to report.
* @report_info: report information to exploit for the reporting.
*/
void fira_session_report(struct fira_local *local, struct fira_session *session,
- const struct fira_report_info *report_info);
+ struct fira_report_info *report_info);
/**
* fira_session_controlee_active() - Return whether the controlee is currently active.