Open Irving-cl opened 1 month ago
Hello @Irving-cl, I'm interested in this feature. Our product wants to support Matter over Thread on NCP arch. Hopefully, it will soon be completed.
Hi @Vanperdung, glad to hear that! However I cannot guarantee on the timeline. We will keep tracking the process on this issue.
Will start to submit the code for border routing. Since the code will be non-trivial, I will use this comment to give an abstraction of the implementation for reviewers to review more easily.
https://github.com/openthread/openthread/pull/10638 has added an empty version of these APIs. The remaining work is to implement them.
otPlatInfraIfDiscoverNat64Prefix
will not be implemented temporarily because NAT64 will be implemented later.otPlatInfraIfHasAddress
: we will sync the IPv6 addresses of the infra if on the host to NCP and save them on NCP. When calling this API, we will directly search in the replica on NCP.otPlatInfraIfSendIcmp6Nd
: We will send a spinel property from NCP to the host and let host send the ICMP6 ND message.InfraIfIndex
, isInfraIfRunning
and InfraIfAddresses
to the NCP. The handler on NCP will save the addresses, call otBorderRoutingInit
and otBorderRoutingSetEnabled
.isInfraIfRunning
and InfraIfAddresses
to the NCP whenever there is any changes.otPlatInfraIfRecvIcmp6Nd
to let OT core to handle it.otPlatInfraIfSendIcmp6Nd
is called on NCP, NCP will send this spinel property to the host. The spinel frame contains the InfraIfIndex
, destAddress
, Icmp6NdPacket
.Like the Netif
module, we will add a new InfraIf
module to interact with the infraIf on the platform.
InfraIf
if BackboneInterface
is passed when starting the executable. Then theInfraIf
will send SPINEL_PROP_INFRA_IF_SETUP
to the NCP. We will also provide an API to initialize/Update the Infra after the executable already started (for Android use case).SPINEL_PROP_INFRA_IF_STATE
to the NCP to update the state.InfraIf
module will send a SPINEL_PROP_INFRA_IF_RECV_ICMP6_ND
to the NCP to forward these messages and let NCP handle them.InfraIf
module will provide a method SendIcmp6Nd
which sends the message though the Icmp6 socket as well. The method SendIcmp6Nd
will be called in NcpSpinel
when it receives a spinel frame of SPINEL_PROP_INFRA_IF_SEND_ICMP6_ND
.
Use this issue to track PRs and todo tasks to support NCP in ot-br-posix.