CDRouter Apple HomeKit Test Summaries (Full)

Test Case Descriptions

  • Modules: 2
  • Test Cases: 97

Below is a full description of the testcases in each module


homekit.tcl

Apple HomeKit-enabled Router Certification Test Plan

Test Name Synopsis
HomeKit Test TCSR003 homekit_TCSR003 HomeKit Test TCSR003


    Test Procedure:
    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Use HAT to unpair with the router accessory.
    Step 3. Use HAT to attempt to pair with the router accessory without an ownership token.
    Step 4. Use HAT to attempt to pair with the router accessory with an invalid ownership token.

    Test Metrics:

    1. After step 3, the trace view in HAT shows a M2 event that includes
       PairingTypeFlags with Bit 30 set.
    2. After step 4, the trace view in HAT shows a M6 event that contains
       error TLV 070108 <kTLVError_OwnershipFailure>.
Test Name Synopsis
HomeKit Test TCSR004 homekit_TCSR004 HomeKit Test TCSR004


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Perform a port scan on the LAN from a secondary LAN client using TCP and UDP.
    Step 3. Perform a ICMP ping from the secondary LAN client to the LAN client.
    Step 4. Start a HAP client on the LAN client and allow HAT to discover it.
    Step 5. Apply network rules file TCSR004.json through HAT to the client created in step 2.
    Step 6. Start a HTTP server on port 2234 on the HAP client started in step 2.
    Step 7. Perform a HTTP Get from a second LAN client on the LAN client started in step 2 using port 2234.
    Step 8. Perform a UDP Echo from a second LAN client on the LAN client started in step 2.
    Step 9. Perform a ICMP ping from a second LAN client on the LAN client started in step 2.
    Step 10. Perform a port scan on the LAN from a secondary LAN client using TCP and UDP.
    Step 11. Perform a ICMP ping from the secondary LAN client to the LAN client.

    Test Metrics:

    1. Ensure no ports are blocked in step 2
    2. Ensure ICMP is not blocked in step 3.
    4. Ensure the HTTP Get in step 7 does succeed.
    5. Ensure the UDP echo in step 8 does not succeed.
    6. Ensure the ICMP ping in step 9 does not succeed.
    7. Ensure only port 2234 over TCP is not blocked in step 10.
    8. Ensure ICMP is blocked in step 11.
Test Name Synopsis
HomeKit Test TCSR006 homekit_TCSR006 HomeKit Test TCSR006


    Test Procedure:

    Step 1. Ensure the CDRouter LAN client is configured to connect to
            the guest network of the HomeKit enabled router.
    Step 2. Send a mDNS PTR request from the LAN client for _hap._tcp.local.

    Test Metrics:

    1. Ensure that after step 2 the HomeKit enabled router does not
       respond to the mDNS request.
Test Name Synopsis
HomeKit Test TCSR007 homekit_TCSR007 HomeKit Test TCSR007


    Test Procedure:

    Step 1. Ensure the HAP client is configured to connect to the satellite node
            on the router's network.
    Step 2. Send a mDNS query for _hap._tcp.local clients from the HAP client.

    Test Metrics:

    1. Ensure the router responds to the mDNS query through the satellite node.
Test Name Synopsis
HomeKit Test TCSR008 homekit_TCSR008 HomeKit Test TCSR008


    Test Procedure:

    Step 1. Send a mDNS PTR request from a host on the WAN for _hap._tcp.local.
            to the router.

    Test Metrics:

    1. Ensure that after step 1 the HomeKit enabled router does not
       respond to the mDNS request.
Test Name Synopsis
HomeKit Test TCSR010 homekit_TCSR010 HomeKit Test TCSR010


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Confgure the Network Client Profile 1 using '010100' for the WAN Firewall
            config and '0101000' for the LAN Firewall config with a PSK of '11111111'.
    Step 4. Attempt to reassocicate the HAP client to the router's wireless network
            using the new PSK.
    Step 5. Attempt to reassocicate the HAP client to the router's wireless network
            using the original PSK.

    Test Metrics:

    1. The HAP client is able to sucessfully associate to the wireless network in step 4.
    2. The HAP client is able to sucessfully associate to the wireless network in step 5.
Test Name Synopsis
HomeKit Test TCSR011 homekit_TCSR011 HomeKit Test TCSR011


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Connect an additonal secondary client to the LAN network.
    Step 4. Perform a port scan on the HAP client created in step 2 from a
            host on the WAN.
    Step 5. Perform a port scan on the secondary LAN client created in step 3 from
            a host on the WAN.
    Step 6. Confgure the Network Client Profile using '0101010200' for the WAN Firewall
            config and '0101000' for the LAN Firewall config.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure traffic from the WAN side is not blocked in step 4.
    2. Ensure traffic from the WAN side is not blocked in step 5.
    3. Ensure traffic from the WAN side is blocked in step 7.
    4. Ensure traffic from the WAN side is blocked in step 8.
Test Name Synopsis
HomeKit Test TCSR012 homekit_TCSR012 HomeKit Test TCSR012


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR012.json network rules file to the HAP client
            created in step 2.
    Step 4. Use the HAP client to fetch https://www.engadget.com.
    Step 5. Use the HAP client to fetch http://www.facebook.com.
    Step 6. Use the HAP client to fetch https://www.gizmodo.com.
    Step 7. Use the HAP client to fetch https://www.techcrunch.com.
    Step 8. Use the HAP client to fetch https://aws.amazon.com.
    Step 9. Configure a host on the WAN with IP 200.0.0.10 with an HTTP server running on port 8000
    Step 10. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 11. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 12. Perform a ICMP ping from the HAP LAN client started in step 2 to the host created in step 9.
    Step 13. Reconfigure the host from step 9 to have IP 200.0.0.11 and a HTTP server running on port 8101
    Step 14. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 15. Reconfigure the host from step 9 to have IP 200.0.0.11 and a HTTP server running on port 8181
    Step 16. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 17. Reconfigure the host from step 9 to have IP 200.0.0.16 and a HTTP server running on port 8200
    Step 18. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 19. Reconfigure the host from step 9 to have IP 200.0.0.20 and a HTTP server running on port 8200
    Step 20. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 21. Reconfigure the host from step 9 to have IP 200.0.0.25 and a HTTP server running on port 8300
    Step 22. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 23. Reconfigure the host from step 9 to have IP 200.0.0.27 and a HTTP server running on port 8300
    Step 24. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 25. Reconfigure the host from step 9 to have IP 200.0.0.30 and a HTTP server running on port 11000
    Step 26. Repeat steps 10-12 using the IP and port reconfigured in step 13.

    Test Metrics:

    1. In step 4 ensure the HAP client is successful in fetching the remote site.
    2. In step 5 ensure the HAP client is unsuccessful in fetching the remote site.
    3. In step 6 ensure the HAP client is successful in fetching the remote site.
    4. In step 7 ensure the HAP client is successful in fetching the remote site.
    5. In step 8 ensure the HAP client is successful in fetching the remote site.
    6. Ensure step 10 is successful in all interations.
    7. Ensure step 11 is unsuccessful in all interations.
    8. Ensure step 12 is unsuccessful in all interations.
Test Name Synopsis
HomeKit Test TCSR013 homekit_TCSR013 HomeKit Test TCSR013


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR013.json network rules file to the HAP client
            created in step 2.
    Step 4. Configure a host on the WAN with IP 200.0.0.10 with an HTTP server running on port 8000
    Step 5. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 6. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 7. Perform a ICMP ping from the HAP LAN client started in step 2 to the host created in step 9.
    Step 8. Reconfigure the host from step 9 to have IP 200.0.0.11 and a HTTP server running on port 8101
    Step 9. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 10. Reconfigure the host from step 9 to have IP 200.0.0.11 and a HTTP server running on port 8181
    Step 11. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 12. Reconfigure the host from step 9 to have IP 200.0.0.16 and a HTTP server running on port 8200
    Step 13. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 14. Reconfigure the host from step 9 to have IP 200.0.0.20 and a HTTP server running on port 8200
    Step 15. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 16. Reconfigure the host from step 9 to have IP 200.0.0.25 and a HTTP server running on port 8300
    Step 17. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 18. Reconfigure the host from step 9 to have IP 200.0.0.27 and a HTTP server running on port 8300
    Step 19. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 20. Reconfigure the host from step 9 to have IP 200.0.0.30 and a HTTP server running on port 11000
    Step 21. Repeat steps 10-12 using the IP and port reconfigured in step 13.

    Test Metrics:

    1. Ensure step 5 is unsuccessful in all interations.
    2. Ensure step 6 is successful in all interations.
    3. Ensure step 7 is unsuccessful in all interations.
