3.4. Misc
This section describes the CLI for Xena’s stateful TGA Vulcan.
As an alternative to using the application VulcanManager, you can interact with the testers using XOA CLI for Vulcan. This also allows the tester to be controlled from a scripting environment, and be part of a larger automation environment.
Commands are logically grouped in a hierarchy. At the top level we have a Chassis. Currently there are two different Vulcan testers: VulcanBay and VulcanCompact. For VulcanBay and VulcanCompact, the entire chassis is considered one L47 Module, however in the future a chassis may have several Vulcan modules.
A Vulcan Module has several ports (currently between 1 and 12). Like on Valkyrie, each port must be reserved before it can be configured and traffic can be started, allowing multiple users to work with the Vulcan product at the same time.
In addition to ports a Vulcan Module contains a number of Packet Engines (PE) , which generates and handles the TCP traffic. As default each port is allocated one PE, however more PEs can be allocated to a Vulcan port increasing the performance on that port. Packet Engines are a shared resource between the Vulcan ports on a Vulcan module. Currently VulcanCompact contains 5 PEs and VulcanBay contains 2 groups of 14 PEs.
The Stream concept in Valkyrie has been replaced by Connection Groups (CG) in Vulcan. A CG specifies a number of TCP connections (1 to 2 million per PE). Several Connection Groups can be configured on a Port (currently up to 200).
A CG has a configured Load Profile, which defines the ramp-up start time along with the durations of the ramp-up, steady-state and ramp-down periods. A CG is configured with an Application Type and an Application Scenario. The Application Type defines the type of data transmitted by the TCP connections, and the Application Scenario defines the data flow between Servers and Clients.
By combining several Connection Groups on a port, it is possible to create a mixture of different traffic types and scenarios, and to create complex resulting load profiles.
3.4.1. Vulcan Port States
Vulcan test ports have seven states: OFF, PREPARE, PREPARE_RDY, PRERUN, PRERUN_RDY, RUNNING and STOPPED. Traffic is generated in the PRERUN and RUNNING states only, and configuration of parameters is only valid in state OFF except for a few runtime options.
Port traffic commands can be set with P4_TRAFFIC and port state queried by P4_STATE.
Fig. 3.16 L47 Port State Diagram
OFF- default state. Entered fromSTOPPEDorPREPAREonOFFcommand. This is the only state that allows configuration commands.P4_RESETis also considered a configuration command. Upon enteringOFFstate, some internal “house cleaning” is done. For example: freeing TCP Connections, clearing test specific counters etc.PREPARE- this state is entered from stateOFFonPREPAREcommand. Here internal data structures relevant for the test configuration are created. When done the state changes toPREPARE_RDYor PREPARE_FAIL and, aP4_STATE PREPARE_RDYorP4_STATE PREPARE_FAILnotification is sent to all users logged on to the chassis.PREPARE_RDY- entered automatically after activities inPREPAREhave completed successfully.PREPARE_FAIL- entered automatically fromPREPARE, if an error occurs. An error could for example be failure to load a configured replay_file.PRERUN- entered fromPREPARE_RDYonPRERUNcommand. If enabled, this is where ARP and NDP requests are sent. When done the state changes toPRERUN_RDYand aP4_STATE PRERUN_RDYnotification is sent to all users logged on to the chassis.PRERUN_RDY- entered automatically after activities inPRERUNhave completed.RUNNING- entered either fromPREPARE_RDYorPRERUN_RDYonONcommand. This is where TCP connections are established, payload is generated and connections are closed again.STOPPING- entered fromRUNNING,PRERUN_RDYorPRERUNonSTOPcommand. Stops Rx/Tx traffic. In theSTOPPINGstate, post-test data are calculated and captured packets are saved to files.STOPPED- entered automatically after activities inSTOPPINGare complete. This is where we can read post-test statistics and extract captured packets.
3.4.2. CLI for Vulcan
CLI commands for Vulcan functionalities:
- Vulcan Module
- M4_CAPTURE_FILE_DELETE
- M4_CAPTURE_FILE_LIST
- M4_CAPTURE_FILE_LIST_BSON
- M4_CAPTURE_SIZE
- Description
- Actions
- Parameters
- Example
- M4_LICENSE_INFO
- M4_MEM_INFO
- M4_REPLAY_FILE_DELETE
- M4_REPLAY_FILE_LIST
- M4_REPLAY_FILE_LIST_BSON
- M4_REPLAY_PARSE_START
- M4_REPLAY_PARSE_STATE
- M4_REPLAY_PARSE_STOP
- M4_REPLAY_PARSER_PARAMS
- M4_SYSTEM_STATUS
- M4_SYSTEM_TIME
- M4_SYSTEMID
- M4_TIME
- M4_TLS_CIPHER_SUITES
- M4_VERSIONNO
- Vulcan Packet Engine
- Vulcan Port
- P4_APTITUDES
- P4_ARP_CONFIG
- P4_ARP_COUNTERS
- P4_ARP_RX_COUNTERS
- P4_ARP_TX_COUNTERS
- P4_CAPABILITIES
- P4_CAPTURE
- P4_CAPTURE_GET_FIRST
- P4_CAPTURE_GET_NEXT
- P4_CLEAR
- P4_CLEAR_COUNTERS
- P4_DEV_NAME
- P4_ETH_COUNTERS
- P4_ETH_RX_COUNTERS
- P4_ETH_TX_COUNTERS
- P4_FW_VER
- P4_ICMP_COUNTERS
- P4_ICMP_RX_COUNTERS
- P4_ICMP_TX_COUNTERS
- P4_IPV4_COUNTERS
- P4_IPV4_RX_COUNTERS
- P4_IPV4_TX_COUNTERS
- P4_IPV6_COUNTERS
- P4_IPV6_RX_COUNTERS
- P4_IPV6_TX_COUNTERS
- P4_LICENSE_INFO
- P4_MAX_PACKET_RATE
- P4_NDP_CONFIG
- P4_NDP_COUNTERS
- P4_NDP_RX_COUNTERS
- P4_NDP_TX_COUNTERS
- P4_PCI_INFO
- P4_PORT_COUNTERS
- P4_PORT_RX_COUNTERS
- P4_PORT_TX_COUNTERS
- P4_PORT_TYPE
- P4_RX_MTU
- P4_RX_PACKET_SIZE
- P4_SPEEDSELECTION
- P4_STATE
- P4_STATE_STATUS
- P4_TCP_COUNTERS
- P4_TCP_RX_COUNTERS
- P4_TCP_TX_COUNTERS
- P4_TRAFFIC
- P4_TX_MTU
- P4_TX_PACKET_SIZE
- P4_UDP_COUNTERS
- P4_UDP_RX_COUNTERS
- P4_UDP_TX_COUNTERS
- P4_VLAN_OFFLOAD
- Vulcan Connection Group
- P4G_APP_REPLAY_COUNTERS
- P4G_APP_TRANSACTION_COUNTERS
- P4G_APP_TRANSACTION_HIST
- P4G_CLEAR_COUNTERS
- P4G_CLEAR_POST_STAT
- P4G_CLIENT_RANGE
- P4G_COMMENT
- P4G_CREATE
- P4G_DELETE
- P4G_ENABLE
- P4G_INDICES
- P4G_IP_DS_MASK
- P4G_IP_DS_MINMAX
- P4G_IP_DS_STEP
- P4G_IP_DS_TYPE
- P4G_IP_DS_VALUE
- P4G_IP_VERSION
- P4G_IPV6_CLIENT_RANGE
- P4G_IPV6_FLOW_LABEL
- P4G_IPV6_SERVER_RANGE
- P4G_IPV6_TRAFFIC_CLASS
- P4G_L2_CLIENT_MAC
- P4G_L2_GW
- P4G_L2_IPV6_GW
- P4G_L2_SERVER_MAC
- P4G_L2_USE_ADDRESS_RES
- P4G_L2_USE_GW
- P4G_L4_PROTOCOL
- P4G_LP_SHAPE
- P4G_LP_TIME_SCALE
- P4G_NAT
- P4G_PAYLOAD_HIST_CONF
- P4G_RAW_BURSTY_CONF
- P4G_RAW_BURSTY_TX
- P4G_RAW_CLOSE_CONN
- P4G_RAW_CONN_INCARNATION
- P4G_RAW_CONN_LIFETIME
- P4G_RAW_CONN_REPETITIONS
- P4G_RAW_DOWNLOAD_REQUEST
- P4G_RAW_HAS_DOWNLOAD_REQ
- P4G_RAW_PAYLOAD
- P4G_RAW_PAYLOAD_REPEAT_LEN
- P4G_RAW_PAYLOAD_TOTAL_LEN
- P4G_RAW_PAYLOAD_TYPE
- P4G_RAW_REQUEST_REPEAT
- P4G_RAW_RX_PAYLOAD_LEN
- P4G_RAW_TEST_SCENARIO
- P4G_RAW_TX_DURING_RAMP
- P4G_RAW_TX_TIME_OFFSET
- P4G_RAW_UTILIZATION
- P4G_RECALC_PAYLOAD_HIST
- P4G_RECALC_TIME_HIST
- P4G_RECALC_TRANSACTION_HIST
- P4G_REPLAY_FILE_CLEAR
- P4G_REPLAY_FILE_INDICES
- P4G_REPLAY_FILE_NAME
- P4G_REPLAY_USER_INCARNATION
- P4G_REPLAY_USER_REPETITIONS
- P4G_REPLAY_UTILIZATION
- P4G_ROLE
- P4G_SERVER_RANGE
- P4G_TCP_ACK_FREQUENCY
- P4G_TCP_ACK_TIMEOUT
- P4G_TCP_CLOSE_HIST
- P4G_TCP_CONGESTION_MODE
- P4G_TCP_DUP_THRES
- P4G_TCP_ERROR_COUNTERS
- P4G_TCP_ESTABLISH_HIST
- P4G_TCP_ICWND_CALC_METHOD
- P4G_TCP_ISSTHRESH
- P4G_TCP_MSS_MINMAX
- P4G_TCP_MSS_TYPE
- P4G_TCP_MSS_VALUE
- P4G_TCP_RETRANSMIT_COUNTERS
- P4G_TCP_RTO
- P4G_TCP_RTO_MINMAX
- P4G_TCP_RTO_PROLONGED_MODE
- P4G_TCP_RTT_VALUE
- P4G_TCP_RX_GOOD_BYTES_HIST
- P4G_TCP_RX_PACKET_COUNTERS
- P4G_TCP_RX_PAYLOAD_COUNTERS
- P4G_TCP_RX_TOTAL_BYTES_HIST
- P4G_TCP_STATE_CURRENT
- P4G_TCP_STATE_RATE
- P4G_TCP_STATE_TOTAL
- P4G_TCP_SYN_RTO
- P4G_TCP_TX_GOOD_BYTES_HIST
- P4G_TCP_TX_PACKET_COUNTERS
- P4G_TCP_TX_PAYLOAD_COUNTERS
- P4G_TCP_TX_TOTAL_BYTES_HIST
- P4G_TCP_WINDOW_SCALING
- P4G_TCP_WINDOW_SIZE
- P4G_TEST_APPLICATION
- P4G_TIME_HIST_CONF
- P4G_TLS_ALERT_FATAL_COUNTERS
- P4G_TLS_ALERT_WARNING_COUNTERS
- P4G_TLS_CERTIFICATE_FILENAME
- P4G_TLS_CIPHER_SUITES
- P4G_TLS_CLOSE_NOTIFY
- P4G_TLS_DHPARAMS_FILENAME
- P4G_TLS_ENABLE
- P4G_TLS_HANDSHAKE_HIST
- P4G_TLS_MAX_RECORD_SIZE
- P4G_TLS_MIN_REQ_PROTOCOL_VER
- P4G_TLS_PRIVATE_KEY_FILENAME
- P4G_TLS_PROTOCOL_VER
- P4G_TLS_RX_PAYLOAD_BYTES_HIST
- P4G_TLS_RX_PAYLOAD_COUNTERS
- P4G_TLS_SERVER_NAME
- P4G_TLS_STATE_CURRENT
- P4G_TLS_STATE_RATE
- P4G_TLS_STATE_TOTAL
- P4G_TLS_TX_PAYLOAD_BYTES_HIST
- P4G_TLS_TX_PAYLOAD_COUNTERS
- P4G_TRANSACTION_HIST_CONF
- P4G_UDP_PACKET_SIZE_MINMAX
- P4G_UDP_PACKET_SIZE_TYPE
- P4G_UDP_PACKET_SIZE_VALUE
- P4G_UDP_RX_BYTES_HIST
- P4G_UDP_RX_PACKET_COUNTERS
- P4G_UDP_RX_PAYLOAD_COUNTERS
- P4G_UDP_STATE_CURRENT
- P4G_UDP_STATE_RATE
- P4G_UDP_STATE_TOTAL
- P4G_UDP_TX_BYTES_HIST
- P4G_UDP_TX_PACKET_COUNTERS
- P4G_UDP_TX_PAYLOAD_COUNTERS
- P4G_USER_STATE_CURRENT
- P4G_USER_STATE_RATE
- P4G_USER_STATE_TOTAL
- P4G_VLAN_ENABLE
- P4G_VLAN_TCI