Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

EasyMesh BSS Steer Response and use TU #427

Merged
merged 8 commits into from
Oct 11, 2019
Merged

Conversation

arnout
Copy link
Collaborator

@arnout arnout commented Oct 10, 2019

This PR is the continuation of #322 and deals with two issues:

Copy link
Collaborator Author

@arnout arnout left a 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) {
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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]>
@arnout arnout force-pushed the feature/easymesh-btm-response branch from b31a973 to 0cef0f2 Compare October 11, 2019 16:02
@arnout arnout merged commit 7e38013 into master Oct 11, 2019
@arnout arnout deleted the feature/easymesh-btm-response branch October 11, 2019 16:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants