mirror of
https://github.com/espressif/openthread.git
synced 2026-07-18 01:54:07 +00:00
[mac-filter] misc enhancements (#5151)
This commit contains some smaller enhancements in `Mac::Filter`:
- Use C++11 range-based `for` loop when iterating over filter entries
- Define `Filter:Mode` enum (mirror of `otMacFilterAddressMode`)
- Change `Filter::SetMode()` and `otLinkFilterSetAddressMode()` to
return `void`.
- Simplify `Filter::Apply()` implementation.
- Add new separate public OT and internal APIs to set/clear default
RSS-In (e.g., `SetDefaultRssIn()`/`ClearDefaultRssIn()`).
- Return no error (instead of `ALREADY`) from `Filter::AddAddress()`
and its corresponding public `otLinkFilter` API when entry is already
present in the list.
- Do not return `NOT_FOUND` error from `Filter::Remove{Address/RssIn}()`.
- Update public `otLinkFilter{API}` documentation.
- Update NCP and CLI code to adopt new `otLinkFilter` APIs.
This commit is contained in:
committed by
GitHub
parent
ce1b8e6762
commit
6f1fc2e6c2
+9
-9
@@ -3755,17 +3755,17 @@ otError Interpreter::ProcessMacFilterAddress(uint8_t aArgsLength, char *aArgs[])
|
||||
if (strcmp(aArgs[0], "disable") == 0)
|
||||
{
|
||||
VerifyOrExit(aArgsLength == 1, error = OT_ERROR_INVALID_ARGS);
|
||||
SuccessOrExit(error = otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_DISABLED));
|
||||
otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_DISABLED);
|
||||
}
|
||||
else if (strcmp(aArgs[0], "whitelist") == 0)
|
||||
{
|
||||
VerifyOrExit(aArgsLength == 1, error = OT_ERROR_INVALID_ARGS);
|
||||
SuccessOrExit(error = otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_WHITELIST));
|
||||
otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_WHITELIST);
|
||||
}
|
||||
else if (strcmp(aArgs[0], "blacklist") == 0)
|
||||
{
|
||||
VerifyOrExit(aArgsLength == 1, error = OT_ERROR_INVALID_ARGS);
|
||||
SuccessOrExit(error = otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_BLACKLIST));
|
||||
otLinkFilterSetAddressMode(mInstance, OT_MAC_FILTER_ADDRESS_MODE_BLACKLIST);
|
||||
}
|
||||
else if (strcmp(aArgs[0], "add") == 0)
|
||||
{
|
||||
@@ -3791,7 +3791,7 @@ otError Interpreter::ProcessMacFilterAddress(uint8_t aArgsLength, char *aArgs[])
|
||||
VerifyOrExit(aArgsLength == 2, error = OT_ERROR_INVALID_ARGS);
|
||||
VerifyOrExit(Hex2Bin(aArgs[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
|
||||
error = OT_ERROR_INVALID_ARGS);
|
||||
SuccessOrExit(error = otLinkFilterRemoveAddress(mInstance, &extAddr));
|
||||
otLinkFilterRemoveAddress(mInstance, &extAddr);
|
||||
}
|
||||
else if (strcmp(aArgs[0], "clear") == 0)
|
||||
{
|
||||
@@ -3857,7 +3857,7 @@ otError Interpreter::ProcessMacFilterRss(uint8_t aArgsLength, char *aArgs[])
|
||||
|
||||
if (strcmp(aArgs[1], "*") == 0)
|
||||
{
|
||||
SuccessOrExit(error = otLinkFilterAddRssIn(mInstance, nullptr, rss));
|
||||
otLinkFilterSetDefaultRssIn(mInstance, rss);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3875,7 +3875,7 @@ otError Interpreter::ProcessMacFilterRss(uint8_t aArgsLength, char *aArgs[])
|
||||
|
||||
if (strcmp(aArgs[1], "*") == 0)
|
||||
{
|
||||
SuccessOrExit(error = otLinkFilterAddRssIn(mInstance, nullptr, rss));
|
||||
otLinkFilterSetDefaultRssIn(mInstance, rss);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3891,19 +3891,19 @@ otError Interpreter::ProcessMacFilterRss(uint8_t aArgsLength, char *aArgs[])
|
||||
|
||||
if (strcmp(aArgs[1], "*") == 0)
|
||||
{
|
||||
SuccessOrExit(error = otLinkFilterRemoveRssIn(mInstance, nullptr));
|
||||
otLinkFilterClearDefaultRssIn(mInstance);
|
||||
}
|
||||
else
|
||||
{
|
||||
VerifyOrExit(Hex2Bin(aArgs[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
|
||||
error = OT_ERROR_INVALID_ARGS);
|
||||
|
||||
SuccessOrExit(error = otLinkFilterRemoveRssIn(mInstance, &extAddr));
|
||||
otLinkFilterRemoveRssIn(mInstance, &extAddr);
|
||||
}
|
||||
}
|
||||
else if (strcmp(aArgs[0], "clear") == 0)
|
||||
{
|
||||
otLinkFilterClearRssIn(mInstance);
|
||||
otLinkFilterClearAllRssIn(mInstance);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user