There is a set of possible circumstances that we need to think about for infrastructure-provided NAT64:
There is PD support, and infra is providing NAT64
There is no PD support, infra is providing NAT64, and there is no IPv4 on infra
There is no PD support, infra is providing NAT64, and there is IPv4 on infra
There is PD support, infra is not providing NAT64, infra is providing IPv4
In case (1), we can (and should) use the infrastructure-provided NAT64 service.
In case (2), we have no way to do NAT64, because we don’t have a infrastructure-routable OMR prefix on the Thread mesh. So in this case, reachability to the cloud, both for IPv4 and IPv6, is not available.
In case (3), although infrastructure is providing NAT64, we can’t use it. There is no IPv6 reachability to the internet, but a BR can provide its own NAT64 service to enable reachability to the internet over IPv4.
In case (4), BR can provide NAT64 for IPv4 reachability to the internet, but additionally IPv6 reachability to the internet is present.
Add text to the document to describe how we handle these situations, including state machine if appropriate.
There is a set of possible circumstances that we need to think about for infrastructure-provided NAT64:
In case (1), we can (and should) use the infrastructure-provided NAT64 service.
In case (2), we have no way to do NAT64, because we don’t have a infrastructure-routable OMR prefix on the Thread mesh. So in this case, reachability to the cloud, both for IPv4 and IPv6, is not available.
In case (3), although infrastructure is providing NAT64, we can’t use it. There is no IPv6 reachability to the internet, but a BR can provide its own NAT64 service to enable reachability to the internet over IPv4.
In case (4), BR can provide NAT64 for IPv4 reachability to the internet, but additionally IPv6 reachability to the internet is present.
Add text to the document to describe how we handle these situations, including state machine if appropriate.