[cli] add pd state (#9757)

This commit is contained in:
SherySheng
2024-01-11 10:13:24 -08:00
committed by GitHub
parent 2a2545348d
commit 5576e0ce0d
2 changed files with 95 additions and 0 deletions
+32
View File
@@ -12,6 +12,7 @@ Usage : `br [command] ...`
- [nat64prefix](#nat64prefix)
- [omrprefix](#omrprefix)
- [onlinkprefix](#onlinkprefix)
- [pd](#pd)
- [prefixtable](#prefixtable)
- [rioprf](#rioprf)
- [routeprf](#routeprf)
@@ -33,6 +34,7 @@ disable
enable
omrprefix
onlinkprefix
pd
prefixtable
rioprf
routeprf
@@ -176,6 +178,36 @@ fd14:1078:b3d5:b0b0:0:0::/96
Done
```
### pd
Usage: `br pd [enable|disable]`
Enable/Disable the DHCPv6 PD.
```bash
> br pd enable
Done
> br pd disable
Done
```
Usage: `br pd state`
Get the state of DHCPv6 PD.
`OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE` is required.
- `disabled`: DHCPv6 PD is disabled on the border router.
- `stopped`: DHCPv6 PD in enabled but won't try to request and publish a prefix.
- `running`: DHCPv6 PD is enabled and will try to request and publish a prefix.
```bash
> br pd state
running
Done
```
### prefixtable
Usage: `br prefixtable`
+63
View File
@@ -435,6 +435,66 @@ exit:
return error;
}
#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
template <> otError Br::Process<Cmd("pd")>(Arg aArgs[])
{
otError error = OT_ERROR_NONE;
/**
* @cli br pd (enable,disable)
* @code
* br pd enable
* Done
* @endcode
* @code
* br pd disable
* Done
* @endcode
* @cparam br pd @ca{enable|disable}
* @par api_copy
* #otBorderRoutingDhcp6PdSetEnabled
*
*/
if (Interpreter::GetInterpreter().ProcessEnableDisable(aArgs, otBorderRoutingDhcp6PdSetEnabled) == OT_ERROR_NONE)
{
}
/**
* @cli br pd state
* @code
* br pd state
* running
* Done
* @endcode
* @par api_copy
* #otBorderRoutingDhcp6PdGetState
*/
else if (aArgs[0] == "state")
{
static const char *const kDhcpv6PdStateStrings[] = {
"disabled", // (0) OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED
"stopped", // (1) OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED
"running", // (2) OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
};
static_assert(0 == OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED,
"OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED value is not expected!");
static_assert(1 == OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED,
"OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED value is not expected!");
static_assert(2 == OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING,
"OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING value is not expected!");
OutputLine("%s", Stringify(otBorderRoutingDhcp6PdGetState(GetInstancePtr()), kDhcpv6PdStateStrings));
}
else
{
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
return error;
}
#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
/**
* @cli br routers
* @code
@@ -638,6 +698,9 @@ otError Br::Process(Arg aArgs[])
#endif
CmdEntry("omrprefix"),
CmdEntry("onlinkprefix"),
#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
CmdEntry("pd"),
#endif
CmdEntry("prefixtable"),
CmdEntry("rioprf"),
CmdEntry("routeprf"),