-
Notifications
You must be signed in to change notification settings - Fork 32
EasyMesh BSS Steer Response and use TU #427
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is something wrong with the first three commits: when applying the first one only, the build will fail because not all callers have been updated. The proper way to deal with this is to change the function definitions in one place (e.g. tlvf) and then update all callers as well in the same commit.
However, reworking it in that way is going to be way too much work, so it's not necessary for me. Instead, just squash the first three commits in one, except for the AutoGenerated changes which should be done in a separate commit.
The next three commits (agent: move client steering handling to manager) have a similar problem: the first commit is using tlvf objects that are added in the two following commits. There, also, I think the easiest solution now is to squash them and split off the AutoGenerated again.
@@ -4807,65 +4832,37 @@ bool slave_thread::handle_client_steering_request(Socket *sd, ieee1905_1::CmduMe | |||
return false; | |||
} | |||
|
|||
if (steering_request_tlv->bssid() != hostap_params.iface_mac) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Darn, now I realise that the partial PR I merged actually does break things, because this condition was wrong...
So, I'd like to merge this PR today still.
@@ -316,9 +316,10 @@ sNodeBssSteerTarget: | |||
sNodeBssSteerRequest: | |||
_type: struct | |||
mac: sMacAddr | |||
disassoc_timer: uint16_t | |||
bssid: sMacAddr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid confusion about this, I would rename this to source_bssid
or cur_bssid
.
@@ -113,7 +113,7 @@ class ap_wlan_hal : public virtual base_wlan_hal { | |||
* @param [in] mac The MAC address of the station. | |||
* @param [in] bssid The MAC address of the target AP. | |||
* @param [in] chan The channel of the target AP. | |||
* @param [in] disassoc_timer Time in milliseconds before the AP should | |||
* @param [in] disassoc_timer Time in TU (time units, 1 TU = 1.024ms) before the AP should |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To complete the transition, we could change the argument name (here and in all implementations) into disassoc_timer_ms
as well. (nitpick)
The disassoc_timer used in beerocks is in units of 100ms, while the btm_disassociation_timer in the EasyMesh SteeringRequest TLV is in units of 1TU (1024µs). We should convert the uses of the disassociation timer to use TUs everywhere since that's what goes in the BTM request anyway. Rename disassoc(iation)_timer to disassoc(iation)_timer_ms and change it to be in ms(~TU) instead of 100ms units. Update the constants accordingly. In existing BWL implementations, convert disassoc_timer from TU to 100ms units to preserve the old behavior. Signed-off-by: Yuriy Masechko <[email protected]> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Signed-off-by: Yuriy Masechko <[email protected]> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Agent manager have to respond steering request with ACK to slave. Slave respond with EasyMesh ACK to controller after receiving ACK from manager. Add ACTION_APMANAGER_ACK action. Signed-off-by: Yuriy Masechko <[email protected]>
The AP Manager should check if the source BSSID is one of its VAPs, because the slave itself doesn't have this information. Therefore, the sNodeBssSteerRequest message has to be augmented with this information. Add a field cur_bssid for this. To avoid confusion, rename the target from 'bssid' to 'target', and rename its 'mac' field to 'bssid'. While we're at it, also add the operating class to the target bssid, since we'll need that at some point (a BTM request contains the target operating class as well as channel). The operating class is copied from the EasyMesh message. Signed-off-by: Yuriy Masechko <[email protected]> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Manager should check if BSSID is one of its VAPs and if STA is connected. Move client steering request handling to manager. Signed-off-by: Yuriy Masechko <[email protected]> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Dummy BWL should call BSS_TM_Response event after bss steer request. Dummy BWL call BSS_TM_Response after steering. Signed-off-by: Yuriy Masechko <[email protected]>
…STEER_RESPONSE Use EasyMesh tlvSteeringBTMReport instead of beerocks ACTION_CONTROL_CLIENT_BSS_STEER_RESPONSE as response for ACTION_APMANAGER_CLIENT_BSS_STEER_RESPONSE. Use tlvSteeringBTMReport instead of beerocks ACTION_CONTROL_CLIENT_BSS_STEER_RESPONSE. Signed-off-by: Yuriy Masechko <[email protected]>
Remove yaml and auto-generated files of intel propriety cliest sterring response message. This message has no longer have use because replaced with easymesh message. Signed-off-by: Yuriy Masechko <[email protected]>
b31a973
to
0cef0f2
Compare
This PR is the continuation of #322 and deals with two issues: