Skip to content

New PR on the way: mainly bugs, NRs and user messages #160

Closed
@Ian-Clowes

Description

@Ian-Clowes

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions