Fill this section in with your proposal for the package, and send the link to this page out for discussion.
Keep this section up to date over the course of the email conversation until the proposal is accepted.
When appropriate, add a parallel "API proposal" section
Question: Should the strategy be in Python?
This is intended as the API between the user and the whole roaming code. It will most likely be a ROS API, perhaps dynamic_reconfigure. It should be able to select between:
- Full auto roaming. All traffic is directed to a tunnel. The best interface is continuously selected for sending the traffic.
- Selected interface. All traffic is directed to a tunnel. The requested interface is used.
- Selected interface untunneled. All traffic is sent directly via the requested interface.
Scan results, diagnostics, and wifi status is published over ROS.
- Can we select strange test modes here too? Change the strategy?
Roaming Strategy API
This API is used by roaming strategies. A roaming strategy decides which interface to use, when to scan on wireless interfaces, and which BSSID to associate with.
init: Used to start scans.
scan_result_event: Returns the results of the latest scan.
select_interface: Periodically called to determine which interfaces data should be sent through. The strategy mainly selects based on signal strengths, and ping results.
association_failure_event: Indicates that an association failed, or was lost.
uninit: Used to stop all requests.
- Should the strategy directly use the Wireless API to request scans and association? can use the wireless API to request scans or reassociations. (The association_failed_event and scan_result_event could be requested via the wireless API and not appear in the strategy API.
This is intended as the API between wpa_supplicant and multi_interface_roam.
get_ssid() -> list of ssids: Gets the list of SSIDs that are configured in wpa_supplicant.
get_frequencies() -> list of frequencies: Gets the list of frequencies that are supported.
request_scan(list of ssids, list of frequencies): Requests a scan with a list of essids and frequencies.
cancel_scan(): Immediately stops a scan that is in progress. (Is this supported?)
associate(bssid): Requests association to a specific bssid.
disassociate(): Requests disassociation from a specific bssid.
association_failure_event: Indicates that an association failed, or was lost. (Success is detected by the link coming up.)
scan_result_event(list of scan results): Returns the results of the latest scan.
- Should multi_interface_roam take over setting the network configuration?
Package review meeting notes
Create new package review
Enter the date in the appropriate box to generate a template for an API or code review meeting. Check the QAProcess page for more information.