CDRouter Demo Test Summaries (Full)

Test Case Descriptions

  • Modules: 29
  • Test Cases: 38

Below is a full description of the testcases in each module


basic.tcl

Initial connectivity tests to verify ARP and DHCP client are connected

Test Name Synopsis
Router responds to ARP request on LAN interface cdrouter_basic_1 Router responds to ARP request on LAN interface


    step 1. Send an ARP request to LAN client's default gateway
    step 2. Verify that a valid ARP response is received

dhcp-c.tcl

DHCP client tests for the WAN side of the router

Test Name Synopsis
DHCP client renews lease when current lease expires cdrouter_dhcp_1 DHCP client renews lease when current lease expires


    step 1. Wait for DHCP lease to expire
    step 2. Verify WAN client sends DHCPREQUEST for same IP address
    step 3. Reassign the same IP address

pppoe-c.tcl

PPPoE client tests for the WAN side of the router

Test Name Synopsis
PPPoE client restarts PPPoE Discovery when PPP LCP Echo-Requests fail cdrouter_pppoe_client_1 PPPoE client restarts PPPoE Discovery when PPP LCP Echo-Requests fail


    step 1. Turn off PPP LCP Echo-Reply on PPPoE server
    step 2. PPP client should send an LCP Echo-Request
    step 3. PPP client will not receive an LCP Echo-Reply
    step 4. Verify WAN PPPoE client sends PADI to restart PPPoE Discovery
            (wait up to 5 minutes for LCP to failover)
    step 5. Verify PPPoE client brings new PPPoE session up

    NOTE: Most PPPoE clients will terminate the existing PPPoE session after
    several LCP Echo-Requests have failed. However, some routers will
    simply initiate a new PPPoE session without sending a PADT. This
    test case does not FAIL the test if the existing PPPoE session is not
    terminated before starting a new PPPoE session. However, a warning
    will be issued.

    NOTE: The amount of time the test waits to recover the PPP based
    link can be configured by adjusting the testvar pppRestartTimeout.
    This variable contains the number of milliseconds to wait for
    PPP based protocols to recover. The default is 300000 (300 seconds).

    NOTE: By default, CDRouter will still respond to ICMP Echo
    Requests during this test. This allows the test to verify failure
    occurs because of PPP and not the ICMP Echo Replies. However, you
    can configure CDRouter to also ignore ICMP Echo Requests during
    this test by setting the testvar pppFailUsesICMP to yes.

chap.tcl

PPP CHAP tests for PPP based protocols on the WAN (PPPoE and PPTP)

Test Name Synopsis
PPP CHAP authentication with various size key lengths cdrouter_chap_10 PPP CHAP authentication with various size key lengths


    step 1. Terminate the current PPP session using LCP Terminate
    step 2. Set the new CHAP secret length to a new value (24 37 78 112 255)
    step 3. Verify PPPoE, PPTP, or L2TP client restarts the link
    step 4. Once LCP is up, send a new CHAP Challenge to peer
    step 5. Verify correct CHAP Response is received
    step 6. Repeat for each key length generating a new secret each time


    References:

    IETF RFC 1994 "PPP Challenge Handshake Authentication Protocol (CHAP)"

    https://tools.ietf.org/html/rfc1994

dhcp-s.tcl

DHCP server tests for the LAN side of the router

Test Name Synopsis
Verify DHCP server returns same IP address when client renews cdrouter_dhcp_server_1 Verify DHCP server returns same IP address when client renews


    step 1. Send a DHCPREQUEST for the current IP address
    step 2. Verify DHCP server sends DHCPACK


    References:

    IETF RFC 2131 "Dynamic Host Configuration Protocol" Section 4.3.2: DHCPREQUEST message

    https://tools.ietf.org/html/rfc2131#section-4.3.2

nat.tcl

NAPT tests for TCP, UDP, and ICMP