Test Name Synopsis
HomeKit Test TCSR014 homekit_TCSR014 HomeKit Test TCSR014


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR014.json network rules file to the HAP client
            created in step 2.
    Step 4. Send a ICMP ping from the HAP client started in step 2 to www.engadget.com
    Step 5. Send a ICMP ping from the HAP client started in step 2 to www.cnn.com
    Step 6. Send a ICMP ping from the HAP client started in step 2 to www.gizmodo.com
    Step 7. Send a ICMP ping from the HAP client started in step 2 to www.techcrunch.com
    Step 8. Send a ICMP ping from the HAP client started in step 2 to store.amazon.com
    Step 9. Send a ICMP ping from the HAP client started in step 2 to www.facebook.com
    Step 10. Send a ICMP ping from the HAP client started in step 2 to www.apple.com
    Step 11. Configure a host on the WAN with IP 200.0.0.10 with an HTTP server running on port 8000
    Step 12. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 11 using port 8000.
    Step 13. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 11 using port 8000.
    Step 14. Perform a ICMP ping from the HAP LAN client started in step 2 to the host created in step 11.

    Test Metrics:

    1. The ICMP ping in step 4 is successful.
    2. The ICMP ping in step 5 is successful.
    3. The ICMP ping in step 6 is successful.
    4. The ICMP ping in step 7 is successful.
    5. The ICMP ping in step 8 is successful.
    6. The ICMP ping in step 9 is unsuccessful.
    7. The ICMP ping in step 10 is unsuccessful.
    8. The HTTP get in step 12 is unsuccessful.
    8. The UDP echo in step 13 is unsuccessful.
    8. The ICMP ping in step 14 is successful.
Test Name Synopsis
HomeKit Test TCSR015 homekit_TCSR015 HomeKit Test TCSR015


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Connect a second client to the LAN network.
    Step 4. Start a multicast server on the HAP client listening on the 239.255.1.3 group.
    Step 5. Send UDP multicast traffic to 239.255.1.3 from the secondary LAN client.
    Step 6. Send TCP traffic from the secondary LAN client to the HAP client.
    Step 7. Use HAT to apply the TCSR015.json network rules file to the HAP client
            created in step 2.
    Step 8. Repeat steps 5 and 6.

    Test Metrics:

    1. UDP multicast traffic is not blocked in step 6.
    2. TCP traffic is not blocked in step 7.
    3. UDP multicast traffic is not blocked after the network rule has been applied in step 7.
    4. TCP traffic is blocked after the network rule has been applied in step 7.
Test Name Synopsis
HomeKit Test TCSR016 homekit_TCSR016 HomeKit Test TCSR016


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Connect a second client to the LAN network.
    Step 4. Start a multicast server on the secondary LAN client listening on the 239.255.1.3 group.
    Step 5. Send UDP multicast traffic to 239.255.1.3 from the HAP client.
    Step 6. Send TCP traffic from the HAP client to the secondary LAN client.
    Step 7. Use HAT to apply the TCSR016.json network rules file to the HAP client
            created in step 2.
    Step 8. Repeat steps 5 and 6.

    Test Metrics:

    1. UDP multicast traffic is not blocked in step 6.
    2. TCP traffic is not blocked in step 7.
    3. UDP multicast traffic is not blocked after the network rule has been applied in step 7.
    4. TCP traffic is blocked after the network rule has been applied in step 7.
Test Name Synopsis
HomeKit Test TCSR017 homekit_TCSR017 HomeKit Test TCSR017


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR017.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only port 9000 over TCP is not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR018 homekit_TCSR018 HomeKit Test TCSR018


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR018.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only ports 9000-9100 over TCP are not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR019 homekit_TCSR019 HomeKit Test TCSR019


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR019.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only ports 9000 over UDP is not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR020 homekit_TCSR020 HomeKit Test TCSR020


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR020.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only ports 9000-9100 over UDP are not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR021 homekit_TCSR021 HomeKit Test TCSR021


       Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR021.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure all ports are blocked in the port scan in step 7.
    4. Ensure the ICMP ping succeeds in step 8.
Test Name Synopsis
HomeKit Test TCSR022 homekit_TCSR022 HomeKit Test TCSR022


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR022.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only port 9000 over TCP is not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR023 homekit_TCSR023 HomeKit Test TCSR023


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR023.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only ports 9000-9100 over TCP are not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR024 homekit_TCSR024 HomeKit Test TCSR024


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR024.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only port 9000 over UDP is not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR025 homekit_TCSR025 HomeKit Test TCSR025


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR025.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure only ports 9000-9100 over UDP are not blocked in the port scan in step 7.
    4. Ensure the ICMP ping fails in step 8.
Test Name Synopsis
HomeKit Test TCSR026 homekit_TCSR026 HomeKit Test TCSR026


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR026.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure all ports blocked in the port scan in step 7.
    4. Ensure the ICMP ping succeeds in step 8.
Test Name Synopsis
HomeKit Test TCSR027 homekit_TCSR027 HomeKit Test TCSR027


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 to the HAP client.
    Step 5. Perform an ICMP ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR027.json network rules file to the HAP client started
            in step 2.
    Step 7. Start a DNS-SD server on the HAP client started in step 2 with a _http._tcp service
            advertised port 80.
    Step 8. Start a DNS-SD client on the secondary LAN client started in step 3.
    Step 9. Send a mDNS query to the mDNS multicast group from the mDNS client started in step
            8 for _http._tcp.local.
    Step 10. Send a HTTP Get to the HAP client from the secondary LAN client.
    Step 11. Repeat step 4.
    Step 12. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure the mDNS query in step 9 is successful.
    4. Ensure the HTTP GET in step 10 is successful.
    5. Ensure only port 80 is not blocked in the port scan in step 11.
    6. Ensure the ICMP ping in step 12 is unsuccessful.
Test Name Synopsis
HomeKit Test TCSR028 homekit_TCSR028 HomeKit Test TCSR028


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client to the secondary LAN client added in step 2.
    Step 5. Perform an ICMP ping from the LAN client to the HAP client added in step 2.
    Step 6. Use HAT to apply the TCSR028.json network rules file to the HAP client started
            in step 2.
    Step 7. Start a SSDP server on the HAP client started in step 2.
    Step 8. Start a SSDP client on the secondary LAN client started in step 3.
    Step 9. Send a SSDP M-SEARCH to the SSDP multicast group from the secondary LAN client started in step 8.
    Step 10. Repeat step 4.
    Step 11. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure the SSDP M-SEARCH reaches the HAP client.
    5. Ensure all ports are blocked in step 10.
    6. Ensure the ICMP ping in step 11 is unsuccessful.
Test Name Synopsis
HomeKit Test TCSR029 homekit_TCSR029 HomeKit Test TCSR029


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR029.json network rules file to the HAP client started
            in step 2.
    Step 7. Start a DNS-SD server on the secondary LAN client started in step 3 with a _http._tcp service
            advertised port 80.
    Step 8. Start a DNS-SD client on the HAP client started in step 2.
    Step 9. Send a mDNS query to the mDNS multicast group from the HAP client started in step
            2 for _http._tcp.local.
    Step 10. Send a HTTP Get to the secondary LAN client from the HAP client.
    Step 11. Repeat step 4.
    Step 12. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure the mDNS query in step 9 is successful.
    4. Ensure the HTTP GET in step 10 is successful.
    5. Ensure only port 80 is not blocked in the port scan in step 11.
    6. Ensure the ICMP ping in step 12 is unsuccessful.
Test Name Synopsis
HomeKit Test TCSR030 homekit_TCSR030 HomeKit Test TCSR030


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Use HAT to apply the TCSR030.json network rules file to the HAP client started
            in step 2.
    Step 7. Start a SSDP server on the secondary LAN client started in step 3.
    Step 8. Start a SSDP client on the HAP client started in step 2.
    Step 9. Send a SSDP M-SEARCH to the SSDP multicast group from the HAP client started in step 2.
    Step 10. Repeat step 4.
    Step 11. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure the SSDP M-SEARCH reaches the secondary LAN client.
    5. Ensure all ports are blocked in step 10.
    6. Ensure the ICMP ping in step 11 is unsuccessful.
Test Name Synopsis
HomeKit Test TCSR031 homekit_TCSR031 HomeKit Test TCSR031


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Send a DNS request from the HAP for www.engadget.com
    Step 4. Use HAT to apply the TCSR031.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

    1. Ensure the DNS request in step 3 is successful.
    2. Ensure the DNS request in step 5 is successful and all TTL values are
       clamped to 10 by the router.
Test Name Synopsis
HomeKit Test TCSR032 homekit_TCSR032 HomeKit Test TCSR032


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Send a recursive DNS request from the HAP for api.xbcs.net
    Step 4. Use HAT to apply the TCSR032.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

    1. Ensure the DNS request in step 3 is successful.
    2. Ensure the DNS request in step 5 is successful and all TTL values are
       clamped to 10 by the router and the response contains both an A/AAAA and
       CNAME anwser.
Test Name Synopsis
HomeKit Test TCSR033 homekit_TCSR033 HomeKit Test TCSR033


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Send a DNS request from the HAP for api.xbcs.net

    Test Metrics:

    1. Ensure the DNS request in step 3 is successful and that the TTL values are not
       clamped to 10 by the router.
Test Name Synopsis
HomeKit Test TCSR034 homekit_TCSR034 HomeKit Test TCSR034


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR034.json network rules file to the HAP client started
            in step 2.
    Step 4. Send a  UPnP action from the HAP client to the router accessory to add a port mapping
            from external port 3333 to internal port 22.
    Step 5. Attempt to establish a connection through the port mapping.

    Test Metrics:

    1. The UPnP action fails and a port mapping cannot be created.
    2. A connection through the port mapping in step 5 cannot be established.
Test Name Synopsis
HomeKit Test TCSR035 homekit_TCSR035 HomeKit Test TCSR035


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR035.json network rules file to the HAP client started
            in step 2.
    Step 4. Send a  UPnP action from the HAP client to the router accessory to add a port mapping
            from external port 3333 to internal port 22.
    Step 5. Attempt to establish a connection through the port mapping.

    Test Metrics:

    1. The UPnP action succeeds and a port mapping is created.
    2. A connection through the port mapping in step 5 successfully established.
Test Name Synopsis
HomeKit Test TCSR036 homekit_TCSR036 HomeKit Test TCSR036


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR036.json network rules file to the HAP client started
            in step 2.
    Step 4. Configure a second LAN client on the LAN to act as a DNS server
    Step 5. Using the third-party vendor app configure a DNS server on the LAN at the
            address specified by the prompt.
    Step 6. Configure an entry in the DNS server from step 5 to point example.com to
            a host on the WAN.
    Step 7. Perform a HTTP GET for example.com from the HAP client.
    Step 8. Update the IP address of the host of example.com and update the DNS entry to be correct.
    Step 9. Repeat step 7.

    Test Metrics:

    1. Both HTTP GETs should succeed.
Test Name Synopsis
HomeKit Test TCSR037 homekit_TCSR037 HomeKit Test TCSR037


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR037.json network rules file to the HAP client started
            in step 2.
    Step 4. Perform a HTTP GET from the HAP client to a secondary LAN client on port 9000.
    Step 5. Perform a UDP echo from the HAP client to a secondary LAN client on port 9000.
    Step 6. Perform a ICMP ping from the HAP client to a secondary LAN client.
    Step 7. Perform a HTTP GET from a secondary LAN client to the HAP client on port 9005.
    Step 8. Perform a UDP echo from a secondary LAN client to the HAP client on port 9005.
    Step 9. Perform a ICMP ping from a secondary LAN client to the HAP client.
    Step 10. Perform a port scan of the HAP client from the secondary LAN client.
    Step 11. Perform a port scan of a secondary LAN client from the HAP client.
    Step 12. Reconfigure the HAP client to have a different IP address.
    Step 13. Repeat steps 4 through 11.

    Test Metrics:

    1. The HTTP GET in step 4 is successful before and after step 13.
    2. The UDP echo in step 5 is not successful before and after step 13.
    3. The ICMP ping in step 6 is not successful before and after step 13.
    4. The port scan in step 10 shows only TCP port 9005 is allowed before and after step 13.
    4. The port scan in step 11 shows only TCP port 9000 is allowed before and after step 13.
Test Name Synopsis
HomeKit Test TCSR038 homekit_TCSR038 HomeKit Test TCSR038


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR038.json network rules file to the HAP client started
            in step 2.
    Step 4. Perform a HTTP GET from the HAP client to a secondary LAN client on port 9000.
    Step 5. Perform a UDP echo from the HAP client to a secondary LAN client on port 9000.
    Step 6. Perform a ICMP ping from the HAP client to a secondary LAN client.
    Step 7. Perform a HTTP GET from a secondary LAN client to the HAP client on port 9005.
    Step 8. Perform a UDP echo from a secondary LAN client to the HAP client on port 9005.
    Step 9. Perform a ICMP ping from a secondary LAN client to the HAP client.
    Step 10. Perform a port scan of the HAP client from the secondary LAN client.
    Step 11. Perform a port scan of a secondary LAN client from the HAP client.
    Step 12. Reconfigure the HAP client to have a different IP address.
    Step 13. Repeat steps 4 through 11.

    Test Metrics:

    1. The HTTP GET in step 4 is not successful before and after step 13.
    2. The UDP echo in step 5 is successful before and after step 13.
    3. The ICMP ping in step 6 is not successful before and after step 13.
    4. The port scan in step 10 shows only UDP port 9005 is allowed before and after step 13.
    4. The port scan in step 11 shows only UDP port 9000 is allowed before and after step 13.
Test Name Synopsis
HomeKit Test TCSR039 homekit_TCSR039 HomeKit Test TCSR039


    Test Procedure:

    Step 1. Ensure both the gateway node and satellite node are connected and configured to mesh
    Step 2. Start discovery on HAT.

    Test Metrics:

    1. After step 2 both the gateway and satellite nodes are found by HAT.
Test Name Synopsis
HomeKit Test TCSR041 homekit_TCSR041 HomeKit Test TCSR041


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Attempt to pair with the HAP client from step 2.
    Step 4. Use HAT to apply the TCSR041.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

    1. Before and after the network is applied in step 4 HAT is able to send HAP traffic
       to the HAP client.
Test Name Synopsis
HomeKit Test TCSR042 homekit_TCSR042 HomeKit Test TCSR042


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR042.json network rules file to the HAP client started
            in step 2 with the Restricted flag set.
    Step 4. Perform a TCP port scan of the HAP client from a second LAN client.
    Step 5. Perform a UDP port scan of the HAP client from a second LAN client.
    Step 6. Attempt to ping the HAP client from a second LAN client.
    Step 7. Perform a TCP scan of a second LAN client from the HAP Client.
    Step 8. Perform a UDP scan of a second LAN client from the HAP Client.
    Step 9. Attempt to ping a second LAN client from the HAP client.

    Test Metrics:

    1. In steps 4 through 9 no traffic is permitted to flow to or from the HAP client.
Test Name Synopsis
HomeKit Test TCSR043 homekit_TCSR043 HomeKit Test TCSR043


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.

    Test Metrics:

    1. Verify 'Version' is a characteristic under the 'WiFi Router' service
    2. Verify 'Supported Router Configuration' is a characteristic under the 'WiFi Router' service
    3. Verify 'Configured Name' is a characteristic under the 'WiFi Router' service
    4. Verify 'Router Status' is a characteristic under the 'WiFi Router' service
    5. Verify 'WAN Configuration List' is a characteristic under the 'WiFi Router' service
    6. Verify 'WAN Status List' is a characteristic under the 'WiFi Router' service
    7. Verify 'Managed Network Enable' is a characteristic under the 'WiFi Router' service
    8. Verify 'Network Client Profile Control' is a characteristic under the 'WiFi Router' service
    9. Verify 'Network Client Status Control' is a characteristic under the 'WiFi Router' service
    10. Verify 'Network Access Violation Control' is a characteristic under the 'WiFi Router' service

    Note:

    This is manual test case, the a HAP client will be started and the Discover action will be
    called on the router accessory, but the presense of the aformentioned characteristics must be verified
    manually.
Test Name Synopsis
HomeKit Test TCSR044 homekit_TCSR044 HomeKit Test TCSR044


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 3. Repeat step 3 including an additional Client profile addition in the TLV
            to bulk add multiple profile.
    Step 4. Use HAT to send a timed write to the router accessory with an update operation
            and a remove operation on the same profile created in step 3.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the timed write in step 4 is successful.
    3. Ensure the timed write in step 5 does not succeed.
Test Name Synopsis
HomeKit Test TCSR045 homekit_TCSR045 HomeKit Test TCSR045


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to list the members of
            the Client Group Identifer 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response from step 5 contains the client profile 1.
Test Name Synopsis
HomeKit Test TCSR046 homekit_TCSR046 HomeKit Test TCSR046


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to read the configuration of
            the Client Profile 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response from step 5 contains the network client
       profile configuration for Network Client Profile 1.
Test Name Synopsis
HomeKit Test TCSR047 homekit_TCSR047 HomeKit Test TCSR047


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to remove
            Client Profile 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response does not contain information about the removed
       client profile.
Test Name Synopsis
HomeKit Test TCSR048 homekit_TCSR048 HomeKit Test TCSR048


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to update
            Client Profile 1 to use the Client Group identifier of 3 and a WAN and LAN
            firewall configuration of 0101010200.
    Step 6. Using the HAP client created in step 2, attempt to reach a restricted host on
            the WAN.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the timed write in step 5 is successful.
    4. Ensure the HAP client cannot access a restricted host in step 6.
Test Name Synopsis
HomeKit Test TCSR049 homekit_TCSR049 HomeKit Test TCSR049


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with a client profile ID of 1 from the router.
    Step 6. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with the IP of the HAP Client from the router.
    Step 7. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with the MAC of the HAP client from the router.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the client information returned from the router in step 5 matches the
       HAP client.
    4. Ensure the client information returned from the router in step 6 matches the
       HAP client.
    5. Ensure the client information returned from the router in step 7 matches the
       HAP client.
Test Name Synopsis
HomeKit Test TCSR050 homekit_TCSR050 HomeKit Test TCSR050


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 3
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.
    Step 6. Use HAT to list the network access violations control.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 5.
    4. Ensure the router returns an entry with a timestamp that matches step 5.
Test Name Synopsis
HomeKit Test TCSR051 homekit_TCSR051 HomeKit Test TCSR051


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.
    Step 6. Use HAT to list the network access control violations.
    Step 7. Use HAT to send a reset to the Network Access Violations Control for the
            client identifier of 1.
    Step 8. Use HAT to list the network access violations control.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 5.
    4. Ensure the router returns an entry with a timestamp that matches step 5.
    5. Ensure the router does not return an entry with a timestamp that matches step 5,
       after the Network Access Violation Control has been reset.
Test Name Synopsis
HomeKit Test TCSR052 homekit_TCSR052 HomeKit Test TCSR052


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2 with the Full Access flag set.
    Step 4. Start a TCP session between a second LAN client and the HAP client.
    Step 5. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2.
    Step 6. Reset the Network Rules using the Full Access Flag.
    Step 7. Start a TCP session between a second LAN client and the HAP client.
    Step 8. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2 with the Restricted flag set.

    Test Metrics:

    1. Verify a TCP session could be established between the second LAN client and the
       HAP client in step 4.
    2. Verify the TCP session is not severed after step 5.
    3. Verify a TCP session could be established between the second LAN client and the
       HAP client in step 6.
    4. Verify the TCP session is severed after step 7.
Test Name Synopsis
HomeKit Test TCSR053 homekit_TCSR053 HomeKit Test TCSR053


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR053.json network rules file to the HAP client
            created in step 2.
    Step 4. Create a second HAP client and allow it to be discovered by the router accessory.
    Step 5. Use HAT to apply the TCSR053.json network rules file to the second HAP client
            created in step 4.
    Step 5. Perform a HTTP Get from the second HAP client started in step 4 to the HAP client created in step 2 using port 9000.
    Step 5. Perform a HTTP Get from the HAP client created in step 2 to the second HAP client started in step 4 using port 9000.
    Step 8. Perform a port scan on the HAP client created in step 2 from the second HAP client created in step 4.

    Test Metrics:

    1. Ensure the HTTP GET is successful in step 5.
    2. Ensure the HTTP GET is successful in step 6.
    3. Ensure only port 9000 over TCP is not block in the port scan during step 8.
Test Name Synopsis
HomeKit Test TCSR054 homekit_TCSR054 HomeKit Test TCSR054


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to enable Event Notifcations for Network Violations.
    Step 6. Use HAT to send a reset to the Network Access Violations Control for the
            client identifier of 1.
    Step 7. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 6.
    5. Ensure the router sends a Network Access Violation for the attempted access
       in step 7.

homekit-v6.tcl

IPv6 Apple HomeKit-enabled Router Certification Test Plan

Test Name Synopsis
HomeKit TCSR003 IPv6 homekit_TCSR003_ipv6 HomeKit TCSR003 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Use HAT to unpair with the router accessory.
    Step 3. Use HAT to attempt to pair with the router accessory without an ownership token.
    Step 4. Use HAT to attempt to pair with the router accessory with an invalid ownership token.

    Test Metrics:

    1. After step 3, the trace view in HAT shows a M2 event that includes PairingTypeFlags with Bit 30 set.
    2. After step 4, the trace view in HAT shows a M6 event that contains error TLV 070108 <kTLVError_OwnershipFailure>.
Test Name Synopsis
HomeKit TCSR004 IPv6 homekit_TCSR004_ipv6 HomeKit TCSR004 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Perform a port scan on the LAN from a secondary LAN client using TCP and UDP.
    Step 3. Perform a ICMPv6 ping from the secondary LAN client to the LAN client.
    Step 4. Start a HAP client on the IPv6-only LAN client and allow HAT to discover it.
    Step 5. Apply network rules file TCSR004_IPV6.json through HAT to the client created in step 2.
    Step 6. Start a HTTP server on port 2234 on the HAP client started in step 2.
    Step 7. Perform a HTTP Get from a second LAN client on the LAN client started in step 2 using port 2234.
    Step 8. Perform a UDP Echo from a second LAN client on the LAN client started in step 2.
    Step 9. Perform a ICMPv6 ping from a second LAN client on the LAN client started in step 2.
    Step 10. Perform a port scan on the LAN from a secondary LAN client using TCP and UDP.
    Step 11. Perform a ICMPv6 ping from the secondary LAN client to the LAN client.
    Step 12. Perform Step 3 thru 11 using link-local address of both LAN clients.

    Test Metrics:

    1. Ensure no ports are blocked in step 2
    2. Ensure ICMPv6 is not blocked in step 3.
    3. Ensure the HTTP Get in step 7 does succeed.
    4. Ensure the UDP echo in step 8 does not succeed.
    5. Ensure the ICMPv6 ping in step 9 does not succeed.
    6. Ensure only port 2234 over TCP is not blocked in step 10.
    7. Ensure ICMPv6 is blocked in step 11.
    8. Ensure Steps 1 thru 7 work with link-local addresses.
Test Name Synopsis
HomeKit TCSR006 IPv6 homekit_TCSR006_ipv6 HomeKit TCSR006 IPv6


    Test Procedure:

    Step 1. Ensure the CDRouter IPv6 LAN client is configured to connect to the
            guest network of the HomeKit enabled router.
    Step 2. Send a mDNS PTR request from the LAN client for _hap._tcp.local using
            a global source address.
    Step 3. Send a mDNS PTR request from the LAN client for _hap._tcp.local using
            a link-local source address.

    Test Metrics:

    1. Ensure that after step 2 the HomeKit enabled router does not respond to the
       mDNS request from the global address.
    2. Ensure that after step 2 the HomeKit enabled router does not respond to the
       mDNS request from the link-local.
Test Name Synopsis
HomeKit TCSR007 IPv6 homekit_TCSR007_ipv6 HomeKit TCSR007 IPv6


    Test Procedure:

    Step 1. Ensure the HAP client is configured to connect to the satellite node on the router's network.
    Step 2. Send a mDNS query for _hap._tcp.local clients from the HAP client.

    Test Metrics:

    1. Ensure the router responds to the mDNS query through the satellite node.
Test Name Synopsis
HomeKit TCSR008 IPv6 homekit_TCSR008_ipv6 HomeKit TCSR008 IPv6


    Test Procedure:

    Step 1. Send a mDNS PTR request over IPv6 from a host on the WAN for
            _hap._tcp.local. to the router.
    Step 2. Send a mDNS PTR request over IPv6 from a host using the link-local
            address on the WAN for _hap._tcp.local. to the router.

    Test Metrics:

    1. Ensure that after step 1 the HomeKit enabled router does not respond to
       the mDNS request.
    2. Ensure that after step 2 the HomeKit enabled router does not respond to
       the link-local mDNS request.
Test Name Synopsis
HomeKit TCSR010 IPv6 homekit_TCSR010_ipv6 HomeKit TCSR010 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Confgure the Network Client Profile 1 using '010100' for the WAN
            Firewall config and '0101000' for the LAN Firewall config with a PSK of '11111111'.
    Step 4. Attempt to reassocicate the HAP client to the router's wireless network using the new PSK.
    Step 5. Attempt to reassocicate the HAP client to the router's wireless network using the original PSK.

    Test Metrics:

    1. The HAP client is able to sucessfully associate to the wireless network in step 4.
    2. The HAP client is able to sucessfully associate to the wireless network in step 5.
Test Name Synopsis
HomeKit TCSR011 IPv6 homekit_TCSR011_ipv6 HomeKit TCSR011 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Connect an additonal secondary client to the LAN network.
    Step 4. Perform a port scan over IPv6 on the HAP client created in step 2 from a host on the WAN.
    Step 5. Perform a port scan over IPv6 on the secondary LAN client created in
            step 3 from a host on the WAN.
    Step 6. Confgure the Network Client Profile using '0101010200' for the WAN
            Firewall config and '0101000' for the LAN Firewall config.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure traffic from the WAN side is not blocked in step 4.
    2. Ensure traffic from the WAN side is not blocked in step 5.
    3. Ensure traffic from the WAN side is blocked in step 7.
    4. Ensure traffic from the WAN side is blocked in step 8.
Test Name Synopsis
HomeKit TCSR012 IPv6 homekit_TCSR012_ipv6 HomeKit TCSR012 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR012_IPV6.json network rules file to the HAP client
            created in step 2.
    Step 4. Use the HAP client to fetch https://www.engadget.com.
    Step 5. Use the HAP client to fetch http://www.facebook.com.
    Step 6. Use the HAP client to fetch https://www.gizmodo.com.
    Step 7. Use the HAP client to fetch https://www.techcrunch.com.
    Step 8. Use the HAP client to fetch https://aws.amazon.com.
    Step 9. Configure a host on the WAN with IPv6 3001:cafe:1000::10 with an HTTP server running on port 8000
    Step 10. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 11. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 12. Perform a ICMP ping from the HAP LAN client started in step 2 to the host created in step 9.
    Step 13. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::11 and a HTTP server running on port 8101
    Step 14. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 15. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::11 and a HTTP server running on port 8181
    Step 16. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 17. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::16 and a HTTP server running on port 8200
    Step 18. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 19. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::20 and a HTTP server running on port 8200
    Step 20. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 21. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::25 and a HTTP server running on port 8300
    Step 22. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 23. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::27 and a HTTP server running on port 8300
    Step 24. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 25. Reconfigure the host from step 9 to have IPv6 3001:cafe:1000::30 and a HTTP server running on port 11000
    Step 26. Repeat steps 10-12 using the IP and port reconfigured in step 13.

    Test Metrics:

    1. In step 4 ensure the HAP client is successful in fetching the remote site.
    2. In step 5 ensure the HAP client is unsuccessful in fetching the remote site.
    3. In step 6 ensure the HAP client is successful in fetching the remote site.
    4. In step 7 ensure the HAP client is successful in fetching the remote site.
    5. In step 8 ensure the HAP client is successful in fetching the remote site.
    6. Ensure step 10 is successful in all interations.
    7. Ensure step 11 is unsuccessful in all interations.
    8. Ensure step 12 is unsuccessful in all interations.
Test Name Synopsis
HomeKit TCSR013 IPv6 homekit_TCSR013_ipv6 HomeKit TCSR013 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR013_IPV6.json network rules file to the HAP client created in step 2.
    Step 4. Configure a host on the WAN with IPv6 3001:cafe:1000:10 with an HTTP server running on port 8000
    Step 5. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 6. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 9 using port 8000.
    Step 7. Perform a ICMPv6 ping from the HAP LAN client started in step 2 to the host created in step 9.
    Step 8. Reconfigure the host from step 9 to have IP 3001:cafe:1000::11 and a HTTP server running on port 8101
    Step 9. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 10. Reconfigure the host from step 9 to have IP 3001:cafe:1000::11 and a HTTP server running on port 8181
    Step 11. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 12. Reconfigure the host from step 9 to have IP 3001:cafe:1000::16 and a HTTP server running on port 8200
    Step 13. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 14. Reconfigure the host from step 9 to have IP 3001:cafe:1000::20 and a HTTP server running on port 8200
    Step 15. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 16. Reconfigure the host from step 9 to have IP 3001:cafe:1000::25 and a HTTP server running on port 8300
    Step 17. Repeat steps 10-12 using the IP and port reconfigured in step 13.
    Step 18. Reconfigure the host from step 9 to have IP 3001:cafe:1000::27 and a HTTP server running on port 8300
    Step 19. Repeat steps 10-12 using the IP and port reconfigured in step 13.

    Test Metrics:

    1. Ensure step 5 is unsuccessful in all interations.
    2. Ensure step 6 is successful in all interations.
    3. Ensure step 7 is unsuccessful in all interations.
Test Name Synopsis
HomeKit TCSR014 IPv6 homekit_TCSR014_ipv6 HomeKit TCSR014 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR014_IPV6.json network rules file to the HAP client created in step 2.
    Step 4. Send a ICMPv6 ping from the HAP client started in step 2 to www.engadget.com
    Step 5. Send a ICMPv6 ping from the HAP client started in step 2 to www.cnn.com
    Step 6. Send a ICMPv6 ping from the HAP client started in step 2 to www.gizmodo.com
    Step 7. Send a ICMPv6 ping from the HAP client started in step 2 to www.techcrunch.com
    Step 8. Send a ICMPv6 ping from the HAP client started in step 2 to store.amazon.com
    Step 9. Send a ICMPv6 ping from the HAP client started in step 2 to www.facebook.com
    Step 10. Send a ICMPv6 ping from the HAP client started in step 2 to www.apple.com
    Step 11. Configure a host on the WAN with IP 3001:cafe:1000::10 with an HTTP server running on port 8000
    Step 12. Perform a HTTP Get from the HAP LAN client started in step 2 to the host created in step 11 using port 8000.
    Step 13. Perform a UDP Echo from the HAP LAN client started in step 2 to the host created in step 11 using port 8000.
    Step 14. Perform a ICMPv6 ping from the HAP LAN client started in step 2 to the host created in step 11.

    Test Metrics:

    1. The ICMPv6 ping in step 4 is successful.
    2. The ICMPv6 ping in step 5 is successful.
    3. The ICMPv6 ping in step 6 is successful.
    4. The ICMPv6 ping in step 7 is successful.
    5. The ICMPv6 ping in step 8 is successful.
    6. The ICMPv6 ping in step 9 is unsuccessful.
    7. The ICMPv6 ping in step 10 is unsuccessful.
    8. The HTTP get in step 12 is unsuccessful.
    9. The UDP echo in step 13 is unsuccessful.
    10. The ICMP ping in step 14 is successful
Test Name Synopsis
HomeKit TCSR015 IPv6 homekit_TCSR015_ipv6 HomeKit TCSR015 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Connect a second client to the LAN network.
    Step 4. Start a multicast server on the HAP client listening on the FF0E::FF:1:3 group.
    Step 5. Send UDP multicast traffic to FF0E::FF:1:3 from the secondary LAN client.
    Step 6. Send TCP traffic from the secondary LAN client to the HAP client.
    Step 7. Use HAT to apply the TCSR015_IPv6.json network rules file to the HAP client created in step 2.
    Step 8. Repeat steps 5 and 6

    Test Metrics:

    1. UDP multicast traffic is not blocked in step 6.
    2. TCP traffic is not blocked in step 7.
    3. UDP multicast traffic is not blocked after the network rule has been applied in step 7.
    4. TCP traffic is blocked after the network rule has been applied in step 7.
Test Name Synopsis
HomeKit TCSR016 IPv6 homekit_TCSR016_ipv6 HomeKit TCSR016 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Connect a second client to the LAN network.
    Step 4. Start a multicast server on the secondary LAN client listening on the FF0E::FF:1:3 group.
    Step 5. Send UDP multicast traffic to FF0E::FF:1:3 from the HAP client.
    Step 6. Send TCP traffic from the HAP client to the secondary LAN client.
    Step 7. Use HAT to apply the TCSR016_IPV6.json network rules file to the HAP client
            created in step 2.
    Step 8. Repeat steps 5 and 6.

    Test Metrics:

    1. UDP multicast traffic is not blocked in step 6.
    2. TCP traffic is not blocked in step 7.
    3. UDP multicast traffic is not blocked after the network rule has been applied in step 7.
    4. TCP traffic is blocked after the network rule has been applied in step 7.
Test Name Synopsis
HomeKit TCSR017 IPv6 homekit_TCSR017_ipv6 HomeKit TCSR017 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 6. Perform a link-local TCP and UDP port scan on the LAN client added in step 3 on the HAP client.
    Step 7. Perform a link-local ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 8. Use HAT to apply the TCSR017.json network rules file to the HAP client started in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure only port 9000 over TCP is not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only port 9000 over link-local TCP is not blocked in the port scan in step 11.
    8.  Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR018 IPv6 homekit_TCSR018_ipv6 HomeKit TCSR018 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 6. Perform a link-local TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 7. Perform an link-local ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 8. Use HAT to apply the TCSR018.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the TCP or UDP link-local port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure only ports 9000-9100 over TCP are not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only ports 9000-9100 over link-local TCP are not blocked in the link-local port scan in step 11.
    8. Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR020 IPv6 homekit_TCSR020_ipv6 HomeKit TCSR020 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 6. Perform a link-local TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 7. Perfrom an link-local ICMPv6 ping from the LAN client added in step to the HAP client.
    Step 8. Use HAT to apply the TCSR020.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.


    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the TCP or UDP link-local port scan in step 6.
    4. Ensure the ICMPv6 link-local ping in step 7 is successful.
    5. Ensure only ports 9000-9100 over UDP are not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only ports 9000-9100 over link-local UDP are not blocked in the port scan in step 11.
    8. Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR021 IPv6 homekit_TCSR021_ipv6 HomeKit TCSR021 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 on the HAP client.
    Step 5. Perform an ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 6. Use HAT to apply the TCSR021.json network rules file to the HAP client started
            in step 2.
    Step 7. Repeat step 4.
    Step 8. Repeat step 5.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure all ports are blocked in the port scan in step 7.
    4. Ensure the ICMPv6 ping succeeds in step 8.
Test Name Synopsis
HomeKit TCSR022 IPv6 homekit_TCSR022_ipv6 HomeKit TCSR022 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform an link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR022.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.



    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure only port 9000 over TCP is not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only port 9000 over link-local TCP is not blocked in the port scan in step 11.
    8.  Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR023 IPv6 homekit_TCSR023_ipv6 HomeKit TCSR023 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform an link-local ICMPv6 ping from the link-local address on the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR023.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure only ports 9000-9100 over TCP are not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only ports 9000-9100 over link-local TCP are not blocked in the port scan in step 11.
    8. Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR024 IPv6 homekit_TCSR024_ipv6 HomeKit TCSR024 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform an link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR024.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure only port 9000 over UDP is not blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping fails in step 10.
    7. Ensure only port 9000 over link-local UDP is not blocked in the port scan in step 11.
    8. Ensure the link-local ICMPv6 ping fails in step 12.
Test Name Synopsis
HomeKit TCSR025 IPv6 homekit_TCSR025_ipv6 HomeKit TCSR025 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMP ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform an link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR025.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.


    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 4.
    4. Ensure the link-local ICMPv6 ping in step 5 is successful.
    5. Ensure only ports 9000-9100 over UDP are not blocked in the port scan in step 7.
    6. Ensure the ICMPv6 ping fails in step 8.
    7. Ensure only ports 9000-9100 over link-local UDP are not blocked in the port scan in step 7.
    8. Ensure the link-local ICMPv6 ping fails in step 8.
Test Name Synopsis
HomeKit TCSR026 IPv6 homekit_TCSR026_ipv6 HomeKit TCSR026 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform an link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR026.json network rules file to the HAP client started
            in step 2.
    Step 9. Repeat step 4.
    Step 10. Repeat step 5.
    Step 11. Repeat step 6.
    Step 12. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    5. Ensure all ports blocked in the port scan in step 9.
    6. Ensure the ICMPv6 ping succeeds in step 10.
    7. Ensure all ports blocked in the link-local port scan in step 11.
    8. Ensure the link-local ICMPv6 ping succeeds in step 12.
Test Name Synopsis
HomeKit TCSR027 IPv6 homekit_TCSR027_ipv6 HomeKit TCSR027 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client added in step 3 to the HAP client.
    Step 5. Perform an ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 6. Perform a link-local TCP and UDP port scan from the LAN client added in step 3 to the HAP client.
    Step 7. Perform a link-local ICMPv6 ping from the LAN client added in step 3 to the HAP client.
    Step 8. Use HAT to apply the TCSR027.json network rules file to the HAP client started
            in step 2.
    Step 9. Start a DNS-SD server on the HAP client started in step 2 with a _http._tcp service
            advertised port 80.
    Step 10. Start a DNS-SD client on the secondary LAN client started in step 3.
    Step 11. Send a mDNS query to the mDNS multicast group from the mDNS client started in step
             8 for _http._tcp.local.
    Step 12. Send a HTTP Get to the HAP client from the secondary LAN client.
    Step 13. Repeat step 4.
    Step 14. Repeat step 5.
    Step 15. Repeat step 6.
    Step 16. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure no ports are blocked during the link-local TCP or UDP port scan in step 6.
    4. Ensure the link-local ICMPv6 ping in step 7 is successful.
    3. Ensure the mDNS query in step 11 is successful.
    4. Ensure the HTTP GET in step 12 is successful.
    5. Ensure only port 80 is not blocked in the port scan in step 13.
    6. Ensure the ICMPv6 ping in step 14 is unsuccessful.
    7. Ensure only port 80 is not blocked in the link-local port scan in step 15.
    8. Ensure the link-local ICMPv6 ping in step 16 is unsuccessful.
Test Name Synopsis
HomeKit TCSR028 IPv6 homekit_TCSR028_ipv6 HomeKit TCSR028 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the LAN client to the secondary LAN client added in step 2.
    Step 5. Perform an ICMPv6 ping from the LAN client to the HAP client added in step 2.
    Step 6. Perform a link-local TCP and UDP port scan from the LAN client to the secondary LAN client added in step 2.
    Step 7. Perform an link-local ICMPv6 ping from the LAN client to the HAP client added in step 2.
    Step 8. Use HAT to apply the TCSR028.json network rules file to the HAP client started
            in step 2.
    Step 9. Start a SSDP server on the HAP client started in step 2.
    Step 10. Start a SSDP client on the secondary LAN client started in step 3.
    Step 11. Send a SSDP M-SEARCH to the SSDP multicast group from the secondary LAN client started in step 8.
    Step 12. Repeat step 4.
    Step 13. Repeat step 5.
    Step 14. Repeat step 6.
    Step 15. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMP ping in step 5 is successful.
    3. Ensure the SSDP M-SEARCH reaches the HAP client.
    4. Ensure all ports are blocked in step 12.
    5. Ensure the ICMPv6 ping in step 13 is unsuccessful.
    5. Ensure all link-local ports are blocked in step 14.
    6. Ensure the link-local ICMPv6 ping in step 15 is unsuccessful.
Test Name Synopsis
HomeKit TCSR029 IPv6 homekit_TCSR029_ipv6 HomeKit TCSR029 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform a link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR029_IPv6.json network rules file to the HAP client started
            in step 2.
    Step 9. Start a DNS-SD server on the secondary LAN client started in step 3 with a _http._tcp service
            advertised port 80.
    Step 10. Start a DNS-SD client on the HAP client started in step 2.
    Step 11. Send a mDNS query to the mDNS multicast group from the HAP client started in step
             2 for _http._tcp.local.
    Step 12. Send a HTTP Get to the secondary LAN client from the HAP client.
    Step 13. Repeat step 4.
    Step 14. Repeat step 5.
    Step 15. Repeat step 6.
    Step 16. Repeat step 7.

    Test Metrics:

    1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure the mDNS query in step 9 is successful.
    4. Ensure the HTTP GET in step 10 is successful.
    5. Ensure only port 80 is not blocked in the port scan in step 13.
    6. Ensure the ICMPv6 ping in step 14 is unsuccessful.
    7. Ensure only port 80 is not blocked in the link-local port scan in step 13.
    8. Ensure the link-local ICMPv6 ping in step 14 is unsuccessful.
