mirror of
https://github.com/espressif/openthread.git
synced 2026-08-24 11:19:51 +00:00
[cli] add pd state (#9757)
This commit is contained in:
@@ -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`
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user