Test Name Synopsis
Outbound TCP connections use NAPT cdrouter_nat_1 Outbound TCP connections use NAPT


    step 1. Initiate an outbound TCP connection to HTTP server
    step 2. Verify the connection is established
    step 3. Send HTTP GET request to server
    step 4. Verify HTTP response is received
    step 5. Verify the IPv4 source address on the WAN side is the router's address
    step 6. Close TCP connection from LAN side


    References:

    IETF RFC 3022 "Traditional IP Network Address Translator (Traditional NAT)"

    https://tools.ietf.org/html/rfc3022

renum-dhcp.tcl

WAN side renumbering tests with DHCP on the WAN

Test Name Synopsis
Verify WAN client learns new IP address when WAN server renumbers cdrouter_renumber_1 Verify WAN client learns new IP address when WAN server renumbers


     step 1.  Change the wanIspAssignIp address to a new address
     step 2.  Wait for DHCP lease to expire on WAN interface
     step 3.  Verify WAN client sends DHCPREQUEST for same IP address
     step 4.  Send DHCPNAK for that address
     step 5.  Verify DHCP WAN client restarts DHCPDISCOVERY and learns new IP
     step 6.  Verify new address responds to ping from LAN
     step 7.  Verify the old address no longer responds to ping from LAN
     step 8.  Verify new address responds to ARP request from WAN
     step 9.  Verify LAN client can ping remote host using new address
     step 10. Restore original IP address
     step 11. Verify LAN client can ping remote host

     NOTE: Step 8 will be skipped if testvar IPv4HopCount > 1 or testvar
     wanIspAssignGateway is defined as this indicates that the WAN client and
     WAN server are not on the same subnet.


    References:

    IETF RFC 2131 "Dynamic Host Configuration Protocol"

    https://tools.ietf.org/html/rfc2131

renum-pppoe.tcl

WAN side renumbering tests with PPPoE on the WAN

Test Name Synopsis
Verify WAN PPPoE client learns new IP address when WAN server renumbers cdrouter_renum_pppoe_1 Verify WAN PPPoE client learns new IP address when WAN server renumbers


    step 1. Change the wanIspAssignIp address to a new address
    step 2. Terminate the current PPPoE session with the client
    step 3. Verify WAN attempts to establish new PPPoE session
    step 4. Verify LAN client can ping remote host using new address
    step 5. Reset the WAN configuration to original IP address
    step 6. Verify the original PPPoE session has been reestablished

    NOTE: The amount of time the test waits to recover the PPP based
    link can be configured by adjusting the testvar pppRestartTimeout.
    This variable contains the number of milliseconds to wait for
    PPP based protocols to recover. The default is 300000 (300 seconds).


    References:

    IETF RFC 2516 "A Method for Transmitting PPP Over Ethernet (PPPoE)"

    https://tools.ietf.org/html/rfc2516

icmp.tcl

ICMP tests for generating various ICMP packets and NAPT of ICMP data

Test Name Synopsis
Verify ICMP Echo Requests (ping) work through router cdrouter_icmp_1 Verify ICMP Echo Requests (ping) work through router


    step 1. Initiate an outbound ICMP Echo Request (ping) to a WAN destination
    step 2. Verify ICMP Echo Reply (ping response) is received

firewall.tcl

Firewall tests including port scans

Test Name Synopsis
Inbound TCP connections to public side HTTP port are blocked cdrouter_firewall_1 Inbound TCP connections to public side HTTP port are blocked


    step 1. Initiate a WAN TCP connection to the router's public IP at port 80
    step 2. Verify the connection is not established
    step 3. Initiate a WAN TCP connection to the router's private IP at port 80
    step 4. Verify the connection is not established
    step 5. Initiate a LAN TCP connection to the router's private IP at port 80
    step 6. Verify the connection is established

ipsecpt.tcl

IPSEC based VPN pass through from the LAN to the WAN

Test Name Synopsis
Verify IKE packets pass through router on UDP port 500 cdrouter_ipsecpt_1 Verify IKE packets pass through router on UDP port 500


    step 1. Forward an IPSEC IKE packet from LAN to WAN
    step 2. Verify packets are passed in both directions

forward.tcl

Forwarding tests with different packet sizes and directions

Test Name Synopsis
Verify IPv4 TTL is decremented for forwarded packets cdrouter_forward_1 Verify IPv4 TTL is decremented for forwarded packets

    step 1. Forward an IP packet from a LAN client to the WAN
    step 2. Verify the TTL of the packet is decremented by 1

rip.tcl

RIPv1/v2 tests for LAN side of the router

Test Name Synopsis
Verify router sends RIPv1/v2 update on LAN side cdrouter_rip_1 Verify router sends RIPv1/v2 update on LAN side


    step 1. Listen for RIP reply from LAN side IP address of router
    step 2. Verify RIP version
    step 3. Verify source address of RIP reply

    NOTE: This test is only run if the 'ripSupported' configuration is
    set to 'yes'. The RIP version used for the test can be configured
    using the 'ripVersion' variable in your configuration file.


    References:

    IETF RFC 1058 "Routing Information Protocol"

    https://tools.ietf.org/html/rfc1058

    IETF RFC 2453 "RIP Version 2"

    https://tools.ietf.org/html/rfc2453

scaling.tcl

Scaling tests for maximum number of DHCP clients and connections (TCP, HTTP, VPN)

Test Name Synopsis
Verify all DHCP clients are operational cdrouter_scale_1 Verify all DHCP clients are operational


    step 1. Determine the size of the IPv4 LAN address pool
    step 2. Create a DHCP client for each available IP address
    step 3. Verify each client obtains an IP address within the range
    step 4. Verify there are no address conflicts
    step 5. Verify each client can establish an outbound HTTP connection to the
            remote host on the WAN
    step 6. Verify each client can send/receive data over the HTTP connection
    step 7. Close each TCP connection
    step 8. Release all new DHCP client leases

    NOTE: The DHCP address pool size is set in your configuration file using
    the 'dhcpClientStart' and 'dhcpClientEnd' testvars. These values must
    match the values set on the DUT. The pool size used in the test may be
    reduced if the testvar 'ipv4MaxLanClients' is defined with a value in your
    configuration.

    One of the addresses remains in use through the test run for a host on the
    LAN side. This test will attempt to create clients for the pool size - 1.
    If you are using multiple LAN interfaces, the number of DHCP clients from
    each interface will also be subtracted from the DHCP pool size.

    NOTE: All DHCP clients created during this test will use unique MAC
    addresses that do not conflict with any DHCP reservations that may be
    defined. This test will also verify that all clients receive valid DHCP
    addresses from the dynamic pool. A failure will be generated if any client
    receives an invalid address from the DHCP server. Invalid addresses are
    defined as:

       * Addresses outside of the configured DHCP pool range
       * Excluded addresses defined by the 'dhcpClientExclude' testvar
       * Reserved addresses defined by the 'dhcpClientReservedIp[x]' and
         'dhcpClientReservedMac[x]' testvars


    References:

    IETF RFC 2131 "Dynamic Host Configuration Protocol"

    https://tools.ietf.org/html/rfc2131

tr69.tcl

Additional TR-069 testing of the CPE device (beyond OD-128)

Test Name Synopsis
Verify Inform contains required parameters tr69_1 Verify Inform contains required parameters


    step 1. Initiate a new CWMP connection using Connection Request URL
    step 2. Wait for new Inform from CPE
    step 3. Verify Inform contains required parameters
    step 4. For IGD 1.x, verify ExternalIPAddress of the default WAN interface
            is correct.

    Note that this test verifies the Inform requirements for CWMP 1.0 as
    defined in Broadband Forum TR-069 for IGD 1.x devices. The required
    Inform parameters for CWMP 1.1, defined in TR-069 Amendment 2, have
    been moved to TR-098 Amendment 2 Section 2.4.1. CWMP 1.1 specifies
    one additional required parameter as compared to CWMP 1.0
    InternetGatewayDevice.DeviceSummary.

    For newer IGD devices using the Device 2.0 data model, the required
    parameters are defined in TR-181 issue 2's data model with the forceInform
    attribute set to yes.

    NOTE: IGD devices based on 2.x are not required to include a WAN IP
    address.


    References:

    BBF CWMP Data Model InternetGatewayDevice:1.14 Root Data Model "TR-098 Issue 1 Amendment 8"

    https://cwmp-data-models.broadband-forum.org/tr-098-1-8-0.html

    BBF CWMP Data Model Device:1.14 Root Data Model "TR-181 Issue 1 Amendment 7"

    https://cwmp-data-models.broadband-forum.org/tr-181-1-7-0.html

    BBF CWMP Data Model Device:2.14 Root Data Model "TR-181 Issue 2 Amendment 14 Corrigendum 1"

    https://cwmp-data-models.broadband-forum.org/tr-181-2-14-1-cwmp.html
