Award Winning Solutions
Xena has won multiple global awards for price/performance and technical innovation. Learn more.
Technical Expertise
Copyright © 2009-2023 Teledyne LeCroy Xena ApS, Denmark
This area contains port-level controls that affect all streams on that port. They are shown on the stream’s property page for the sake of convenience.
Property | Explanation |
---|---|
Traffic Status | The current traffic status for the port (OFF: traffic is off, ON: traffic is on) |
Traffic Control | This button enables you to either start or stops traffic on the port |
Port TX Mode | This property determines the scheduling mode for outgoing traffic from the port, i.e. how multiple logical streams are merged onto one physical port. Refer to the Script API description here for further information. |
Property | Explanation |
---|---|
Port TX Time Limit | The maximum time the port should transmit |
Port TX Time Elapsed | The amount of time the port has been transmitting |
Property | Explanation |
---|---|
Port Stop After** | Stop port transmission after the specified number of packets are sent |
**Feature requires software release 76 or higher.
Property | Explanation |
---|---|
Port Burst** Period | Time in microseconds from start of sending a group of bursts until the start of sending next group of bursts |
**Feature requires software release 76 or higher.
This area contains all stream-level configuration properties, except those related to protocol header and modifier definitions.
Property | Explanation |
---|---|
Port | The parent port name |
Stream ID | The unique stream ID |
Test Payload ID | The test payload ID (TID) carried in the Xena test payload area. This field can be empty if no TID value is needed. |
Description | A user-modifiable description label for the stream |
State | The stream state: Enabled, Disabled or Suppressed. State Suppressed can be changed to Enabled while traffic is running. |
Property | Explanation |
Rate Fraction | The stream traffic rate expressed as a percentage of the effective rate for the port. |
Packet Rate | The stream traffic rate expressed as packets per second. |
Bit Rate L2 | The stream traffic rate expressed as bits per second seen on Layer 2. |
Bit Rate L1 | The stream traffic rate expressed as bits per second seen on Layer 1. |
Rate Cap | This command can be used to cap the rate for disabled streams. The button will only be enabled if the sum of the defined stream bandwidth actually exceeds the available port bandwidth. |
Inter Packet Gap | The calculated mean inter-packet gap with the current TX profile settings. This denotes the space between the end of the preceding packet and the start of the following packet. |
Seq.Packets | The number of sequential packets sent before switching to the next stream (packets). This property is only configurable when the Port TX Mode is set to “Sequential”. |
Stop After | Stop stream transmission after the specified number of packets are sent. This value can be empty or zero, which means that the stream will continue to transmit until traffic is stopped at the port level. |
Burst Size | The number of packets in each burst (packets). Valid range 0-500; in TX mode Burst**: 0-10000. |
Burst Density | The density of the burst expressed as a percentage value between 0 and 100. A value of 100 means that the packets are packed tightly together, only spaced by the minimum inter-frame gap. A value of 0 means even, non-bursty, spacing. The exact spacing achieved depends on the other enabled streams of the port. Not used when TX port mode is Burst** |
Inter Packet Gap** | Gap between packets in a burst. Only used when TX port mode is Burst. |
Inter Burst Gap** | Gap between this burst and burst in next stream. Only used when TX port mode is Burst. |
Inter Burst Gap | The calculated inter-burst gap with the current burst settings. This denotes the space between the end of the last packet in the preceding burst and the start of the first packet in the following burst. |
Burst Signature | A graphical depiction of the current burst settings |
**Feature requires software release 76 or higher.
Property | Explanation |
---|---|
Insert Frame Checksum (FCS) | Control if a valid frame checksum is added to the stream packets. Default is enabled. |
Error Injection | Specifies the type of error that is injected into the traffic stream. The following types of errors can be specified:
It is only possible to inject errors on a stream if traffic is active on the parent port. |
Inject Error | Inject a single error of the specified type into the traffic stream. This option is only enabled when traffic is active on the parent port. |
Property | Explanation |
---|---|
Packet Size Type | The size distribution of the packets transmitted for the stream |
Minimum Size | The lower limit of the packet size (if required by the size type) |
Maximum Size | The upper limit of the packet size (if required by the size type) |
Payload Type | The type of payload data used in the Xena payload section. See this Script API entry for details. |
Payload Pattern | The pattern of bytes to be repeated when the type is set to ‘Pattern’. |
Ext. Payload Size | The size of the extended payload if this option has been enabled on the parent port. Refer to this application note for details. |
Property | Explanation |
---|---|
IPv4 Gateway Address | The IPv4 gateway address used to resolve the DMAC address for the stream. Only valid if the stream contains an IPv4 protocol segment. |
IPv6 Gateway Address | The IPv6 gateway address used to resolve the DMAC address for the stream. Only valid if the stream contains an IPv6 protocol segment. |
Resolve Peer Address | Send an ARP or NDP request to the peer in order to resolve the MAC address. Only valid of an IPv4 or IPv6 segment has been defined with a valid Dest. IP address is defined. |
Check IP Peer | Send a PING request to the peer in order to check the connectivity. Only valid of an IPv4 or IPv6 segment has been defined with a valid Dest. IP address is defined. |
The Xena tester will set the Target IP Address in any ARP/NDP request sent from a Xena test port to a value in the following prioritized order:
The defined protocol segments are shown in a Wireshark-like tree structure. All fields for a given segment header are shown as child rows under the segment row. Any modifiers defined on fields are shown as child rows under the field row.
The treeview contains these columns:
Column | Explanation |
---|---|
Segment/Field Name | The name of the segment or field |
M | Contains an icon that indicates if a collapsed segment or field row contains one or more modifiers. |
Field Value | The actual field value in the common value representation for that field. |
Named Values | Certain fields may get their value from a list of standardized or well-known named values. Instead of entering the value directly you can select the value from the dropdown list in this column. |
Each field row is prefixed with an icon indicating the value representation for the field. The following representations are used:
At the bottom of the treeview you will find a raw hex editor that allows you to inspect and optionally modify the raw hex data for the segment definitions. Any changes you make in the raw editor will be written to the chassis and the associated field value controls will be updated accordingly.
When you select a segment or a field the relevant parts in the hex editor will be highlighted. The hex editor will also underline the areas affected by any defined modifier.
The left part of the hex editor contains an address list and the right part shows the current raw data decoded as printable ASCII.
To add a new segment header to the existing definition press the Add Segment button in the command panel on the right. You will now be presented with a list of known protocol types in alphabetical order. You can select one or more types using the standard Windows [Ctrl-Click] or [Shift-Click] operations. When you are done press the OK button.
With the exception of the first Ethernet segment, you can move segment headers up or down in the list after you have added them. Select the segment you want to move and use either the Move Up or the Move Down button in the command panel to the right.
Any modifiers you have defined in segments affected by the move will be moved automatically.
Select the segment you want to remove and use the Remove Segment button in the command panel to the right.
Any modifiers you have defined in the removed segment will also be removed automatically.
Instead of manually building the segment headers you can import the structure from a PCAP file. Note that this operation will replace any segments you may have added manually!
To import the segment structure from a PCAP file simply press the Import button in the command panel to the right and select a PCAP file on disk which contains the packet you want to import. The packets in the PCAP file will now be decoded and a list of the found packets will be shown. You should then select the packet you want to import and press the OK button.
The import function will use any trailing data in the packet as one or more custom data segments.
You can change any field value by using the associated edit control in the Field Value column. For those fields that have a set of well-known values associated, you can also choose one of these values from the dropdown list in the Named Values column.
Finally, you may edit the content of the fields directly in the hex editor panel if you are so inclined.
Certain protocol segment types (such as Ethernet, VLAN and IP) contain fields that indicate the type of the next segment. The segment editor will attempt to set such fields to a correct value when you add, remove or move segments. You can, however, override the value afterward if necessary.
Modifiers are specified directly on the field they are supposed to modify.
To add a modifier select the field you want to modify and click the Add button in the Modifiers section in the command panel to the right. You will now be presented with a window allowing you to specify the properties for the modifier. Press the OK button when you are done.
The new modifier will be shown as a child row under the field row. The value in the Field Value column is a read-only string representation of the modifier settings.
To edit the properties of an existing modifier select the modifier and click the Edit button in the Modifiers section in the command panel to the right.
To remove a modifier select the modifier and click the Remove button in the Modifiers section in the command panel to the right.
ValkyrieManager v1.76 (and higher) offer the user the option to define custom protocol segments that can be used in Valkyrie traffic streams. ValkyrieManager v1.76 is included in Valkyrie software val-87.
The definitions must be saved in JSON formatted files with the .xdef extension. The definition (.xdef) files must be stored the in the Documents\Xena\ValkyrieManager\SegmentDefs folder.
In ValkyrieManager v1.76 (and higher) a “Add Custom Segment” button is added to Packet Header Definitions section in the Stream resource properties.
The Custom segments are initially loaded from the directory stated above when Valkyrie Manager is started, and each time the “Add Custom Segment” is pressed this directory is checked/refreshed in order to add new detected Custom segments. However if a Custom segment file is updated while ValkyrieManager is running, ValkyrieManager will continue using the old version of the file; ValkyrieManager needs to be restarted to load the updated Custom segment file.
After the “Add Custom Segment” is pressed the pop-up below will appear with the Custom Segment specification described in the following sections:
When the “Custom Header – Custom Header description” is selected the Custom Segment specification described in the following sections will be shown as:
It is possible to set a modifier a Custom Segment field just as it is for a normal protocol field.
The Custom Segment specification consists of to parts: A header section and a protocol field section. Below is an example of a Custom Segment specification (from the file Custom Header.xdef):
Field | Definition |
General: The Custom Segment specification must be written between two brackets { } | |
“Name”: | The Segment Name that will be shown in the Packet Header Definition section. This parameter must be followed by a comma. Example: “Name”: “Custom Header”, |
“Description”: | The Segment Description that will be shown in the Packet Header Definition section. This parameter must be followed by a comma. Example: “Description”: “Custom Header description”, |
“SegmentType”: | The SegmentType is a unique key for the segment. Accepted values range: 128 to 191. If more than one file with same SegmentType is detected only the first detected will be loaded. This parameter must be followed by a comma. Example: “SegmentType”: 150, |
“ProtocolFields”: | Marks the start of the Protocol Fields section and is followed by one or more Protocol Field definitions. The group of Protocol Field definitions must be written between two brackets [ ] Example: “ProtocolFields”: |
The table on next page gives the definition of the fields that will be shown in the ValkyrieManager Packet Header Definition section.
Field | Definition |
General: Each Protocol Field definitions must be written between two brackets followed by a comma { }, However the last Protocol Field definitions must be written between two brackets but without a comma { } | |
“Name”: | The Protocol Field Name that will be shown in the Packet Header Definition section. This parameter must be followed by a comma. Example: “Name”: “Custom field 1”, |
“BitLength”: | The length of the Protocol Field in bits. This parameter must be followed by a comma. Example: “BitLength”: 8, |
“DisplayType”: | The DisplayType defines the formatting of the Protocol Field: · “Decimal”, · “Binary”, · “Hex”, · “IpV4Address”, · “IpV6Address”, · “MacAddress”, · “DisplayString”, This parameter must be followed by a comma as shown above. Example: “DisplayType”: “Decimal”, |
“DefaultValue”: | The DefaultValue will show a value in the Protocol Field in the Packet Header Definition section. Depending on the length of the field the DefaultValue can consist of one or more comma-separated bytes. Please observe that spaces before or after the commas are not allowed. DefaultValue can be entered in Decimal (e.g. 255) or Hex (e.g. 0xFF) format. This field is optional. If included, it must NOT be followed by a comma. If not included the Protocol Field will be shown without any values. Example: “DefaultValue”: “0xFF,0xFF” |
Some Custom Segments includes a check sum typically covering the Custom Segment. This has to be calculated manually; Valkyrie will not do this for Custom Segments.
Some Custom Segments require that a field in a previous segment (e.g. the Ethertype in the Ethernet segment) has a specific value for the Custom Segment to be recognized correctly. includes a check sum typically covering the Custom Segment. This has to be entered manually; Valkyrie will not do this this for Custom Segments.
If the size of the Custom Segment is not n x 8 bits (like in the example above) Valkyrie will extend the Custom Segment to the closest n x 8 bits value above the actual size. Bits added will have the value 0.
It is very important that all rules for the Custom Segment specification are followed. If they are violated the Custom Segment will not be displayed In ValkyrieManager when the “Add Custom Segment” button in the Packet Header Definitions section is pressed.
The feature is currently available for selected 40GE/100GE/400GE test modules and requires Valkyrie software val-86 or higher.
The original payload definition function for streams only allows the user to specify an 18-byte pattern (when PS_PAYLOAD is set to PATTERN). The extended payload feature allows the definition of a much larger (up to MTU) payload buffer for each stream which can be edited as part of the general protocol header editor in ValkyrieManager.
The feature requires that the Payload Mode property on the parent port has been set to Extended Payload. This enables the feature for all streams on this port.
Once the port payload mode has been set to enable Extended Payload it will now be possible to set the desired size of the Extended Payload area as shown below.
Once the size has been set the equivalent data area will be available in the stream protocol header editor, as shown below.
It is possible to set a modifier in the Extended Payload area just as it is for a normal protocol field.
The feature is available for selected 40GE/100GE test modules port types and require Valkyrie software release 68 or higher. The CDF (Custom Data Field) feature allows you to define a sequence of custom data fields for each stream. The data fields will then be used in a round-robin fashion when packets are sent based on the stream definition.
The data fields can have both different sizes and different content.
The data fields will be inserted into the data packets at an offset specified for the stream as a whole. If a set of protocol header segments has been specified for the stream and the CDF offset is placed within the area occupied by the headers then the CDF data will overwrite the protocol field data.
If the CDF data offset is set to a location after the end of the protocol header segments the normal stream payload definition will be used to pad the area between.
The total area available for the CDF function depends on the test module type and the port type configuration.
The feature requires that the Payload Mode property on the parent port has been set to Custom Data Field. This enables the feature for all streams on this port.
This section explains how to configure the CDF function. When the CDF function has been enabled on the parent port a new section is enabled in the child stream property page, as shown below.
The CDF field offset for the stream is the location in the stream data packets where the various CDF data will be inserted. All CDF definitions for a given stream uses the same offset value.
The default value is zero (0) which means that the CDF data will be inserted at the very start of the packet, thus overwriting the packet protocol headers. If you want the CDF data to start immediately after the end of the packet protocol headers you will have to set the CDF field offset manually.
You can add a new field by pressing the Add Field button in the toolbar shown above. You will then be asked for the desired size of the field. You can also change the size of the field afterward by pressing the Resize icon in the Commands column.
Fields can be removed individually by pressing the Remove icon in the Commands column. You can also remove all defined fields by pressing the Remove All Fields button in the toolbar.
You can edit the first 16 bytes directly in the CDF table view. If your field is larger you can select the field you want to edit and use the detailed editor that will be shown below the table view.
The order of the defined fields can be rearranged by using the up- and down-arrows in the Commands column.
Modifiers cannot be set on Custom Data Fields as the feature itself can be viewed as having some of the same characteristics as the modifier option but on a much larger scale.