Test Name Synopsis
HomeKit TCSR030 IPv6 homekit_TCSR030_ipv6 HomeKit TCSR030 IPv6


    Test Procedure:

Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Add a secondary client to the LAN network.
    Step 4. Perform a TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 5. Perform an ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 6. Perform a link-local TCP and UDP port scan from the HAP client on the LAN client added in step 3.
    Step 7. Perform a link-local ICMPv6 ping from the HAP client to the LAN client added in step 3.
    Step 8. Use HAT to apply the TCSR030_IPv6.json network rules file to the HAP client started
            in step 2.
    Step 9. Start a SSDP server on the secondary LAN client started in step 3.
    Step 10. Start a SSDP client on the HAP client started in step 2.
    Step 11. Send a SSDP M-SEARCH to the SSDP multicast group from the HAP client started in step 2.
    Step 12. Repeat step 4.
    Step 13. Repeat step 5.
    Step 14. Repeat step 6.
    Step 15. Repeat step 7.

    Test Metrics:

1. Ensure no ports are blocked during the TCP or UDP port scan in step 4.
    2. Ensure the ICMPv6 ping in step 5 is successful.
    3. Ensure the SSDP M-SEARCH reaches the secondary LAN client.
    4. Ensure all ports are blocked in step 12.
    5. Ensure the ICMPv6 ping in step 13 is unsuccessful.
    6. Ensure all link-local ports are blocked in step 12.
    7. Ensure the link-local ICMPv6 ping in step 13 is unsuccessful.
Test Name Synopsis
HomeKit TCSR031 IPv6 homekit_TCSR031_ipv6 HomeKit TCSR031 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Send a DNS request from the HAP for www.engadget.com
    Step 4. Use HAT to apply the TCSR031.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

    1. Ensure the DNS request in step 3 is successful.
    2. Ensure the DNS request in step 5 is successful and all TTL values are
       clamped to 10 by the router.
Test Name Synopsis
HomeKit TCSR032 IPv6 homekit_TCSR032_ipv6 HomeKit TCSR032 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Send a recursive DNS request from the HAP for api.xbcs.net
    Step 4. Use HAT to apply the TCSR032.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

1. Ensure the DNS request in step 3 is successful.
    2. Ensure the DNS request in step 5 is successful and all TTL values are
       clamped to 10 by the router and the response contains both an A/AAAA and
       CNAME anwser.
Test Name Synopsis
HomeKit TCSR033 IPv6 homekit_TCSR033_ipv6 HomeKit TCSR033 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Send a DNS request from the HAP for api.xbcs.ne

    Test Metrics:

    1. Ensure the DNS request in step 3 is successful and that the TTL values are not
       clamped to 10 by the router.
Test Name Synopsis
HomeKit TCSR034 IPv6 homekit_TCSR034_ipv6 HomeKit TCSR034 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR034.json network rules file to the HAP client started
            in step 2.
    Step 4. Send a UPnP action from the HAP client to the router accessory to add a port mapping
            from external port 3333 to internal port 22.
    Step 5. Attempt to establish a connection through the port mapping.

    Test Metrics:

    1. The UPnP action fails and a port mapping cannot be created.
    2. A connection through the port mapping in step 5 cannot be established.
Test Name Synopsis
HomeKit TCSR035 IPv6 homekit_TCSR035_ipv6 HomeKit TCSR035 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory.
    Step 3. Use HAT to apply the TCSR035.json network rules file to the HAP client started
            in step 2.
    Step 4. Send a  UPnP action from the HAP client to the router accessory to add a port mapping
            from external port 3333 to internal port 22.
    Step 5. Attempt to establish a connection through the port mapping.

    Test Metrics:

    1. The UPnP action succeeds and a port mapping is created.
    2. A connection through the port mapping in step 5 successfully established.
Test Name Synopsis
HomeKit TCSR036 IPv6 homekit_TCSR036_ipv6 HomeKit TCSR036 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR036.json network rules file to the HAP client started
            in step 2.
    Step 4. Configure a second LAN client on the LAN to act as a DNS server
    Step 5. Using the third-party vendor app configure a DNS server on the LAN at the
            address specified by the prompt.
    Step 6. Configure an entry in the DNS server from step 5 to point example.com to
            a host on the WAN.
    Step 7. Perform a HTTP GET for example.com from the HAP client.
    Step 8. Update the IP address of the host of example.com and update the DNS entry to be correct.
    Step 9. Repeat step 7.

    Test Metrics:

    1. Both HTTP GETs should succeed.
Test Name Synopsis
HomeKit TCSR037 IPv6 homekit_TCSR037_ipv6 HomeKit TCSR037 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR037.json network rules file to the HAP client started
            in step 2.
    Step 4. Perform a HTTP GET from the HAP client to a secondary LAN client on port 9000.
    Step 5. Perform a UDP echo from the HAP client to a secondary LAN client on port 9000.
    Step 6. Perform a ICMPv6 ping from the HAP client to a secondary LAN client.
    Step 7. Perform a HTTP GET from a secondary LAN client to the HAP client on port 9005.
    Step 8. Perform a UDP echo from a secondary LAN client to the HAP client on port 9005.
    Step 9. Perform a ICMPv6 ping from a secondary LAN client to the HAP client.
    Step 10. Perform a port scan of the HAP client from the secondary LAN client.
    Step 11. Perform a port scan of a secondary LAN client from the HAP client.
    Step 12. Reconfigure the HAP client to have a different global IPv6 address.
    Step 13. Repeat steps 4 through 11.


    Test Metrics:

    1. The HTTP GET in step 4 is successful before and after step 13.
    2. The UDP echo in step 5 is not successful before and after step 13.
    3. The ICMPv6 ping in step 6 is not successful before and after step 13.
    4. The port scan in step 10 shows only TCP port 9005 is allowed before and after step 13.
    4. The port scan in step 11 shows only TCP port 9000 is allowed before and after step 13.
Test Name Synopsis
HomeKit TCSR038 IPv6 homekit_TCSR038_ipv6 HomeKit TCSR038 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR038.json network rules file to the HAP client started
            in step 2.
    Step 4. Perform a HTTP GET from the HAP client to a secondary LAN client on port 9000.
    Step 5. Perform a UDP echo from the HAP client to a secondary LAN client on port 9000.
    Step 6. Perform a ICMPv6 ping from the HAP client to a secondary LAN client.
    Step 7. Perform a HTTP GET from a secondary LAN client to the HAP client on port 9005.
    Step 8. Perform a UDP echo from a secondary LAN client to the HAP client on port 9005.
    Step 9. Perform a ICMPv6 ping from a secondary LAN client to the HAP client.
    Step 10. Perform a port scan of the HAP client from the secondary LAN client.
    Step 11. Perform a port scan of a secondary LAN client from the HAP client.
    Step 12. Reconfigure the HAP client to have a different global IPv6 address.
    Step 13. Repeat steps 4 through 11.

    Test Metrics:

    1. The HTTP GET in step 4 is not successful before and after step 13.
    2. The UDP echo in step 5 is successful before and after step 13.
    3. The ICMPv6 ping in step 6 is not successful before and after step 13.
    4. The port scan in step 10 shows only UDP port 9005 is allowed before and after step 13.
    5. The port scan in step 11 shows only UDP port 9000 is allowed before and after step 13.
Test Name Synopsis
HomeKit TCSR039 IPv6 homekit_TCSR039_ipv6 HomeKit TCSR039 IPv6


    Test Procedure:

    Step 1. Ensure both the gateway node and satellite node are connected and configured to IPv6-only mesh.
    Step 2. Start discovery on HAT.

    Test Metrics:

    1. After step 2 both the gateway and satellite nodes are found by HAT.
Test Name Synopsis
HomeKit TCSR041 IPv6 homekit_TCSR041_ipv6 HomeKit TCSR041 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Attempt to pair with the HAP client from step 2.
    Step 4. Use HAT to apply the TCSR041.json network rules file to the HAP client started
            in step 2.
    Step 5. Repeat step 3.

    Test Metrics:

   1. Before and after the network is applied in step 4 HAT is able to send HAP traffic
      to the HAP client.
Test Name Synopsis
HomeKit TCSR042 IPv6 homekit_TCSR042_ipv6 HomeKit TCSR042 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR042.json network rules file to the HAP client started
            in step 2 with the Restricted flag set.
    Step 4. Perform a TCP port scan of the HAP client from a second LAN client.
    Step 5. Perform a UDP port scan of the HAP client from a second LAN client.
    Step 6. Attempt to ping the HAP client from a second LAN client.
    Step 7. Perform a TCP scan of a second LAN client from the HAP Client.
    Step 8. Perform a UDP scan of a second LAN client from the HAP Client.
    Step 9. Attempt to ping a second LAN client from the HAP client.
    Step 10. Perform a link-local TCP port scan of the HAP client from a second LAN client.
    Step 11. Perform a link-local UDP port scan of the HAP client from a second LAN client.
    Step 12. Attempt to ping the HAP client from a second LAN client using link-local.
    Step 13. Perform a link-local TCP scan of a second LAN client from the HAP Client.
    Step 14. Perform a link-local UDP scan of a second LAN client from the HAP Client.
    Step 15. Attempt to ping a second LAN client from the HAP client using link-local.

    Test Metrics:

    1. In steps 4 through 15 no traffic is permitted to flow to or from the HAP client.
Test Name Synopsis
HomeKit TCSR043 IPv6 homekit_TCSR043_ipv6 HomeKit TCSR043 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.

    Test Metrics:

    1. Verify 'Version' is a characteristic under the 'WiFi Router' service
    2. Verify 'Supported Router Configuration' is a characteristic under the 'WiFi Router' service
    3. Verify 'Configured Name' is a characteristic under the 'WiFi Router' service
    4. Verify 'Router Status' is a characteristic under the 'WiFi Router' service
    5. Verify 'WAN Configuration List' is a characteristic under the 'WiFi Router' service
    6. Verify 'WAN Status List' is a characteristic under the 'WiFi Router' service
    7. Verify 'Managed Network Enable' is a characteristic under the 'WiFi Router' service
    8. Verify 'Network Client Profile Control' is a characteristic under the 'WiFi Router' service
    9. Verify 'Network Client Status Control' is a characteristic under the 'WiFi Router' service
    10. Verify 'Network Access Violation Control' is a characteristic under the 'WiFi Router' service
Test Name Synopsis
HomeKit TCSR044 IPv6 homekit_TCSR044_ipv6 HomeKit TCSR044 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 3. Repeat step 3 including an additional Client profile addition in the TLV
            to bulk add multiple profile.
    Step 4. Use HAT to send a timed write to the router accessory with an update operation
            and a remove operation on the same profile created in step 3.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the timed write in step 4 is successful.
    3. Ensure the timed write in step 5 does not succeed.
Test Name Synopsis
HomeKit TCSR045 IPv6 homekit_TCSR045_ipv6 HomeKit TCSR045 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to list the members of
            the Client Group Identifer 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response from step 5 contains the client profile 1.
Test Name Synopsis
HomeKit TCSR046 IPv6 homekit_TCSR046_ipv6 HomeKit TCSR046 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to read the configuration of
            the Client Profile 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response from step 5 contains the network client
       profile configuration for Network Client Profile 1.
Test Name Synopsis
HomeKit TCSR047 IPv6 homekit_TCSR047_ipv6 HomeKit TCSR047 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to remove
            Client Profile 1.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the routers response does not contain information about the removed
       client profile.
Test Name Synopsis
HomeKit TCSR048 IPv6 homekit_TCSR048_ipv6 HomeKit TCSR048 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to send timed write to the router accessory to update
            Client Profile 1 to use the Client Group identifier of 3 and a WAN and LAN
            firewall configuration of 0101010200.
    Step 6. Using the HAP client created in step 2, attempt to reach a restricted host on
            the WAN

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the timed write in step 5 is successful.
    4. Ensure the HAP client cannot access a restricted host in step 6
Test Name Synopsis
HomeKit TCSR049 IPv6 homekit_TCSR049_ipv6 HomeKit TCSR049 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 010100.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with a client profile ID of 1 from the router.
    Step 6. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with the IP of the HAP Client from the router.
    Step 7. Use the Network Client Status form in the Wifi Router service summary page
            to read all clients with the MAC of the HAP client from the router.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the client information returned from the router in step 5 matches the
       HAP client.
    4. Ensure the client information returned from the router in step 6 matches the
       HAP client.
    5. Ensure the client information returned from the router in step 7 matches the
       HAP client.
Test Name Synopsis
HomeKit TCSR050 IPv6 homekit_TCSR050_ipv6 HomeKit TCSR050 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 3
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.
    Step 6. Use HAT to list the network access violations control.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 5.
    4. Ensure the router returns an entry with a timestamp that matches step 5.
Test Name Synopsis
HomeKit TCSR051 IPv6 homekit_TCSR051_ipv6 HomeKit TCSR051 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.
    Step 6. Use HAT to list the network access control violations.
    Step 7. Use HAT to send a reset to the Network Access Violations Control for the
            client identifier of 1.
    Step 8. Use HAT to list the network access violations control.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 5.
    4. Ensure the router returns an entry with a timestamp that matches step 5.
    5. Ensure the router does not return an entry with a timestamp that matches step 5,
       after the Network Access Violation Control has been reset.
Test Name Synopsis
HomeKit TCSR052 IPv6 homekit_TCSR052_ipv6 HomeKit TCSR052 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2 with the Full Access flag set.
    Step 4. Start a TCP session between a second LAN client and the HAP client.
    Step 5. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2.
    Step 6. Reset the Network Rules using the Full Access Flag.
    Step 7. Start a TCP session between a second LAN client and the HAP client.
    Step 8. Use HAT to apply the TCSR052.json network rules file to the HAP client started
            in step 2 with the Restricted flag set.

    Test Metrics:

   1. Verify a TCP session could be established between the second LAN client and the
       HAP client in step 4.
    2. Verify the TCP session is not severed after step 5.
    3. Verify a TCP session could be established between the second LAN client and the
       HAP client in step 6.
    4. Verify the TCP session is severed after step 7.
Test Name Synopsis
HomeKit TCSR053 IPv6 homekit_TCSR053_ipv6 HomeKit TCSR053 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to apply the TCSR053.json network rules file to the HAP client
            created in step 2.
    Step 4. Create a second HAP client and allow it to be discovered by the router accessory.
    Step 5. Use HAT to apply the TCSR053.json network rules file to the second HAP client
            created in step 4.
    Step 5. Perform a HTTP Get from the second HAP client started in step 4 to the HAP client created in step 2 using port 9000.
    Step 5. Perform a HTTP Get from the HAP client created in step 2 to the second HAP client started in step 4 using port 9000.
    Step 8. Perform a port scan on the HAP client created in step 2 from the second HAP client created in step 4.

    Test Metrics:

    1. Ensure the HTTP GET is successful in step 5.
    2. Ensure the HTTP GET is successful in step 6.
    3. Ensure only port 9000 over TCP is not block in the port scan during step 8.
Test Name Synopsis
HomeKit TCSR054 IPv6 homekit_TCSR054_ipv6 HomeKit TCSR054 IPv6


    Test Procedure:

    Step 1. Ensure HAT has discovered and paired with the router accessory over IPv6.
    Step 2. Create a HAP client and allow it to be discovered by the router accessory over IPv6.
    Step 3. Use HAT to send a timed write to the router accessory to create a Network
            Client Profile with a psk of '11111111', a client group identifier of 1
            and a WAN and LAN firewall config value of 0101010200.
    Step 4. Connect the HAP client created in step 2 to the wireless network using the
            psk '11111111'.
    Step 5. Use HAT to enable Event Notifcations for Network Violations.
    Step 6. Use HAT to send a reset to the Network Access Violations Control for the
            client identifier of 1.
    Step 7. Use the HAP client created in step 2 to attempt to reach a restricted domain
            on the WAN.

    Test Metrics:

    1. Ensure the timed write in step 3 is successful.
    2. Ensure the HAP client is able to connect to the wireless network using the
       specified psk.
    3. Ensure the HAP client cannot reach a restricted host in step 6.
    5. Ensure the router sends a Network Access Violation for the attempted access
       in step 7.