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.
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
.
![L47 Port States](../../_images/l47_port_states.png)
Fig. 18 L47 Port State Diagram#
OFF
- default state. Entered fromSTOPPED
orPREPARE
onOFF
command. This is the only state that allows configuration commands.P4_RESET
is also considered a configuration command. Upon enteringOFF
state, some internal “house cleaning” is done. For example: freeing TCP Connections, clearing test specific counters etc.PREPARE
- this state is entered from stateOFF
onPREPARE
command. Here internal data structures relevant for the test configuration are created. When done the state changes toPREPARE_RDY
or PREPARE_FAIL and, aP4_STATE PREPARE_RDY
orP4_STATE PREPARE_FAIL
notification is sent to all users logged on to the chassis.PREPARE_RDY
- entered automatically after activities inPREPARE
have 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_RDY
onPRERUN
command. If enabled, this is where ARP and NDP requests are sent. When done the state changes toPRERUN_RDY
and aP4_STATE PRERUN_RDY
notification is sent to all users logged on to the chassis.PRERUN_RDY
- entered automatically after activities inPRERUN
have completed.RUNNING
- entered either fromPREPARE_RDY
orPRERUN_RDY
onON
command. This is where TCP connections are established, payload is generated and connections are closed again.STOPPING
- entered fromRUNNING
,PRERUN_RDY
orPRERUN
onSTOP
command. Stops Rx/Tx traffic. In theSTOPPING
state, post-test data are calculated and captured packets are saved to files.STOPPED
- entered automatically after activities inSTOPPING
are complete. This is where we can read post-test statistics and extract captured packets.
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