blob: 0094092af614719db4466d84ec34b2fe82480101 [file] [log] [blame]
Prashanth Kattic8bfc362019-09-03 07:40:43 -05001*** Settings ***
2Documentation Network stack stress tests using "nping" tool.
3
4Resource ../lib/resource.robot
5Resource ../../lib/bmc_redfish_resource.robot
6
7Library OperatingSystem
8Library String
9Library ../lib/gen_robot_valid.py
10Library ../lib/bmc_network_utils.py
11
12Suite Setup Suite Setup Execution
13
14Force Tags Network_Nping
15
16*** Variables ***
17
18${delay} 1000ms
19${count} 4
20${program_name} nping
21
22*** Test Cases ***
23
24Send ICMP Timestamp Request
25 [Documentation] Send ICMP packet type 13 and check BMC drops such packets
26 [Tags] Send_ICMP_Timestamp_Request
27
28 # Send ICMP packet type 13 to BMC and check packet loss.
29 ${packet_loss}= Send Network Packets And Get Packet Loss
30 ... ${OPENBMC_HOST} ${count} ${ICMP_PACKETS} ${NETWORK_PORT} ${ICMP_TIMESTAMP_REQUEST}
31 Should Be Equal As Numbers ${packet_loss} 100.00
32 ... msg=FAILURE: BMC is not dropping timestamp request messages.
33
34Send ICMP Netmask Request
35 [Documentation] Send ICMP packet type 17 and check BMC drops such packets
36 [Tags] Send_ICMP_Netmask_Request
37
38 # Send ICMP packet type 17 to BMC and check packet loss.
39 ${packet_loss}= Send Network Packets And Get Packet Loss
40 ... ${OPENBMC_HOST} ${count} ${ICMP_PACKETS} ${NETWORK_PORT} ${ICMP_NETMASK_REQUEST}
41 Should Be Equal As Numbers ${packet_loss} 100.00
42 ... msg=FAILURE: BMC is not dropping netmask request messages.
43
44Send Network Packets Continuously To Redfish Interface
45 [Documentation] Send network packets continuously to Redfish interface and verify stability.
46 [Tags] Send_Network_Packets_Continuously_To_Redfish_Interface
47
48 # Send large number of packets to Redfish interface.
49 ${packet_loss}= Send Network Packets And Get Packet Loss
50 ... ${OPENBMC_HOST} 5000 ${TCP_PACKETS} ${REDFISH_INTERFACE}
51 Should Be Equal ${packet_loss} 0.0
52 ... msg=FAILURE: BMC is dropping some packets.
53
54 # Check if Redfish interface is functional.
55 Redfish.Login
56 Redfish.Logout
57
58*** Keywords ***
59
60Suite Setup Execution
61 [Documentation] Validate the setup.
62
63 Valid Value OPENBMC_HOST
64 Valid Program program_name
65
66Send Network Packets And Get Packet Loss
67 [Documentation] Send TCP, UDP or ICMP packets to the target.
68 [Arguments] ${host} ${num}=${count} ${packet_type}=${ICMP_PACKETS} ${port}=80 ${icmp_type}=${ICMP_ECHO_REQUEST}
69
70 # Description of argument(s):
71 # host The host name or IP address of the target system.
72 # packet_type The type of packets to be sent ("tcp, "udp", "icmp").
73 # port Network port.
74 # icmp_type Type of ICMP packets (e.g. 8, 13, 17, etc.).
75 # num Number of packets to be sent.
76
77 # This keyword expects host, port, type and number of packets to be sent
78 # and rate at which packets to be sent, should be given in command line.
79 # By default it sends 4 ICMP echo request packets at 1 packets/second.
80
81 ${cmd_suffix}= Set Variable If '${packet_type}' == 'icmp'
82 ... --icmp-type ${icmp_type}
83 ... -p ${port}
84 ${cmd_buf}= Set Variable --delay ${delay} ${host} -c ${num} --${packet_type} ${cmd_suffix}
85
86 ${nping_result}= Nping ${cmd_buf}
87 [Return] ${nping_result['percent_lost']}