Test Name Synopsis
Verify GetParameterValues using empty string for top of hierarchy tr69_10 Verify GetParameterValues using empty string for top of hierarchy


    step 1. Initiate a new CWMP connection using Connection Request URL
    step 2. Send GetParameterValues RPC using empty string
    step 3. Verify GetParameterValuesResponse or 9004 Soap Fault


    References:

    BBF TR-069 Issue 1 Amendment 6 "CPE WAN Management Protocol Version 1.4" Section A.3.2.2: GetParameterValues

    https://www.broadband-forum.org/download/TR-069_Amendment-6.pdf

basic-v6.tcl

Basic IPv6 extension header processing tests

Test Name Synopsis
Verify DUT forwards packets with multiple extension headers ipv6_basic_1 Verify DUT forwards packets with multiple extension headers


    step 1. Generate a valid ICMPv6 Echo Request packet with the IPv6 Hop-by-Hop
    Options and Destination Options extension headers using the PadN and Pad1
    options, respectively

            Hop-by-Hop Options Header:
              Next Header        = 0x3c (Destination Options)
              Length             = 0x00 (8 bytes)
              Option Type        = 0x01 (PadN)
              Option Data Length = 0x04 (6 bytes)
              Option Data        = 0x00000000

            Destination Options Header:
              Next Header        = 0x3a (ICMP)
              Length             = 0x00 (8 bytes)
              Option Type        = 0x00 (Pad1)
              Option Type        = 0x00 (Pad1)
              Option Type        = 0x00 (Pad1)
              Option Type        = 0x00 (Pad1)
              Option Type        = 0x00 (Pad1)
              Option Type        = 0x00 (Pad1)

    step 2. Initiate an outbound ICMPv6 Echo Request to a WAN IPv6 destination
            using the extension headers generated in Step 1
    step 3. Verify that an ICMPv6 Echo Reply packet is received within 3 seconds


    References:

    IPv6 Ready Test Specification Core Protocols

    http://ipv6ready.org/docs/Core_Conformance_Latest.pdf

    IETF RFC 2460 "Internet Protocol, Version 6 (IPv6) Specification" Section 4: IPv6 Extension Headers

    https://tools.ietf.org/html/rfc2460#section-4

    IETF RFC 2460 "Internet Protocol, Version 6 (IPv6) Specification" Section 4.2: Options

    https://tools.ietf.org/html/rfc2460#section-4.2

    IETF RFC 2460 "Internet Protocol, Version 6 (IPv6) Specification" Section 4.3: Hop-by-Hop Options Header

    https://tools.ietf.org/html/rfc2460#section-4.3

    IETF RFC 2460 "Internet Protocol, Version 6 (IPv6) Specification" Section 4.6: Destination Options Header

    https://tools.ietf.org/html/rfc2460#section-4.6

ndp.tcl

Neighbor Discovery Protocol and Router Advertisement tests for IPv6 devices

Test Name Synopsis
Verify DUT responds to Router Solicitations on the LAN ipv6_ndp_1 Verify DUT responds to Router Solicitations on the LAN


    step 1. Send a Router Solicitation from the LAN
    step 2. Wait for a Router Advertisement from the DUT
    step 3. Verify the fields in the Router Advertisement


    References:

    IETF RFC 4861 "Neighbor Discovery for IP version 6 (IPv6)"

    https://tools.ietf.org/html/rfc4861

dhcpv6-pd.tcl

DHCPv6 prefix delegation tests for WAN to LAN IPv6 configuration

Test Name Synopsis
Verify client requests the assignment of an IPv6 prefix dhcpv6_pd_1 Verify client requests the assignment of an IPv6 prefix


    step 1. Check existing DHCPv6 bindings on the WAN side of the CPE
    step 2. Verify whether or not prefix binding exists
    step 3. Verify Valid and Preferred lifetimes for binding
    step 4. Verify that the binding has not expired


    References:

    IETF RFC 3633 "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6" Section 12.1: Requesting router behavior

    The requesting router uses a Request message to populate IA_PDs with
    prefixes.  The requesting router includes one or more IA_PD options
    in the Request message.  The delegating router then returns the
    prefixes for the IA_PDs to the requesting router in IA_PD options in
    a Reply message.

    https://tools.ietf.org/html/rfc3633#section-12.1
Test Name Synopsis
Verify client renews prefix when current binding expires dhcpv6_pd_2 Verify client renews prefix when current binding expires


    step 1. Wait for DHCPv6 client's current prefix binding
            T1 timer to expire
    step 2. Verify DHCPv6 client sends DHCPv6 Renew
    step 3. Verify Renew contains Server Identifier option (2) with correct
            server DUID
    step 4. Verify Renew contains IA_NA option (3) for same address
            prefix
    step 5. Send valid Reply to update binding


    References:

    IETF RFC 3633 "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6" Section 7: Overview of DHCP with Prefix Delegation

    Before the valid lifetime on each delegated prefix expires, the
    requesting router includes the prefix in an IA_PD option sent in a
    Renew message to the delegating router.  The delegating router
    responds by returning the prefix with updated lifetimes to the
    requesting router.

    https://tools.ietf.org/html/rfc3633#section-7

dhcpv6-s.tcl

DHCPv6 server tests for the LAN side of the router

Test Name Synopsis
Verify server assigns same address after client restart dhcpv6_server_1 Verify server assigns same address after client restart


    step 1. Restart DHCPv6 on LAN client without sending a Release to the server
    step 2. Verify that the server assigns an address to the client
    step 3. Verify that the address assigned by the server is the same as the
            client's original address


    References:

    IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.2.1: Receipt of Request Messages

    https://tools.ietf.org/html/rfc3315#section-18.2.1

6to4.tcl

6to4 tunnel tests for connecting IPv6 hosts over IPv4 networks

Test Name Synopsis
Verify IPv6 Router Advertisements include 6to4 prefix based on IPv4 WAN ipv6_6to4_1 Verify IPv6 Router Advertisements include 6to4 prefix based on IPv4 WAN


    step 1. Listen for IPv6 RA from DUT
    step 2. Verify RA contains 6to4 prefix based on public IPv4 WAN
    step 3. Verify 6to4 prefix contains a valid lifetime


    References:

    IETF RFC 3056 "Connection of IPv6 Domains via IPv4 Clouds" Section 2: IPv6 Prefix Allocation

    https://tools.ietf.org/html/rfc3056#section-2

6rd.tcl

6rd tunnel tests for connecting IPv6 hosts over IPv4 networks

Test Name Synopsis
Verify IPv6 Router Advertisements include 6rd prefix based on IPv4 WAN ipv6_6rd_1 Verify IPv6 Router Advertisements include 6rd prefix based on IPv4 WAN


    step 1. Listen for IPv6 RA from DUT
    step 2. Verify RA contains 6rd prefix based on public IPv4 WAN
    step 3. Verify 6rd prefix contains a valid lifetime


    References:

    IETF RFC 5969 "IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)"

    https://tools.ietf.org/html/rfc5969

icmp-v6.tcl

ICMPv6 tests for baseline ICMPv6 not including Neighbor Discovery

Test Name Synopsis
Verify ICMPv6 Echo Requests work through DUT icmpv6_1 Verify ICMPv6 Echo Requests work through DUT


    step 1. Initiate an outbound ICMPv6 Echo Request to a WAN IPv6 destination
    step 2. Verify ICMPv6 Echo Reply is received


    References:

    IETF RFC 4443 "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification"

    https://tools.ietf.org/html/rfc4443

snmp.tcl

SNMP related test cases from the LAN side of the device

Test Name Synopsis
Verify SNMP agent supports MIB walk snmp_100 Verify SNMP agent supports MIB walk


    step 1. Start the SNMP manager on the LAN using the settings and
            options defined for the default SNMP user
    step 2. Verify that the SNMP manager is able to walk the SNMP
            agent's MIB by sending consecutive GetNextRequest PDUs
            starting with the SNMPv2-SMI::internet OID
    step 3. Verify that the SNMP agent responds to the GetNextRequests
            sent by the SNMP manager


    References:

    IETF RFC 1157 "A Simple Network Management Protocol (SNMP)"

    https://tools.ietf.org/html/rfc1157

    IETF RFC 1901 "Introduction to Community-based SNMPv2"

    https://tools.ietf.org/html/rfc1901

    IETF RFC 3410 "Introduction and Applicability Statements for Internet Standard Management Framework"

    https://tools.ietf.org/html/rfc3410
Test Name Synopsis
Verify SNMP agent supports GetRequest snmp_101 Verify SNMP agent supports GetRequest


    step 1. Start the SNMP manager on the LAN using the settings and
            options defined for the default SNMP user
    step 2. Send a GetRequest PDU to the SNMP agent for the
            SNMPv2-MIB::sysDescr OID
    step 3. Verify that the SNMP agent responds to the GetRequest sent
            by the SNMP manager


    References:

    IETF RFC 1157 "A Simple Network Management Protocol (SNMP)"

    https://tools.ietf.org/html/rfc1157

    IETF RFC 1901 "Introduction to Community-based SNMPv2"

    https://tools.ietf.org/html/rfc1901

    IETF RFC 3410 "Introduction and Applicability Statements for Internet Standard Management Framework"

    https://tools.ietf.org/html/rfc3410

nmap.tcl

Nmap based IPv4 portscan tests from the LAN side of the device

Test Name Synopsis
Nmap IPv4 TCP Connect scan v4_lan_tcp_connect_info Nmap IPv4 TCP Connect scan


    step 1. Initiate a Nmap IPv4 TCP Connect scan from the LAN
    step 2. Display the final Nmap report

    References:

    Nmap Network Scanning "The Official Nmap Project Guide to Network Discovery and Security Scanning"

    https://nmap.org/book/toc.html
Test Name Synopsis
Nmap IPv4 TCP Syn scan v4_lan_tcp_syn_info Nmap IPv4 TCP Syn scan


    step 1. Initiate a Nmap IPv4 TCP Syn scan from the LAN
    step 2. Display the final Nmap report

    References:

    Nmap Network Scanning "The Official Nmap Project Guide to Network Discovery and Security Scanning"

    https://nmap.org/book/toc.html

nmap-v6.tcl

Nmap based IPv6 portscan tests from the LAN side of the device

Test Name Synopsis
Nmap IPv6 TCP Connect scan v6_lan_tcp_connect_info Nmap IPv6 TCP Connect scan


    step 1. Initiate a Nmap IPv6 TCP Connect scan from the LAN
    step 2. Display the final Nmap report

    References:

    Nmap Network Scanning "The Official Nmap Project Guide to Network Discovery and Security Scanning"

    https://nmap.org/book/toc.html
Test Name Synopsis
Nmap IPv6 TCP Syn scan v6_lan_tcp_syn_info Nmap IPv6 TCP Syn scan


    step 1. Initiate a Nmap IPv6 TCP Syn scan from the LAN
    step 2. Display the final Nmap report

    References:

    Nmap Network Scanning "The Official Nmap Project Guide to Network Discovery and Security Scanning"

    https://nmap.org/book/toc.html

smb.tcl

SMB IPv4 storage tests

Test Name Synopsis
Verify SMB server responds to a service lookup smb_1 Verify SMB server responds to a service lookup


    step 1. Resolve the SMB server name using DNS or NetBIOS
    step 2. Start a new SMB client on the LAN
    step 3. Verify that the SMB client is able to log in to the SMB server and
            perform a service lookup
    step 4. Verify that the SMB server responds to the service lookup request
Test Name Synopsis
Verify SMB server allows directory listing smb_2 Verify SMB server allows directory listing


    step 1. Resolve the SMB server name using DNS or NetBIOS
    step 2. Start a new SMB client on the LAN
    step 3. Verify that the SMB client is able to log in to the SMB server and
            perform a directory listing
    step 4. Verify that the SMB server responds to the directory listing

    NOTE: CDRouter's SMB client will perform a directory listing on the folder
    specified by the testvars share and folder for the applicable smbuser

ftp.tcl

FTP IPv4 storage tests

Test Name Synopsis
Verify FTP server allows directory listing ftp_2 Verify FTP server allows directory listing


    step 1. Resolve the FTP server name using DNS or NetBIOS
    step 2. Start a new FTP client on the LAN
    step 3. Verify that the FTP client is able to log in to the FTP server and
            perform a directory listing
    step 4. Verify that the FTP server responds to the directory listing

    NOTE: CDRouter's FTP client will perform a directory listing on the
    directory specified by the testvar path for the applicable ftpuser


    References:

    IETF RFC 959 "FILE TRANSFER PROTOCOL (FTP)"

    https://tools.ietf.org/html/rfc959
Test Name Synopsis
Verify FTP server allows name list command ftp_3 Verify FTP server allows name list command


    step 1. Resolve the FTP server name using DNS or NetBIOS
    step 2. Start a new FTP client on the LAN
    step 3. Verify that the FTP client is able to log in to the FTP server and
            perform a name list command
    step 4. Verify that the FTP server responds to the name list

    NOTE: CDRouter's FTP client will perform a directory listing on the
    directory specified by the testvar path for the applicable ftpuser


    References:

    IETF RFC 959 "FILE TRANSFER PROTOCOL (FTP)"

    https://tools.ietf.org/html/rfc959

dhcp-docsis.tcl

DOCSIS CM DHCP client related tests

Test Name Synopsis
Verify CM DHCP client renews lease when current lease expires docsis_dhcp_1 Verify CM DHCP client renews lease when current lease expires


    step 1. Wait for DHCP lease to expire on CM
    step 2. Verify CM sends DHCPREQUEST for same IP address
    step 3. Reassign the same IP address


    References:

    IETF RFC 2131 "Dynamic Host Configuration Protocol"

    https://tools.ietf.org/html/rfc2131
Test Name Synopsis
Verify CM DHCP client resends DHCPREQUEST packet if server does not respond docsis_dhcp_2 Verify CM DHCP client resends DHCPREQUEST packet if server does not respond


    step 1. Disable DOCSIS DHCP server
    step 2. Wait for DHCP lease to expire on CM
    step 3. Verify CM sends DHCPREQUEST for same IP address
    step 4. Do not respond to request
    step 5. Enable DOCSIS DHCP server
    step 6. Verify CM resends DHCPREQUEST for same IP address
    step 7. Respond to request and reassign the same IP address


    References:

    IETF RFC 2131 "Dynamic Host Configuration Protocol"

    https://tools.ietf.org/html/rfc2131

usp_basic.tcl

Basic USP functionality tests

Test Name Synopsis
Verify that the Agent supports the Get message usp_basic_1 Verify that the Agent supports the Get message


    Procedure:

    1. Send a Get message for Device.LocalAgent. to the Agent

    Test Metrics:

    1. Verify that the Agent sends a valid GetResp message to the Controller


    References:

    BBF TR-369 Version 1.1.2 "User Services Platform (USP)"

    https://usp.technology/
Test Name Synopsis
Verify that the Agent supports the GetSupportedDM message usp_basic_2 Verify that the Agent supports the GetSupportedDM message


    Procedure:

    1. Send a Get message for the Device.LocalAgent. to the Agent

    Test Metrics:

    1. Verify that the Agent sends a valid GetSupportedDMResp message to the
       Controller


    References:

    BBF TR-369 Version 1.1.2 "User Services Platform (USP)"

    https://usp.technology/