CDRouter DOCSIS Test Summaries (Full)
Test Case Descriptions
- Modules: 8
- Test Cases: 112
Below is a full description of the testcases in each module
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
Test |
Name |
Synopsis |
Verify CM DHCP client drops back into DISCOVERY mode if server stops responding |
docsis_dhcp_3 |
Verify CM DHCP client drops back into DISCOVERY mode if server stops responding |
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. Verify CM DHCP client restarts and sends DHCPDISCOVER
step 6. Enable DOCSIS DHCP server
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
Test |
Name |
Synopsis |
Verify CM DHCP client drops back into DISCOVERY mode if server sends a DHCPNAK |
docsis_dhcp_4 |
Verify CM DHCP client drops back into DISCOVERY mode if server sends a DHCPNAK |
step 1. Configure DOCSIS DHCP server to respond to all DHCP requests with
DHCPNAK
step 2. Wait for DHCP lease to expire on CM
step 3. Verify CM sends DHCPREQUEST for same IP address
step 4. Send DHCPNAK to CM
step 5. Verify CM DHCP client restarts and sends DHCPDISCOVER before any
other messages
step 6. Restore DOCSIS DHCP server's original behavior
step 7. Respond to request and reassign the same IP address
NOTE: Some DOCSIS CM interfaces may send a DHCPRELEASE when transitioning
from into the restart state. This is not part of the normal RFC 2131 state
machine, but DOCSIS 3.0 MAC and Upper Layer Protocols Interface
Specification 10.2.5.2.4 requires a DHCPRELEASE for a reset.
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol" Section 3.2: Client-server interaction - reusing a previously allocated network address
If the client receives a DHCPNAK message, it cannot reuse its
remembered network address. It must instead request a new
address by restarting the configuration process, this time
using the (non-abbreviated) procedure described in section
3.1. This action also corresponds to the client moving to
the INIT state in the DHCP state diagram.
https://tools.ietf.org/html/rfc2131#section-3.2
Test |
Name |
Synopsis |
Verify CM DHCP client remains in DISCOVERY mode if server sends a DHCPNAK |
docsis_dhcp_5 |
Verify CM DHCP client remains in DISCOVERY mode if server sends a DHCPNAK |
step 1. Configure DOCSIS DHCP server to respond to all DHCP requests with
DHCPNAK
step 2. Wait for DHCP lease to expire on CM
step 3. Verify CM sends DHCPREQUEST for same IP address
step 4. Send DHCPNAK to CM
step 5. Verify CM DHCP client restarts and sends DHCPDISCOVER before any
other messages
step 6. Send DHCPOFFER to CM
step 7. Verify CM DHCP client sends a broadcast DHCPREQUEST
step 8. Send DHCPNAK to CM
step 9. Verify CM DHCP client restarts and sends DHCPDISCOVER before any
other DHCP message
step 10. Restore DOCSIS DHCP server's original behavior
step 11. Respond to request and reassign the same IP address
NOTE: Some DOCSIS CM interfaces may send a DHCPRELEASE when transitioning
from into the restart state. This is not part of the normal RFC 2131 state
machine, but DOCSIS 3.0 MAC and Upper Layer Protocols Interface
Specification 10.2.5.2.4 requires a DHCPRELEASE for a reset.
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol" Section 3.1: Client-server interaction - allocating a network address
If the client receives a DHCPNAK message, the client restarts the
configuration process.
https://tools.ietf.org/html/rfc2131#section-3.1
Test |
Name |
Synopsis |
Verify CM DHCP client ignores site-specific DHCP options |
docsis_dhcp_10 |
Verify CM DHCP client ignores site-specific DHCP options |
step 1. Disable DOCSIS DHCP server to force CM DHCP client back into
DISCOVERY mode
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. Verify CM DHCP client restarts and sends DHCPDISCOVER
step 6. Enable DOCSIS DHCP server with site specific options
step 7. Verify DHCP client is able to obtain new IP address
step 8. Restore DOCSIS DHCP server's original behavior
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol"
https://tools.ietf.org/html/rfc2131
Test |
Name |
Synopsis |
Verify CM DHCP client handles server option with length 0 |
docsis_dhcp_11 |
Verify CM DHCP client handles server option with length 0 |
step 1. Disable DOCSIS DHCP server to force CM DHCP client back into
DISCOVERY mode
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. Verify CM DHCP client restarts and sends DHCPDISCOVER
step 7. Enable DOCSIS DHCP server with 0 length site specific option
step 8. Verify DHCP client is able to obtain an address
step 9. Restore DOCSIS DHCP server's original behavior
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol"
https://tools.ietf.org/html/rfc2131
Test |
Name |
Synopsis |
Verify CM DHCP client ignores DHCP packets with corrupt UDP checksum |
docsis_dhcp_20 |
Verify CM DHCP client ignores DHCP packets with corrupt UDP checksum |
step 1. Configure DOCSIS DHCP server to send DHCP packets with corrupt UDP
checksum
step 2. Wait for DHCP lease to expire on CM
step 3. Verify CM sends DHCPREQUEST for same IP address
step 4. Send DHCPOFFER with invalid UDP checksum
step 5. Verify CM DHCP client restarts and sends DHCPDISCOVER
step 6. Verify CM DHCP client sends a second DHCPDISCOVER message
step 7. Restore DOCSIS DHCP server's original behavior
step 8. Verify DHCP client is able to obtain an address
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol"
https://tools.ietf.org/html/rfc2131
Test |
Name |
Synopsis |
Verify CM DHCP client includes vendor defined options |
docsis_dhcp_30 |
Verify CM DHCP client includes vendor defined options |
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
step 4. Search DHCPREQUEST for expected options
The testvars docsisDhcpClientOptionCode and docsisDhcpClientOptionData can
be used to configure a list of DHCP options that the CM DHCP client should
include in requests sent to the DHCP server.
References:
IETF RFC 2131 "Dynamic Host Configuration Protocol"
https://tools.ietf.org/html/rfc2131
Test |
Name |
Synopsis |
Verify CM client supports DHCP Rapid Commit option |
docsis_dhcp_31 |
Verify CM client supports DHCP Rapid Commit option |
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. Verify CM DHCP client restarts and sends DHCPDISCOVER
step 6. Verify DHCPDISCOVER contains Rapid Commit option
step 7. Enable DOCSIS DHCP server
step 8. Respond to request and reassign the same IP address
References:
IETF RFC 4039 "Rapid Commit Option for the Dynamic Host Configuration Protocol version 4 (DHCPv4)" Section 3.1: Client/Server Operation
https://tools.ietf.org/html/rfc4039#section-3.1
dhcpv6-docsis.tcl
DOCSIS CM DHCPv6 client related tests
Test |
Name |
Synopsis |
Verify CM client requests the assignment of a non-temporary address |
docsis_dhcpv6_1 |
Verify CM client requests the assignment of a non-temporary address |
step 1. Check existing DHCPv6 bindings of the CM
step 2. Verify whether or not a non-temporary address binding exists
step 3. Verify Valid and Preferred lifetimes for binding
step 4. Verify that the binding has not expired
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 17: DHCP Server Solicitation
https://tools.ietf.org/html/rfc3315#section-17
Test |
Name |
Synopsis |
Verify CM client renews non-temporary address when current binding expires |
docsis_dhcpv6_2 |
Verify CM client renews non-temporary address when current binding expires |
step 1. Wait for DHCPv6 client's current non-temporary address 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 non-temporary
address
step 5. Send valid Reply to update binding
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1.3: Creation and Transmission of Renew Messages
To extend the valid and preferred lifetimes for the addresses
associated with an IA, the client sends a Renew message to the server
from which the client obtained the addresses in the IA containing an
IA option for the IA. The client includes IA Address options in the
IA option for the addresses associated with the IA. The server
determines new lifetimes for the addresses in the IA according to the
administrative configuration of the server.
https://tools.ietf.org/html/rfc3315#section-18.1.3
Test |
Name |
Synopsis |
Verify CM client obtains address from server using various undefined server DUID values |
docsis_dhcpv6_4 |
Verify CM client obtains address from server using various undefined server DUID values |
step 1. Configure the server to use an undefined server DUID format
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message and obtains an IPv6 address
step 5. Repeat steps 1 - 4 for various undefined DUID server formats
step 6. Reestablish the DHCPv6 binding using the original DUID format
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 9: DHCP Unique Identifier (DUID)
https://tools.ietf.org/html/rfc3315#section-9
Test |
Name |
Synopsis |
Verify CM client ignores replies with mismatched client DUID |
docsis_dhcpv6_10 |
Verify CM client ignores replies with mismatched client DUID |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Respond to first Solicit message with incorrect Client
Identifier option(1) DUID
step 6. Verify client restransmits Solicit message
step 7. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 17.1.2: Transmission of Solicit Messages
If the client does not receive any Advertise messages before the
first RT has elapsed, it begins the retransmission mechanism
described in section 14. The client terminates the retransmission
process as soon as it receives any Advertise message, and the client
acts on the received Advertise message without waiting for any
additional Advertise messages.
https://tools.ietf.org/html/rfc3315#section-17.1.2
Test |
Name |
Synopsis |
Verify CM client ignores unknown or invalid DHCPv6 packets |
docsis_dhcpv6_11 |
Verify CM client ignores unknown or invalid DHCPv6 packets |
step 1. Send invalid DHCPv6 packet with message type 0 to CM client
step 2. Verify that client does not respond to packet transmitted
in Step 1
step 3. Repeat steps 1 and 2 for message types 1 through 255
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
https://tools.ietf.org/html/rfc3315
Test |
Name |
Synopsis |
Verify CM client handles fragmented IPv6 packets |
docsis_dhcpv6_14 |
Verify CM client handles fragmented IPv6 packets |
step 1. Configure DHCPv6 server to use a large User Class option (15)
to force IPv6 fragmentation
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message
step 5. Respond to first Solicit message with Advertise containing
large User Class Option (15) causing fragmentation
step 6. Verify client sends valid Request in response to Advertise
step 7. Disable server User Class option (15) created in Step 1
step 8. If client fails Step 6, cleanup and wait for client to
retransmit Solicit message
step 9. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1: Client Behavior
https://tools.ietf.org/html/rfc3315#section-18.1
Test |
Name |
Synopsis |
Verify CM client ignores server messages with invalid UDP checksum |
docsis_dhcpv6_15 |
Verify CM client ignores server messages with invalid UDP checksum |
step 1. Configure DHCPv6 server to use bad UDP checksums
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message
step 5. Respond to first Solicit message with Advertise containing
invalid UDP checksum
step 6. Verify client does not send valid Request in response to
Advertise
step 7. Configure DHCPv6 server to use valid UDP checksums
step 8. Wait for client to retransmit Solicit message
step 9. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
https://tools.ietf.org/html/rfc3315
Test |
Name |
Synopsis |
Verify CM client composes DUID correctly |
docsis_dhcpv6_16 |
Verify CM client composes DUID correctly |
step 1. Wait for DHCPv6 client's current non-temporary address binding
T1 timer to expire
step 2. Verify DHCPv6 client sends DHCPv6 Renew
step 3. Inspect the composition of the DUID to ensure correctness
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 9: DHCP Unique Identifier (DUID)
https://tools.ietf.org/html/rfc3315#section-9
Test |
Name |
Synopsis |
Verify CM client restarts when NoBinding failure occurs during Renew |
docsis_dhcpv6_20 |
Verify CM client restarts when NoBinding failure occurs during Renew |
step 1. Wait for DHCPv6 client's current non-temporary address binding
T1 timer to expire
step 2. Verify DHCPv6 client sends DHCPv6 Renew
step 3. Verify Renew contains IA_NA option (3) for same non-temporary
address
step 4. Send valid DHCPv6 Reply with NoBinding status code (3)
step 5. Verify DHCPv6 client sends Request message
step 6. Verify Request contains IA_NA option (3) for same non-temporary
address
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1.8: Receipt of Reply Messages
When the client receives a Reply message in response to a Renew or
Rebind message, the client examines each IA independently. For each
IA in the original Renew or Rebind message, the client:
- sends a Request message if the IA contained a Status Code option
with the NoBinding status (and does not send any additional
Renew/Rebind messages)
- sends a Renew/Rebind if the IA is not in the Reply message
- otherwise accepts the information in the IA
https://tools.ietf.org/html/rfc3315#section-18.1.8
Test |
Name |
Synopsis |
Verify CM client restarts when UnspecFail failure occurs during Renew |
docsis_dhcpv6_21 |
Verify CM client restarts when UnspecFail failure occurs during Renew |
step 1. Wait for DHCPv6 client's current non-temporary address binding
T1 timer to expire
step 2. Verify DHCPv6 client sends DHCPv6 Renew
step 3. Verify Renew contains IA_NA option (3) for same non-temporary
address
step 4. Send valid DHCPv6 Reply with UnspecFail status code (1)
step 5. Verify DHCPv6 client recovers by retransmitting Renew or
sending Request
step 6. Verify Renew or Request contains IA_NA option (3) for same
non-temporary address
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1.8: Receipt of Reply Messages
If the client receives a Reply message with a Status Code containing
UnspecFail, the server is indicating that it was unable to process
the message due to an unspecified failure condition. If the client
retransmits the original message to the same server to retry the
desired operation, the client MUST limit the rate at which it
retransmits the message and limit the duration of the time during
which it retransmits the message.
https://tools.ietf.org/html/rfc3315#section-18.1.8
Test |
Name |
Synopsis |
Verify CM client sends Rebind message if Renew for non-temporary address fails |
docsis_dhcpv6_30 |
Verify CM client sends Rebind message if Renew for non-temporary address fails |
step 1. Wait for DHCPv6 client's current non-temporary address binding
T1 to expire
step 2. Verify DHCPv6 client sends DHCPv6 Renew
step 3. Do not respond to Renew message
step 4. Verify DHCPv6 client sends Rebind message
step 5. Verify Rebind contains IA_NA option (3) for same non-temporary
address
step 6. Send valid Reply to update binding
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1.4: Creation and Transmission of Rebind Messages
At time T2 for an IA (which will only be reached if the server to
which the Renew message was sent at time T1 has not responded), the
client initiates a Rebind/Reply message exchange with any available
server. The client includes an IA option with all addresses
currently assigned to the IA in its Rebind message.
https://tools.ietf.org/html/rfc3315#section-18.1.4
Test |
Name |
Synopsis |
Verify CM client sends Solicit message if Renew and Rebind for non-temporary address fails |
docsis_dhcpv6_31 |
Verify CM client sends Solicit message if Renew and Rebind for non-temporary address fails |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1.4: Creation and Transmission of Rebind Messages
The message exchange is terminated when the valid lifetimes of all
the addresses assigned to the IA expire (see section 10), at which
time the client has several alternative actions to choose from; for
example:
- The client may choose to use a Solicit message to locate a new
DHCP server and send a Request for the expired IA to the new
server.
- The client may have other addresses in other IAs, so the client
may choose to discard the expired IA and use the addresses in the
other IAs.
https://tools.ietf.org/html/rfc3315#section-18.1.4
Test |
Name |
Synopsis |
Verify CM client retransmits DHCPv6 Solicit messages for non-temporary address |
docsis_dhcpv6_50 |
Verify CM client retransmits DHCPv6 Solicit messages for non-temporary address |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Do not respond to first Solicit message
step 6. Verify client restransmits Solicit message
step 7. Verify retransmitted Solicit message contains same transaction
ID as first Solicit message
step 8. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 15.1: Use of Transaction IDs
The "transaction-id" field holds a value used by clients and servers
to synchronize server responses to client messages. A client SHOULD
generate a random number that cannot easily be guessed or predicted
to use as the transaction ID for each new message it sends. Note
that if a client generates easily predictable transaction
identifiers, it may become more vulnerable to certain kinds of
attacks from off-path intruders. A client MUST leave the transaction
ID unchanged in retransmissions of a message.
https://tools.ietf.org/html/rfc3315#section-15.1
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 17.1.2: Transmission of Solicit Messages
If the client does not receive any Advertise messages before the
first RT has elapsed, it begins the retransmission mechanism
described in section 14. The client terminates the retransmission
process as soon as it receives any Advertise message, and the client
acts on the received Advertise message without waiting for any
additional Advertise messages.
https://tools.ietf.org/html/rfc3315#section-17.1.2
Test |
Name |
Synopsis |
Verify CM client retransmits DHCPv6 Request messages for non-temporary address |
docsis_dhcpv6_51 |
Verify CM client retransmits DHCPv6 Request messages for non-temporary address |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Send valid Advertise message
step 6. Verify client sends Request message containing IA_NA option (3)
step 7. Do not respond to Request message
step 8. Verify client retransmists Request message
step 9. Verify retransmitted Request message contains same transaction
ID as first Request message
step 10. Send valid Advertise message and wait for transaction to
finish
NOTE: This test will not work if Rapid-Commit is used!
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 14: Reliability of Client Initiated Message Exchanges
DHCP clients are responsible for reliable delivery of messages in the
client-initiated message exchanges described in sections 17 and 18.
If a DHCP client fails to receive an expected response from a server,
the client must retransmit its message. This section describes the
retransmission strategy to be used by clients in client-initiated
message exchanges.
https://tools.ietf.org/html/rfc3315#section-14
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 15.1: Use of Transaction IDs
The "transaction-id" field holds a value used by clients and servers
to synchronize server responses to client messages. A client SHOULD
generate a random number that cannot easily be guessed or predicted
to use as the transaction ID for each new message it sends. Note
that if a client generates easily predictable transaction
identifiers, it may become more vulnerable to certain kinds of
attacks from off-path intruders. A client MUST leave the transaction
ID unchanged in retransmissions of a message.
https://tools.ietf.org/html/rfc3315#section-15.1
Test |
Name |
Synopsis |
Verify CM client obtains IPv6 address when server uses unknown DHCPv6 options |
docsis_dhcpv6_100 |
Verify CM client obtains IPv6 address when server uses unknown DHCPv6 options |
step 1. Configure DHCPv6 server to use unknown DHCPv6 option type
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message
step 5. Respond to first Solicit message with Advertise containing
unknown DHCPv6 option type
step 6. Verify client sends valid Request in response to Advertise
step 7. Disable unknown DHCPv6 server option
step 8. If client fails Step 6, cleanup and wait for client to
retransmit Solicit message
step 9. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1: Client Behavior
https://tools.ietf.org/html/rfc3315#section-18.1
Test |
Name |
Synopsis |
Verify CM client ignores DHCPv6 messages with unknown options and invalid option length |
docsis_dhcpv6_101 |
Verify CM client ignores DHCPv6 messages with unknown options and invalid option length |
step 1. Configure DHCPv6 server to use unknown DHCPv6 option type
with invalid length
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message
step 5. Respond to first Solicit message with Advertise containing
unknown DHCPv6 option type
step 6. Verify client does not send valid Request in response to
Advertise
step 7. Disable unknown DHCPv6 server option
step 8. Wait for client to retransmit Solicit message
step 9. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 18.1: Client Behavior
https://tools.ietf.org/html/rfc3315#section-18.1
Test |
Name |
Synopsis |
Verify CM client includes the Elapsed Time option with value 0 in first message |
docsis_dhcpv6_102 |
Verify CM client includes the Elapsed Time option with value 0 in first message |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Verify Solicit contains Elapsed Time option (8) with value of 0
step 6. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 22.9: Elapsed Time Option
A client MUST include an Elapsed Time option in messages to indicate
how long the client has been trying to complete a DHCP message
exchange. The elapsed time is measured from the time at which the
client sent the first message in the message exchange, and the
elapsed-time field is set to 0 in the first message in the message
exchange.
https://tools.ietf.org/html/rfc3315#section-22.9
Test |
Name |
Synopsis |
Verify CM client increases value of Elapsed Time option when Solicit is retransmitted |
docsis_dhcpv6_103 |
Verify CM client increases value of Elapsed Time option when Solicit is retransmitted |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains IA_NA option (3)
step 5. Verify Solicit contains Elapsed Time option (8) with value of 0
step 6. Do not respond to Solicit
step 7. Verify client retransmists Solicit message
step 8. Verify retransmitted Solicit message contains Elapsed Time option
(8) with a value greater than 0
step 9. Send valid Advertise message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 22.9: Elapsed Time Option
A client MUST include an Elapsed Time option in messages to indicate
how long the client has been trying to complete a DHCP message
exchange. The elapsed time is measured from the time at which the
client sent the first message in the message exchange, and the
elapsed-time field is set to 0 in the first message in the message
exchange.
https://tools.ietf.org/html/rfc3315#section-22.9
Test |
Name |
Synopsis |
Verify CM client handles Server Unicast Option |
docsis_dhcpv6_130 |
Verify CM client handles Server Unicast Option |
step 1. Configure DHCPv6 server to use Server Unicast Option (12)
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew or Rebind messages from client
step 4. Verify client sends Solicit message
step 5. Respond to first Solicit message with Advertise containing
Server Unicast Option (12)
step 6. Verify client sends valid Renew message
step 7. Verify Renew message in Step 6 is sent to the address in
the Server Unicast Option (12)
step 8. Disable Server Unicast option (12) created in Step 1
step 9. If client fails Step 6, cleanup and wait for client to
retransmit Solicit message
step 10. Send valid Advertise message and wait for transaction to
finish
Reference: IETF RFC 3315 Section 22.12 "Server Unicast Option"
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 22.12: Server Unicast Option
https://tools.ietf.org/html/rfc3315#section-22.12
Test |
Name |
Synopsis |
Verify CM client handles SOL_MAX_RT Option |
docsis_dhcpv6_140 |
Verify CM client handles SOL_MAX_RT Option |
step 1. Configure DHCPv6 server to use Max Solicit Timeout Option (82)
step 2. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 3. Do not respond to Renew, Rebind or Solicit messages from
client
step 4. Verify client sends Solicit message
step 5. Verify client uses the value of the Max
Solicit Timeout option returned by the DHCPv6 server to
limit the maximum delay for retransmissions of its
Solicit message
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 14: Reliability of Client Initiated Message Exchanges
https://tools.ietf.org/html/rfc3315#section-14
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 17.1.2: Transmission of Solicit Messages
https://tools.ietf.org/html/rfc3315#section-17.1.2
IETF RFC 7083 "DHCPv6 SOL_MAX_RT Option" Section 6: Updates for SOL_MAX_RT and INF_MAX_RT Options to RFC 3315
https://tools.ietf.org/html/rfc7083#section-6
Test |
Name |
Synopsis |
Verify CM DHCPv6 client includes vendor defined options |
docsis_dhcpv6_150 |
Verify CM DHCPv6 client includes vendor defined options |
step 1. Wait for DHCPv6 client to renew address
step 2. Search DHCPv6 Renew message from client for expected options
The testvars docsisDhcpv6ClientOptionCode and docsisDhcpv6ClientOptionData can be
used to configure a list of DHCP options that the client should include in
requests sent to the DHCP server.
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
https://tools.ietf.org/html/rfc3315
Test |
Name |
Synopsis |
Verify CM client supports DHCPv6 Rapid Commit option |
docsis_dhcpv6_160 |
Verify CM client supports DHCPv6 Rapid Commit option |
step 1. Wait for DHCPv6 client's current non-temporary address binding
to expire
step 2. Do not respond to Renew or Rebind messages from client
step 3. Verify client sends Solicit message
step 4. Verify Solicit contains the 'Rapid Commit' option
step 5. Send valid Reply message and wait for transaction to
finish
References:
IETF RFC 3315 "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" Section 22.14: Rapid Commit Option
A client MAY include this option in a Solicit message if the client
is prepared to perform the Solicit-Reply message exchange described
in section 17.1.1.
A server MUST include this option in a Reply message sent in response
to a Solicit message when completing the Solicit-Reply message
exchange.
https://tools.ietf.org/html/rfc3315#section-22.14
snmp-docsis.tcl
SNMP related test cases against DOCSIS CM on WAN
Test |
Name |
Synopsis |
Verify CM SNMP agent supports MIB walk |
snmp_docsis_100 |
Verify CM SNMP agent supports MIB walk |
step 1. Start the SNMP manager on the CM 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 CM SNMP agent supports GetRequest |
snmp_docsis_101 |
Verify CM SNMP agent supports GetRequest |
step 1. Start the SNMP manager on the CM 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
Test |
Name |
Synopsis |
Verify CM SNMP agent supports GetNextRequest |
snmp_docsis_102 |
Verify CM SNMP agent supports GetNextRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetNextRequest PDU to the SNMP agent for the
SNMPv2-MIB::sysDescr OID
step 3. Verify that the SNMP agent responds to the GetNextRequest
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 CM SNMP agent supports GetRequest for multiple OIDs |
snmp_docsis_103 |
Verify CM SNMP agent supports GetRequest for multiple OIDs |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetRequest PDU to the SNMP agent for OIDs
SNMPv2-MIB::sysDescr, SNMPv2-MIB::sysObjectID and
SNMPv2-MIB::sysUpTimeInstance
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
Test |
Name |
Synopsis |
Verify CM SNMP agent supports fragmented GetRequest |
snmp_docsis_104 |
Verify CM SNMP agent supports fragmented GetRequest |
step 1. Start the SNMP manager on the CM 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. Send a large GetRequest PDU to the SNMP agent for the first
100 OIDs returned in step 2; this GetRequest should be large
enough to span multiple packets
step 4. Verify that the SNMP agent responds to the fragmented
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
Test |
Name |
Synopsis |
Verify CM SNMP agent does not allow SetRequest on read-only OID |
snmp_docsis_105 |
Verify CM SNMP agent does not allow SetRequest on read-only OID |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-only
SNMPv2-MIB::sysDescr.0 OID
step 3. Verify that the SNMP agent does not change the value of the
specified OID
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 CM SNMP agent returns 'no such instance' to GetRequest for non-existent OID |
snmp_docsis_106 |
Verify CM SNMP agent returns ’no such instance’ to GetRequest for non-existent OID |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetRequest PDU to the SNMP agent for the
non-existent OID .1.3.6.1.2.1.1.1.0.0
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager with a 'no such instance' error
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 CM SNMP agent supports IF-MIB:: walk |
snmp_docsis_200 |
Verify CM SNMP agent supports IF-MIB:: walk |
step 1. Start the SNMP manager on the CM 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 interface MIB by sending consecutive GetNextRequest
PDUs for the IF-MIB::ifIndex, IF-MIB::ifDescr, and
IF-MIB::ifType OIDs
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 CM packet counters in IF-MIB::ifTable |
snmp_docsis_201 |
Verify CM packet counters in IF-MIB::ifTable |
step 1. Start the SNMP manager on the CM 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 interface MIB table by sending a GetBulkRequest PDU
for the IF-MIB::ifTable OID
step 3. Verify that the SNMP agent responds to the GetBulkRequests
sent by the SNMP manager
step 4. Find the DUT's CM interface in the IF-MIB::ifTable output
and record the current unicast outbound packet counter value
step 5. Send 10 UDP echo packets from LAN to WAN
step 6. Repeat steps 2 through 4
step 7. Wait snmpUpdateDelay seconds
step 8. Verify that the CM unicast outbound packet counter has
incremented by at least 10 in IF-MIB::ifTable output
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 CM system uptime using SNMPv2-MIB::sysUpTime |
snmp_docsis_202 |
Verify CM system uptime using SNMPv2-MIB::sysUpTime |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Verify that the SNMP manager is able to query the DUT's
system uptime by sending a GetRequest PDU for the
SNMPv2-MIB::sysUpTime.0 OID
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager and record the current system uptime
step 4. Wait 10 seconds
step 5. Repeat steps 2 and 3
step 6. Verify that the system uptime has increased by at least 10
seconds
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 CM SNMP agent supports MIB walk for all configured users |
snmp_docsis_300 |
Verify CM SNMP agent supports MIB walk for all configured users |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first 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
step 4. Repeat steps 1 through 3 for all configured SNMP users
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 CM SNMP agent ignores SNMP v1/2c users with invalid community string |
snmp_docsis_301 |
Verify CM SNMP agent ignores SNMP v1/2c users with invalid community string |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v1/2c user
step 2. Verify that the SNMP manager is able to walk the SNMP
agent's MIB when a valid community string is specified
step 3. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid community string is specified
step 4. Repeat steps 1 and 2 for all configured SNMP v1/2c users
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 CM SNMP agent ignores SNMP v3 users with invalid credentials |
snmp_docsis_302 |
Verify CM SNMP agent ignores SNMP v3 users with invalid credentials |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v3 user
step 2. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication username is
specified
step 3. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication password is
specified
step 4. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid privacy password is specified
step 5. Repeat steps 1 through 4 for all configured SNMP v3 users
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 CM SNMP agent ignores SNMP v3 users with incorrect authentication and privacy protocols |
snmp_docsis_303 |
Verify CM SNMP agent ignores SNMP v3 users with incorrect authentication and privacy protocols |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v3 user
step 2. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication protocol is used
step 3. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid privacy protocol is used
step 4. Repeat steps 1 through 3 for all configured SNMP v3 users
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 CM SNMP agent supports MIB walk using GetBulkRequest |
snmp_docsis_304 |
Verify CM SNMP agent supports MIB walk using GetBulkRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v2c/3 user
step 2. Verify that the SNMP manager is able to walk the SNMP
agent's MIB by sending consecutive GetBulkRequest PDUs
starting with the SNMPv2-SMI::internet OID
step 3. Verify that the SNMP agent responds to the GetBulkRequest
sent by the SNMP manager
step 4. Repeat steps 1 through 3 for all configured SNMP v2c/3 users
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 CM SNMP agent supports GetBulkRequest |
snmp_docsis_305 |
Verify CM SNMP agent supports GetBulkRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v2c/3 user
step 2. Send an GetBulkRequest PDU to the SNMP agent for the
SNMPv2-MIB::sysDescr.0 OID
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager
step 4. Repeat steps 1 through 3 for all configured SNMP v2c/3 users
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 CM SNMP agent allows SetRequest on read-write OID |
snmp_docsis_400 |
Verify CM SNMP agent allows SetRequest on read-write OID |
step 1. Start the SNMP manager on the LAN using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-write
SNMPv2-MIB::sysName.0 OID
step 3. Verify that the SNMP agent changes the value of sysName.0 by
performing a SNMP GetResponse on the OID.
NOTE: If the snmpAccess for the default SNMP user is read-only, do
not consider this test a failure if the SNMP SetRequest fails.
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 CM resets after SNMP SetRequest on DOCS-CABLE-DEVICE-MIB::docsDevResetNow.0 |
snmp_docsis_500 |
Verify CM resets after SNMP SetRequest on DOCS-CABLE-DEVICE-MIB::docsDevResetNow.0 |
step 1. Start the SNMP manager on the LAN using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-write
docsDevResetNow OID
NOTE: If the snmpAccess for the default SNMP user is read-only, do
not consider this test a failure if the SNMP SetRequest fails.
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
snmp-docsis-v6.tcl
IPv6 SNMP related test cases against DOCSIS CM on WAN
Test |
Name |
Synopsis |
Verify CM SNMP agent supports MIB walk |
ipv6_snmp_docsis_100 |
Verify CM SNMP agent supports MIB walk |
step 1. Start the SNMP manager on the CM 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 CM SNMP agent supports GetRequest |
ipv6_snmp_docsis_101 |
Verify CM SNMP agent supports GetRequest |
step 1. Start the SNMP manager on the CM 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
Test |
Name |
Synopsis |
Verify CM SNMP agent supports GetNextRequest |
ipv6_snmp_docsis_102 |
Verify CM SNMP agent supports GetNextRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetNextRequest PDU to the SNMP agent for the
SNMPv2-MIB::sysDescr OID
step 3. Verify that the SNMP agent responds to the GetNextRequest
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 CM SNMP agent supports GetRequest for multiple OIDs |
ipv6_snmp_docsis_103 |
Verify CM SNMP agent supports GetRequest for multiple OIDs |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetRequest PDU to the SNMP agent for OIDs
SNMPv2-MIB::sysDescr, SNMPv2-MIB::sysObjectID and
SNMPv2-MIB::sysUpTimeInstance
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
Test |
Name |
Synopsis |
Verify CM SNMP agent supports fragmented GetRequest |
ipv6_snmp_docsis_104 |
Verify CM SNMP agent supports fragmented GetRequest |
step 1. Start the SNMP manager on the CM 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. Send a large GetRequest PDU to the SNMP agent for the first
100 OIDs returned in step 2; this GetRequest should be large
enough to span multiple packets
step 4. Verify that the SNMP agent responds to the fragmented
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
Test |
Name |
Synopsis |
Verify CM SNMP agent does not allow SetRequest on read-only OID |
ipv6_snmp_docsis_105 |
Verify CM SNMP agent does not allow SetRequest on read-only OID |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-only
SNMPv2-MIB::sysDescr.0 OID
step 3. Verify that the SNMP agent does not change the value of the
specified OID
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 CM SNMP agent returns 'no such instance' to GetRequest for non-existent OID |
ipv6_snmp_docsis_106 |
Verify CM SNMP agent returns ’no such instance’ to GetRequest for non-existent OID |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Send a GetRequest PDU to the SNMP agent for the
non-existent OID .1.3.6.1.2.1.1.1.0.0
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager with a 'no such instance' error
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 CM SNMP agent supports IF-MIB:: walk |
ipv6_snmp_docsis_200 |
Verify CM SNMP agent supports IF-MIB:: walk |
step 1. Start the SNMP manager on the CM 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 interface MIB by sending consecutive GetNextRequest
PDUs for the IF-MIB::ifIndex, IF-MIB::ifDescr, and
IF-MIB::ifType OIDs
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 CM packet counters in IF-MIB::ifTable |
ipv6_snmp_docsis_201 |
Verify CM packet counters in IF-MIB::ifTable |
step 1. Start the SNMP manager on the CM 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 interface MIB table by sending a GetBulkRequest PDU
for the IF-MIB::ifTable OID
step 3. Verify that the SNMP agent responds to the GetBulkRequests
sent by the SNMP manager
step 4. Find the DUT's CM interface in the IF-MIB::ifTable output
and record the current unicast outbound packet counter value
step 5. Send 10 UDP echo packets from LAN to WAN
step 6. Repeat steps 2 through 4
step 7. Wait snmpUpdateDelay seconds
step 8. Verify that the CM unicast outbound packet counter has
incremented by at least 10 in IF-MIB::ifTable output
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 CM system uptime using SNMPv2-MIB::sysUpTime |
ipv6_snmp_docsis_202 |
Verify CM system uptime using SNMPv2-MIB::sysUpTime |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the default SNMP user
step 2. Verify that the SNMP manager is able to query the DUT's
system uptime by sending a GetRequest PDU for the
SNMPv2-MIB::sysUpTime.0 OID
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager and record the current system uptime
step 4. Wait 10 seconds
step 5. Repeat steps 2 and 3
step 6. Verify that the system uptime has increased by at least 10
seconds
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 CM SNMP agent supports MIB walk for all configured users |
ipv6_snmp_docsis_300 |
Verify CM SNMP agent supports MIB walk for all configured users |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first 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
step 4. Repeat steps 1 through 3 for all configured SNMP users
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 CM SNMP agent ignores SNMP v1/2c users with invalid community string |
ipv6_snmp_docsis_301 |
Verify CM SNMP agent ignores SNMP v1/2c users with invalid community string |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v1/2c user
step 2. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid community string is specified
step 3. Repeat steps 1 and 2 for all configured SNMP v1/2c users
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 CM SNMP agent ignores SNMP v3 users with invalid credentials |
ipv6_snmp_docsis_302 |
Verify CM SNMP agent ignores SNMP v3 users with invalid credentials |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v3 user
step 2. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication username is
specified
step 3. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication password is
specified
step 4. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid privacy password is specified
step 5. Repeat steps 1 through 4 for all configured SNMP v3 users
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 CM SNMP agent ignores SNMP v3 users with incorrect authentication and privacy protocols |
ipv6_snmp_docsis_303 |
Verify CM SNMP agent ignores SNMP v3 users with incorrect authentication and privacy protocols |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v3 user
step 2. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid authentication protocol is used
step 3. Verify that the SNMP manager is unable to walk the SNMP
agent's MIB when an invalid privacy protocol is used
step 4. Repeat steps 1 through 3 for all configured SNMP v3 users
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 CM SNMP agent supports MIB walk using GetBulkRequest |
ipv6_snmp_docsis_304 |
Verify CM SNMP agent supports MIB walk using GetBulkRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v2c/3 user
step 2. Verify that the SNMP manager is able to walk the SNMP
agent's MIB by sending consecutive GetBulkRequest PDUs
starting with the SNMPv2-SMI::internet OID
step 3. Verify that the SNMP agent responds to the GetBulkRequest
sent by the SNMP manager
step 4. Repeat steps 1 through 3 for all configured SNMP v2c/3 users
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 CM SNMP agent supports GetBulkRequest |
ipv6_snmp_docsis_305 |
Verify CM SNMP agent supports GetBulkRequest |
step 1. Start the SNMP manager on the CM using the settings and
options defined for the first SNMP v2c/3 user
step 2. Send an GetBulkRequest PDU to the SNMP agent for the
SNMPv2-MIB::sysDescr.0 OID
step 3. Verify that the SNMP agent responds to the GetRequest sent
by the SNMP manager
step 4. Repeat steps 1 through 3 for all configured SNMP v2c/3 users
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 CM SNMP agent allows SetRequest on read-write OID |
ipv6_snmp_docsis_400 |
Verify CM SNMP agent allows SetRequest on read-write OID |
step 1. Start the SNMP manager on the LAN using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-write
SNMPv2-MIB::sysName.0 OID
step 3. Verify that the SNMP agent changes the value of sysName.0 by
performing a SNMP GetResponse on the OID.
NOTE: If the snmpAccess for the default SNMP user is read-only, do
not consider this test a failure if the SNMP SetRequest fails.
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 CM resets after SNMP SetRequest on DOCS-CABLE-DEVICE-MIB::docsDevResetNow.0 |
ipv6_snmp_docsis_500 |
Verify CM resets after SNMP SetRequest on DOCS-CABLE-DEVICE-MIB::docsDevResetNow.0 |
step 1. Start the SNMP manager on the LAN using the settings and
options defined for the default SNMP user
step 2. Send a SetRequest PDU to the SNMP agent for read-write
docsDevResetNow OID
NOTE: If the snmpAccess for the default SNMP user is read-only, do
not consider this test a failure if the SNMP SetRequest fails.
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
firewall-docsis.tcl
Firewall tests including port scans against the CM
Test |
Name |
Synopsis |
Verify CM interface is reachable by WAN side |
docsis_firewall_1 |
Verify CM interface is reachable by WAN side |
step 1. Initiate an ICMP ping from a WAN client to the CM IP
step 2. Verify a ICMP response is received
Test |
Name |
Synopsis |
Verify CM interface is reachable by LAN side |
docsis_firewall_2 |
Verify CM interface is reachable by LAN side |
step 1. Initiate an ICMP ping from a LAN client to the CM IP
step 2. Verify a ICMP response is received
Test |
Name |
Synopsis |
DNS requests from the WAN are ignored by CM interface |
docsis_firewall_12 |
DNS requests from the WAN are ignored by CM interface |
step 1. Initiate a DNS request from the LAN client to a known host
step 2. Verify a valid DNS response is received
step 3. Initiate a DNS request from remoteHost to the router's WAN IP
for the same host name
step 4. Verify that a DNS response is not received
NOTE: This test case will be skipped if the router has a UDP
virtual service configured on the DNS port 53.
Test |
Name |
Synopsis |
Perform TCP port scan test on CM IP address |
docsis_firewall_100 |
Perform TCP port scan test on CM IP address |
step 1. Send ARP Replies for all LAN hosts and static LAN hosts
step 2. Send TCP SYN packets from WAN to each port in the port scan range
step 3. Verify packets are not forwarded to LAN
step 4. Verify the router does not accept the TCP connection or
send a RST for the TCP connection unless the port has
been configured as an open or closed port
step 5. Do not flag ports that have port forwarding configured
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisTcpClosedPorts' and 'docsisTcpOpenPorts' testvars:
testvar docsisTcpClosedPorts "2323"
testvar docsisTcpOpenPorts "22 443"
Test |
Name |
Synopsis |
Perform UDP port scan test on CM IP address |
docsis_firewall_101 |
Perform UDP port scan test on CM IP address |
step 1. Send ARP replys for all LAN hosts and static LAN hosts
step 2. Send UDP packets from WAN to each port in the port scan range
step 3. Verify packets are not forwarded to LAN
step 4. Verify no ICMP Destination Unreachable messages or UDP Echo Replies
are received unless UDP port is configured as an open or close port
step 5. Do not flag ports that have port forwarding configured
NOTE: A warning will still be issued if a packet is forwarded if
it has been configured as a virtual service.
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisUdpClosedPorts' and 'docsisUdpOpenPorts' testvars:
testvar docsisUdpClosedPorts "2323"
testvar docsisUdpOpenPorts "22 443"
Test |
Name |
Synopsis |
Perform TCP fragmentation port scan test on CM IP address |
docsis_firewall_110 |
Perform TCP fragmentation port scan test on CM IP address |
step 1. Send ARP Replies for all LAN hosts and static LAN hosts
step 2. Set the IPv4 fragmentation size to 28 bytes
step 3. Send TCP SYN packets from WAN to each port in the port scan range
step 4. Verify packets are not forwarded to LAN
step 5. Verify the router does not accept the TCP connection or
send a RST for the TCP connection unless the port has
been configured as an open or closed port
step 6. Do not flag ports that have port forwarding configured
NOTE: A warning will still be issued if a packet is forwarded if
it has been configured as a virtual service.
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisTcpClosedPorts' and 'docsisTcpOpenPorts' testvars:
testvar docsisTcpClosedPorts "2323"
testvar docsisTcpOpenPorts "22 443"
firewall-docsis-v6.tcl
IPv6 firewall tests including port scans against the CM
Test |
Name |
Synopsis |
Verify CM interface is reachable by WAN side |
ipv6_docsis_firewall_1 |
Verify CM interface is reachable by WAN side |
step 1. Initiate an ICMP ping from a WAN client to the CM IP
step 2. Verify a ICMP response is received
Test |
Name |
Synopsis |
Verify CM interface is reachable by LAN side |
ipv6_docsis_firewall_2 |
Verify CM interface is reachable by LAN side |
step 1. Initiate an ICMP ping from a LAN client to the CM IP
step 2. Verify a ICMP response is received
Test |
Name |
Synopsis |
DNS requests from the WAN are ignored by CM interface |
ipv6_docsis_firewall_12 |
DNS requests from the WAN are ignored by CM interface |
step 1. Initiate a DNS request from the LAN client to a known host
step 2. Verify a valid DNS response is received
step 3. Initiate a DNS request from remoteHost to the router's WAN IP
for the same host name
step 4. Verify that a DNS response is not received
NOTE: This test case will be skipped if the router has a UDP
virtual service configured on the DNS port 53.
Test |
Name |
Synopsis |
Perform TCP port scan test on CM IP address |
ipv6_docsis_firewall_100 |
Perform TCP port scan test on CM IP address |
step 1. Send ARP Replies for all LAN hosts and static LAN hosts
step 2. Send TCP SYN packets from WAN to each port in the port scan range
step 3. Verify packets are not forwarded to LAN
step 4. Verify the router does not accept the TCP connection or
send a RST for the TCP connection unless the port has
been configured as an open or closed port
step 5. Do not flag ports that have port forwarding configured
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisIpv6TcpClosedPorts' and 'docsisIpv6TcpOpenPorts' testvars:
testvar docsisIpv6TcpClosedPorts "2323"
testvar docsisIpv6TcpOpenPorts "22 443"
Test |
Name |
Synopsis |
Perform UDP port scan test on CM IP address |
ipv6_docsis_firewall_101 |
Perform UDP port scan test on CM IP address |
step 1. Send ARP replys for all LAN hosts and static LAN hosts
step 2. Send UDP packets from WAN to each port in the port scan range
step 3. Verify packets are not forwarded to LAN
step 4. Verify no ICMP Destination Unreachable messages or UDP Echo Replies
are received unless UDP port is configured as an open or close port
step 5. Do not flag ports that have port forwarding configured
NOTE: A warning will still be issued if a packet is forwarded if
it has been configured as a virtual service.
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisIpv6UdpClosedPorts' and 'docsisIpv6UdpOpenPorts' testvars:
testvar docsisIpv6UdpClosedPorts "2323"
testvar docsisIpv6UdpOpenPorts "22 443"
Test |
Name |
Synopsis |
Perform TCP fragmentation port scan test on CM IP address |
ipv6_docsis_firewall_110 |
Perform TCP fragmentation port scan test on CM IP address |
step 1. Send ARP Replies for all LAN hosts and static LAN hosts
step 2. Set the IPv4 fragmentation size to 28 bytes
step 3. Send TCP SYN packets from WAN to each port in the port scan range
step 4. Verify packets are not forwarded to LAN
step 5. Verify the router does not accept the TCP connection or
send a RST for the TCP connection unless the port has
been configured as an open or closed port
step 6. Do not flag ports that have port forwarding configured
NOTE: A warning will still be issued if a packet is forwarded if
it has been configured as a virtual service.
NOTE: The speed of the scan can be adjusted using the 'portScanDelay'
testvar. By default, it is set to 1. The value indicates the number of
milliseconds to wait in between the sending of each packet:
testvar portScanDelay 100
NOTE: The list of closed and open ports can be configured using the
'docsisIpv6TcpClosedPorts' and 'docsisIpv6TcpOpenPorts' testvars:
testvar docsisIpv6TcpClosedPorts "2323"
testvar docsisIpv6TcpOpenPorts "22 443"
nmap-docsis.tcl
Nmap based IPv4 portscan tests from the WAN to the CM
Test |
Name |
Synopsis |
Nmap IPv4 TCP Connect scan |
v4_docsis_tcp_connect_info |
Nmap IPv4 TCP Connect scan |
step 1. Initiate a Nmap IPv4 TCP Connect scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP Syn scan |
v4_docsis_tcp_syn_info |
Nmap IPv4 TCP Syn scan |
step 1. Initiate a Nmap IPv4 TCP Syn scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP Fin scan |
v4_docsis_tcp_fin_info |
Nmap IPv4 TCP Fin scan |
step 1. Initiate a Nmap IPv4 TCP Fin scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP Null scan |
v4_docsis_tcp_null_info |
Nmap IPv4 TCP Null scan |
step 1. Initiate a Nmap IPv4 TCP Null scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP XMAS scan |
v4_docsis_tcp_xmas_info |
Nmap IPv4 TCP XMAS scan |
step 1. Initiate a Nmap IPv4 TCP XMAS scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP PSH scan |
v4_docsis_tcp_psh_info |
Nmap IPv4 TCP PSH scan |
step 1. Initiate a Nmap IPv4 TCP PSH scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP URG scan |
v4_docsis_tcp_urg_info |
Nmap IPv4 TCP URG scan |
step 1. Initiate a Nmap IPv4 TCP URG scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP FIN+URG scan |
v4_docsis_tcp_finurg_info |
Nmap IPv4 TCP FIN+URG scan |
step 1. Initiate a Nmap IPv4 TCP FIN+URG scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP FIN+PSH scan |
v4_docsis_tcp_finpsh_info |
Nmap IPv4 TCP FIN+PSH scan |
step 1. Initiate a Nmap IPv4 TCP FIN+PSH scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP Maimon scan |
v4_docsis_tcp_maimon_info |
Nmap IPv4 TCP Maimon scan |
step 1. Initiate a Nmap IPv4 TCP Maimon scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 TCP ACK scan |
v4_docsis_tcp_ack_info |
Nmap IPv4 TCP ACK scan |
step 1. Initiate a Nmap IPv4 TCP ACK scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 UDP scan |
v4_docsis_udp_info |
Nmap IPv4 UDP scan |
step 1. Initiate a Nmap IPv4 UDP scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 SCTP Init scan |
v4_docsis_sctp_init_info |
Nmap IPv4 SCTP Init scan |
step 1. Initiate a Nmap IPv4 SCTP Init scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 SCTP Cookie scan |
v4_docsis_sctp_cookie_info |
Nmap IPv4 SCTP Cookie scan |
step 1. Initiate a Nmap IPv4 SCTP Cookie scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 OS Detection from WAN side of device |
v4_docsis_os_detection |
Nmap IPv4 OS Detection from WAN side of device |
step 1. Initiate a Nmap IPv4 scan for OS detection from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv4 OS Detection with version detection from WAN side of device |
v4_docsis_os_detection_version |
Nmap IPv4 OS Detection with version detection from WAN side of device |
step 1. Initiate a Nmap IPv4 scan for OS detection with version detection from the WAN
step 2. Display the final Nmap report
nmap-docsis-v6.tcl
Nmap based IPv6 portscan tests from the WAN to the CM
Test |
Name |
Synopsis |
Nmap IPv6 TCP Connect scan |
v6_docsis_tcp_connect_info |
Nmap IPv6 TCP Connect scan |
step 1. Initiate a Nmap IPv6 TCP Connect scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP Syn scan |
v6_docsis_tcp_syn_info |
Nmap IPv6 TCP Syn scan |
step 1. Initiate a Nmap IPv6 TCP Syn scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP Fin scan |
v6_docsis_tcp_fin_info |
Nmap IPv6 TCP Fin scan |
step 1. Initiate a Nmap IPv6 TCP Fin scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP Null scan |
v6_docsis_tcp_null_info |
Nmap IPv6 TCP Null scan |
step 1. Initiate a Nmap IPv6 TCP Null scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP XMAS scan |
v6_docsis_tcp_xmas_info |
Nmap IPv6 TCP XMAS scan |
step 1. Initiate a Nmap IPv6 TCP XMAS scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP PSH scan |
v6_docsis_tcp_psh_info |
Nmap IPv6 TCP PSH scan |
step 1. Initiate a Nmap IPv6 TCP PSH scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP URG scan |
v6_docsis_tcp_urg_info |
Nmap IPv6 TCP URG scan |
step 1. Initiate a Nmap IPv6 TCP URG scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP FIN+URG scan |
v6_docsis_tcp_finurg_info |
Nmap IPv6 TCP FIN+URG scan |
step 1. Initiate a Nmap IPv6 TCP FIN+URG scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP FIN+PSH scan |
v6_docsis_tcp_finpsh_info |
Nmap IPv6 TCP FIN+PSH scan |
step 1. Initiate a Nmap IPv6 TCP FIN+PSH scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP Maimon scan |
v6_docsis_tcp_maimon_info |
Nmap IPv6 TCP Maimon scan |
step 1. Initiate a Nmap IPv6 TCP Maimon scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 TCP ACK scan |
v6_docsis_tcp_ack_info |
Nmap IPv6 TCP ACK scan |
step 1. Initiate a Nmap IPv6 TCP ACK scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 UDP scan |
v6_docsis_udp_info |
Nmap IPv6 UDP scan |
step 1. Initiate a Nmap IPv6 UDP scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 SCTP Init scan |
v6_docsis_sctp_init_info |
Nmap IPv6 SCTP Init scan |
step 1. Initiate a Nmap IPv6 SCTP Init scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 SCTP Cookie scan |
v6_docsis_sctp_cookie_info |
Nmap IPv6 SCTP Cookie scan |
step 1. Initiate a Nmap IPv6 SCTP Cookie scan from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 OS Detection from WAN side of device |
v6_docsis_os_detection |
Nmap IPv6 OS Detection from WAN side of device |
step 1. Initiate a Nmap IPv6 scan for OS detection from the WAN
step 2. Display the final Nmap report
Test |
Name |
Synopsis |
Nmap IPv6 OS Detection with version detection from WAN side of device |
v6_docsis_os_detection_version |
Nmap IPv6 OS Detection with version detection from WAN side of device |
step 1. Initiate a Nmap IPv6 scan for OS detection with version detection from the WAN
step 2. Display the final Nmap report