Skip to content

Add optional SD-backed offline OUI labels - #1436

Open
p-keminer wants to merge 2 commits into
justcallmekoko:developfrom
p-keminer:feat/offline-oui-labels
Open

Add optional SD-backed offline OUI labels#1436
p-keminer wants to merge 2 commits into
justcallmekoko:developfrom
p-keminer:feat/offline-oui-labels

Conversation

@p-keminer

Copy link
Copy Markdown

Summary

  • add a compact SD-backed OUI lookup used while rendering AP and station details
  • keep locally administered and unknown addresses explicit and keep WPS Brand separate
  • include a reproducible database builder, documentation, and native tests without committing the generated database

Testing

  • Focused ESP32-C5 tests verified database upload/download hash, known, unknown, and local AP labels, separate WPS Brand, unique station/clone labels, reboot persistence, and unchanged unrelated SD files.
  • The standalone no-database checklist field remained unfilled, so that subcase is not claimed separately.

Copilot AI lite review requested due to automatic review settings August 9, 2026 18:44
@codecov

codecov Bot commented Aug 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 62.85141% with 185 lines in your changes missing coverage. Please review.
✅ Project coverage is 2.16%. Comparing base (66f3c81) to head (0173f1c).
⚠️ Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
esp32_marauder/MarauderOuiSd.cpp 0.00% 100 Missing ⚠️
esp32_marauder/MenuFunctions.cpp 0.00% 57 Missing ⚠️
esp32_marauder/WiFiScan.cpp 0.00% 15 Missing ⚠️
esp32_marauder/MarauderOui.cpp 92.02% 2 Missing and 9 partials ⚠️
test/test_oui_lookup/test_main.cpp 98.93% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           develop   #1436      +/-   ##
==========================================
+ Coverage     0.40%   2.16%   +1.76%     
==========================================
  Files           20      24       +4     
  Lines        17176   17662     +486     
  Branches        11      52      +41     
==========================================
+ Hits            69     382     +313     
- Misses       17103   17266     +163     
- Partials         4      14      +10     
Flag Coverage Δ
firmware-unit-tests 2.16% <62.85%> (+1.76%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an optional, SD-backed offline OUI (IEEE MAC prefix) label system so AP/station UI can display vendor/local/unknown classifications without changing scan/capture/log formats, plus tooling to build a deterministic binary OUI database.

Changes:

  • Introduces a deterministic OUI database builder (tools/build_oui_database.py), documentation, and synthetic unit tests.
  • Adds a native (Unity) test suite for the OUI lookup implementation.
  • Integrates SD-backed OUI label rendering into AP info and station menu labels behind HAS_OUI_LABELS.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/test_build_oui_database.py Adds synthetic, network-free Python unit tests for the database builder and CLI behavior.
tools/OUI_DATABASE.md Documents database provenance/licensing, usage, and the binary format.
tools/build_oui_database.py Implements deterministic conversion from IEEE CSV registries into a compact binary OUI database, with optional explicit download mode.
test/test_oui_lookup/test_main.cpp Adds Unity native tests covering database parsing, lookup behavior, and error handling.
platformio.ini Updates the native test build filter to compile the OUI lookup implementation for the new tests.
esp32_marauder/WiFiScan.cpp Displays OUI identity labels in AP detail output when HAS_OUI_LABELS is enabled.
esp32_marauder/MenuFunctions.cpp Adds compact station menu labels using SD-backed OUI identification when enabled.
esp32_marauder/MarauderOuiSd.h Introduces the SD-backed OUI database wrapper API and label helper declarations.
esp32_marauder/MarauderOuiSd.cpp Implements SD-backed database open/read/lookup and label formatting.
esp32_marauder/MarauderOui.h Introduces the core OUI database reader interface, classification enums, and lookup APIs.
esp32_marauder/MarauderOui.cpp Implements header validation and longest-prefix binary search lookups over the compact database.
esp32_marauder/configs.h Enables HAS_OUI_LABELS for a specific config block (alongside SD).
.gitignore Ignores the generated marauder_oui.bin database artifact.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread esp32_marauder/MarauderOuiSd.h
Comment thread esp32_marauder/MarauderOuiSd.cpp

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 13 changed files in this pull request and generated no new comments.

Suppressed comments (1)

tools/build_oui_database.py:154

  • character.isspace() already catches U+0020 space, so the elif codepoint == 0x20 branch is unreachable. Keeping dead code makes the normalization logic harder to reason about and maintain.
        if 0x21 <= codepoint <= 0x7E:
            output.append(character)
        elif codepoint == 0x20:
            output.append(" ")
        else:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants