Packet Filter V2 - #9
Conversation
Add Github Security policy
Configure GitHub Stale Bot
Added some missing CLI commands
Moves location for Filter Test Suite.
Formatting. Different output from over Serial vs LoRa, no need for compact view over Serial.
|
It does what the documentation says it will do. I'm offering prebuilt firmware to test in our meshcore community. I have created a simple page with documentation (filter.md in different form) and configurator for this functionality: |
All rules are disabled by default, they have to be enabled after being entered. |
|
Ah yes, I have added a section that is highlighting this behavior. Thanks for pointing it out. |
file format on /filter_rules.bin
Refactor builds via GitHub Actions to be super fast
|
It would be great to have it merged soon. Do these filters support 2-byte and 3-byte hashes? (to avoid blocking too much) |
Yes, but they can't be mixed in the same line. |
Adds a small allocation for groupdata packets for the Meshcore firmware for the StreamSensor product. It was previously a LoRaWAN platform, and we've moved to Meshcore.
|
Testing for a couple weeks now and also requested a update to add multiple channels in one filter rule. That is working great with 4 channels now in one rule. just like 4 repeaters in one rule. |
Add StreamSensor allocation for GroupData
Revert "Add StreamSensor allocation for GroupData"
e89b869 to
16fbf33
Compare
…rse-error fix: JSON parsing regression in build.sh
…p-privacy Clarify hashtag privacy and group sender identity
Packet Filter Engine
Adds a flexible rule-based packet filter engine to the repeater firmware.
Rules can match on route type, payload type, hop count, path hash size, last-hop repeater, channel hash, SNR and RSSI. Each rule supports an optional AND condition for combined matching. A configurable default policy (allow/drop) applies when no rule matches.
Rules are added disabled by default and must be explicitly enabled. All rules survive reboot via SPIFFS/LittleFS persistence.
New files
FilterRule.h— rule struct, enums and constantsFilterParser.h/.cpp— command parserChannelFilter.h/.cpp— rule storage, evaluation, persistence and CLI dispatchChanges to existing files
MyMesh.h— addedChannelFilter _filtermember and includeMyMesh.cpp— added_filter.load()inbegin(), filter evaluation infilterRecvFloodPacket(), andfiltercommand routing inhandleCommand()CLI
Commands are available over the remote CLI via the
filterprefix. See FILTER.md for full command reference and examples.Testing
A standalone test suite is included in
filter_test_suite/. See filter_test_suite/README.md for build instructions.