Closed
Description
I'm planning to have a new PR published over the weekend. Prior to me doing the final refactoring and tidy up I thought it'd be worth sharing what is in it in case I missed anything significant that can be addressed in time. Here's a summary of the notes for the overall PR, and what will become the commits witin it. Comments welcome.
Main Headlines
- Local Neighbor Report auto-generated for AP from current clients (works best in large network)
- Revise activity messages at basic and info levels to support user awareness and confidence in operation
- Added RRM capability info to hearing map to help understand how device should behave
- Streamline kicking algorithm to help ongoing evolution
- Address potential / actual bugs spotted by Coverity static analysis (thanks @Flole998)
- Resource mutex tracking to support code robustness
- Internal data structures simplified
- Continue to "flatten out" code to assist long term scalability
- Remove some unused parts of code (eg denied auth tracking)
Commits...
IEEE80211:
- Move some RRM utility functions around to simplify code structure / #includes
CLIENT_REQ:
- Remove the linked list of rejected auth / assoc as it was not used for any decision making
- Rename auth_req to client_req as it is also used by association requests
MAC:
- Simplify linked list search - code was unnecessarily complex for no benefit
- Adjust some MAC address handling to simplify code
AP:
- Simplify linked list search - code was unnecessarily complex for no benefit
- AP record is uniquely identified by BSSID, so remove unnecessary search on SSID as well
- Change some data handling to simplify passing of records, pointers, etc
- Assure sort order to simplify generating network map
- Removed unused fields for collision domain and bandwidth
PROBE / BEACON:
- New skipping linked list structure - possible bug in previous version
- Adjust some function names to better reflect what actually happens
- Remove redundant configurable sort elements
- Remove probe structure SSID field which is not set via BEACON, so is unreliable
- Adjust way the different fields from BEACON and PROBE reports are handled / merged
- Made client / BSSID paramater order consistent for probe / beacon functions to help avoid cut/ paste bugs
- Add RRM capability, RCPI and RSNI to client in hearing map (which is a summary of probe / beacon entries)
CLIENT:
- Simplify linked list search - code was unnecessarily complex for no benefit
- Refactored parse / kick logic to simplify functions
NETWORK:
- Merge encoded / plain messge handling to ensure fixes land in both
- Fix some potential resource leaks spotted by Coverity
MUTEX:
- Wrap mutex calls with traceable messages to help debugging resource locks
MAPS:
- Simplify loops and scans in generating hearing map
CLEANUP:
- Remove a few things that are no longer needed: #includes, etc
MSGS:
- Add messages that help users understand what PROBE and BEACON messages are being used
BUGS:
- Fix a couple of bugs in hardly ever (never?) used code paths that Coverity spotted
- Add comments for things that look a bit odd, but not sure if they are bugs
TESTS:
- Tighten up a bit of test path coding
MUTEX2:
- Add dawn_mutex_require() to indicate when code is accessing resources
- Use pthread_mutex_trylock() to actively test required mutex are locked
SCORING:
- Simplify how score is tracked
- Streamline some code paths for scoring evaluation
NEIGHBOR REPORT:
- Tweak disassociate / kick NR code to reduce build overhead
- Add set_hostapd_nrdynamic == 2 to build of AP local station NR from what current clients hear elsewhere
- Tighten up hex string length usage for strncpy(), etc
Metadata
Metadata
Assignees
Labels
No labels