prplfoundation / prplMesh

This repository moved to https://gitlab.com/prpl-foundation/prplmesh/prplMesh
Other
65 stars 32 forks source link

[Feature] Handling WFA-CA command "DEV_SET_CONFIG" #229

Closed morantr closed 5 years ago

morantr commented 5 years ago

Introduction

To pass EasyMesh certification, the system is required to be able to receive various commands from TestSuit(UCC) application. Current design focus on the command "DEV_SET_CONFIG" which is used to configure a device (Agent) with its configuration parameters.

Sequence Diagram

dev_set_config

Command Syntax

Name Description Value
Backhaul Set a single backhual interface to Ethernet or Wi-Fi. For Wi-Fi, a RUID associated with its frequency band (2.4GHz, 5GHz Low, 5GHz High) is provided. For Ethernet, the device should return status,COMPLETE until it completes Ethernet onboarding.
NOTE: This argument is only relevant, when UCC send the command to the agent.
String: EthRUID
BSS_Info1 BSS initialization data used by controller to configure agent's fronthaul radio. The value is a list of fields separated by space that stands for:
WTS_REPLACE_DEST_ALID,operating class, SSID, authentication type (WPA2-PSK), encryption type(AES-CCMP),network key, bit 6 of Multi-AP IE's extension attribute, bit 5 of Multi-AP IE's extension attribute. To clear the BSS info stored for a specific operating class, only the deviceALID and operating class are retained.
NOTE: This argument is only relevant when UCC send the command to the controller.
String: WTS_REPLACE_DEST_ALID 8x Multi-AP-2G-1 0x00200x0008 maprocks1 0 1
BSS_Info2 String: WTS_REPLACE_DEST_ALID8x Multi-AP-2G-2 0x00200x0008 maprocks2 0 0
BSS_InfoN String: WTS_REPLACE_DEST_ALID8x Multi-AP-2G-n 0x00200x0008 maprocksn 0 0
Name Device name. String: For Ex.: dev1
Program Program name String: MAP
BSS_info components by order:
  1. Destination Agent ALID
  2. Operating Class - if '8x' - '2.4G', else '5G'.
  3. SSID - Will be filled on sWscAttrKeyWrapAuthenticator as part of M2 message.
  4. Authentication type - Will be filled on sWscAttrKeyWrapAuthenticator as part of M2 message. This value is in hex notation which presented by eWscAuth Enum.
  5. Encryption type - Will be filled on sWscAttrEncryptionType as part of M2 message. This value is in hex notation which presented by eWscEncr Enum.
  6. Network key - Will be filled on sWscAttrNetworkKey as part of M2 message.
  7. Bit 6 of Multi-AP IE's extension attirbute - Means 'Backhaul BSS' which will be filled on sWscAttrVendorExtension as part of M2 message.
  8. Bit 5 of Multi-AP IE's extension attirbute - Means 'Fronthaul BSS' which will be filled on sWscAttrVendorExtension as part of M2 message.

Design

Each DEV_SET_CONFIG command will be parsed, and its parameters will be stored in controller DB (not inside DB node), in list container. Note: This configuration will have to be cleared on DEV_RESET_DEFAULT command. When the controller will receive M1 and create M2 message, it will take the configuration from the DB and fill it inside M2.

Problem "DEV_SET_CONFIG" could have multiple devices configuration on the command with the same ALID. When filling M2, how could the controller choose which configuration to use for each RUID? It is possible to match operating class on AP capabilities from M1 to the operating class in the configuration to know to which configuration to use in M2: if operating class is '8x' - '2.4G', else '5G'.

Opens If there will be multiple configurations with operating class that match AP capabilities, it will be impossible to fill M2.

dev_set_config.zip plantuml files

tomereli commented 5 years ago

Well done, let's discuss this on the next daily meeting.

arnout commented 5 years ago

Regarding the "Problem": indeed, the specification requires that you match the radio band with the configured radio bands and provide an M2 for each matching SSID. Note that there may be multiple M2s in the WSC response.