diff --git a/wifi/legacy_headers/include/hardware_legacy/rtt.h b/wifi/legacy_headers/include/hardware_legacy/rtt.h index 63c3325dda..426abe0854 100644 --- a/wifi/legacy_headers/include/hardware_legacy/rtt.h +++ b/wifi/legacy_headers/include/hardware_legacy/rtt.h @@ -121,12 +121,10 @@ typedef struct { /* RTT configuration v3 (11az support)*/ typedef struct { wifi_rtt_config rtt_config; - byte ntb_min_measurement_time_millis; // 11az Non-Trigger-based (non-TB) minimum measurement - // time in milliseconds - byte ntb_max_measurement_time_millis; // 11az Non-Trigger-based (non-TB) maximum measurement - // time in milliseconds - byte tx_ltf_repetition_count; // Multiple transmissions of HE-LTF symbols in an HE - // Ranging NDP. A value of 1 indicates no repetition. + u64 ntb_min_measurement_time; // 11az Non-Trigger-based (non-TB) minimum measurement time in + // units of 100 microseconds + u64 ntb_max_measurement_time; // 11az Non-Trigger-based (non-TB) maximum measurement time in + // units of 10 milliseconds } wifi_rtt_config_v3; /* RTT results */ @@ -184,11 +182,19 @@ typedef struct { /* RTT results v3 (11az support)*/ typedef struct { wifi_rtt_result_v2 rtt_result; - int tx_ltf_repetition_count; // 11az Transmit LTF repetitions used to get this result. - int ntb_min_measurement_time_millis; // Minimum non-trigger based (non-TB) dynamic measurement - // time in milliseconds assigned by the 11az responder. - int ntb_max_measurement_time_millis; // Maximum non-trigger based (non-TB) dynamic measurement - // time in milliseconds assigned by the 11az responder. + byte i2r_tx_ltf_repetition_count;// Multiple transmissions of HE-LTF symbols in an HE (I2R) + // Ranging NDP. An HE-LTF repetition value of 1 indicates no + // repetitions. + byte r2i_tx_ltf_repetition_count;// Multiple transmissions of HE-LTF symbols in an HE (R2I) + // Ranging NDP. An HE-LTF repetition value of 1 indicates no + // repetitions. + u64 ntb_min_measurement_time; // Minimum non-trigger based (non-TB) dynamic measurement time + // in units of 100 microseconds assigned by the 11az responder. + u64 ntb_max_measurement_time; // Maximum non-trigger based (non-TB) dynamic measurement + // time in units of 10 milliseconds assigned by the 11az + // responder. + byte num_tx_sts; // Number of transmit space-time streams used. + byte num_rx_sts; // Number of receive space-time streams used. } wifi_rtt_result_v3; @@ -305,8 +311,6 @@ typedef struct { byte az_bw_support; // bit mask indicates what BW is supported by 11az initiator byte ntb_initiator_supported; // if 11az non-TB initiator is supported byte ntb_responder_supported; // if 11az non-TB responder is supported - byte max_tx_ltf_repetition_count;// maximum HE LTF repetitions the 11az initiator is capable of - // transmitting in the preamble of I2R NDP } wifi_rtt_capabilities_v3; /* RTT capabilities v3 of the device (11az support) */ diff --git a/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h b/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h index 9c82e80b39..e770777aae 100644 --- a/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h +++ b/wifi/legacy_headers/include/hardware_legacy/wifi_hal.h @@ -417,6 +417,24 @@ typedef struct { wifi_iface_combination iface_combinations[MAX_IFACE_COMBINATIONS]; } wifi_iface_concurrency_matrix; +/* Wifi OUI data */ +typedef struct { + /* OUI : 24-bit organizationally unique identifier to identify the Vendor/OEM */ + u32 oui; + /* Length of the data buffer */ + u32 data_len; + /* Vendor-specific data */ + const u8 *data; +} oui_keyed_data; + +/* Wifi Vendor data list */ +typedef struct { + /* Number of OUI Keyed Data objects */ + u32 num_oui_keyed_data; + /* List of OUI Keyed Data */ + oui_keyed_data *oui_data; +} wifi_vendor_data; + /* Initialize/Cleanup */ wifi_error wifi_initialize(wifi_handle *handle); @@ -1007,6 +1025,16 @@ typedef struct { */ wifi_error (*wifi_twt_get_capabilities)(wifi_interface_handle iface, wifi_twt_capabilities* capabilities); + + /** + * Register TWT events before sending any TWT request + * + * @param wifi_interface_handle: + * @param events: TWT events callbacks to register + * @return Synchronous wifi_error + */ + wifi_error (*wifi_twt_register_events)(wifi_interface_handle iface, wifi_twt_events events); + /** * Setup a TWT session. * @@ -1017,11 +1045,10 @@ typedef struct { * @param id Identifier for the command. The value 0 is reserved. * @param iface Wifi interface handle * @param request TWT request parameters - * @param events TWT events * @return Synchronous wifi_error */ wifi_error (*wifi_twt_session_setup)(wifi_request_id id, wifi_interface_handle iface, - wifi_twt_request request, wifi_twt_events events); + wifi_twt_request request); /** * Update a TWT session. * @@ -1098,7 +1125,7 @@ typedef struct { * @param TwtCallbackHandler: callback function pointers * @return Synchronous wifi_error * - * Note: This function is deprecated + * Note: This function is deprecated by wifi_twt_register_events */ wifi_error (*wifi_twt_register_handler)(wifi_interface_handle iface, TwtCallbackHandler handler); @@ -1170,7 +1197,7 @@ typedef struct { * @param config_id: configuration ID of TWT request * @return Synchronous wifi_error * - * Note: This function is deprecated by wifi_twt_session_clear_stats + * Note: This function is deprecated. */ wifi_error (*wifi_twt_clear_stats)(wifi_interface_handle iface, u8 config_id); @@ -1373,6 +1400,18 @@ typedef struct { */ wifi_error (*wifi_set_mlo_mode)(wifi_handle handle, wifi_mlo_mode mode); + /**@brief wifi_virtual_interface_create_with_vendor_data + * Create new virtual interface using vendor data. + * @param handle: global wifi_handle + * @param ifname: name of interface to be created. + * @param iface_type: one of interface types from wifi_interface_type. + * @param vendor_data: vendor data to apply on this interface. + * @return Synchronous wifi_error + */ + wifi_error (*wifi_virtual_interface_create_with_vendor_data) + (wifi_handle handle, const char* ifname, + wifi_interface_type iface_type, wifi_vendor_data* vendor_data); + /* * when adding new functions make sure to add stubs in * wifi_legacy_hal_stubs.cpp::initHalFuncTableWithStubs diff --git a/wifi/legacy_headers/include/hardware_legacy/wifi_twt.h b/wifi/legacy_headers/include/hardware_legacy/wifi_twt.h index 1a787ef05e..cb11c78c0c 100644 --- a/wifi/legacy_headers/include/hardware_legacy/wifi_twt.h +++ b/wifi/legacy_headers/include/hardware_legacy/wifi_twt.h @@ -31,8 +31,8 @@ typedef struct { u8 is_flexible_twt_supported; // 0 for not supporting flexible twt schedules u32 min_wake_duration_micros; // minimum twt wake duration capable in microseconds u32 max_wake_duration_micros; // maximum twt wake duration capable in microseconds - u32 min_wake_interval_micros; // minimum twt wake interval capable in microseconds - u32 max_wake_interval_micros; // maximum twt wake interval capable in microseconds + u64 min_wake_interval_micros; // minimum twt wake interval capable in microseconds + u64 max_wake_interval_micros; // maximum twt wake interval capable in microseconds } wifi_twt_capabilities; /* TWT request parameters to setup or update a TWT session */ @@ -41,8 +41,8 @@ typedef struct { // Otherwise UNSPECIFIED. u32 min_wake_duration_micros; // minimum twt wake duration in microseconds u32 max_wake_duration_micros; // maximum twt wake duration in microseconds - u32 min_wake_interval_micros; // minimum twt wake interval in microseconds - u32 max_wake_interval_micros; // maximum twt wake interval in microseconds + u64 min_wake_interval_micros; // minimum twt wake interval in microseconds + u64 max_wake_interval_micros; // maximum twt wake interval in microseconds } wifi_twt_request; /* TWT negotiation types */ @@ -56,7 +56,7 @@ typedef struct { u32 session_id; // a unique identifier for the session s8 mlo_link_id; // link id in case of MLO connection. Otherwise UNSPECIFIED. u32 wake_duration_micros; // TWT service period in microseconds - u32 wake_interval_micros; // TWT wake interval for this session in microseconds + u64 wake_interval_micros; // TWT wake interval for this session in microseconds wifi_twt_negotiation_type negotiation_type; // TWT negotiation type u8 is_trigger_enabled; // 0 if this TWT session is not trigger enabled u8 is_announced; // 0 if this TWT session is not announced