Valkyrie Knowledge Base

Stream Properties

Common Stream Control

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.


Traffic Control

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.

TX Time Limit

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

Tx Packet Limit

Property Explanation
Port Stop After** Stop port transmission after the specified number of packets are sent

**Feature requires software release 76 or higher.

Burst Period

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.


Stream Properties

This area contains all stream-level configuration properties, except those related to protocol header and modifier definitions.

Identification

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.


Transmission Profile

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.


Error Handling 

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:

  • Frame Checksum Error: Injects an Ethernet FCS error.
  • Sequence Error: Injects a sequence error in the Xena Test Payload. This will result in a lost packet being counted. Only applicable if the stream has a TID.
  • Misordering Error: Injects a misordering error in the Xena Test Payload. Only applicable if the stream has a TID.
  • Payload Integrity Error: Only applicable for incrementing payloads. Injects an error by changing a byte in the incrementing sequence.
  • Test Payload Error: Injects an error in the Xena Test Payload sequence forcing the packet to not being recognized at the receiving port as a Xena test packet. It will then be counted as a no-test-payload packet.

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.


Packet Content

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.


Connectivity Check 

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:

  1. Stream gateway IP address for the IP version used by the stream if defined.
  2. Port gateway IP address for the IP version used by the stream if defined and stream “Dest IP Address” is not in the same subnet as the port gateway (the legacy method).
  3. Stream “Dest. IP Address”

Advanced Stream Functions

Packet Header Definitions

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.

segments.png


Tree Columns

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.


Field Type Icons

Each field row is prefixed with an icon indicating the value representation for the field. The following representations are used:

  • DEC: Decimal representation
  • BIN: Binary representation
  • HEX: Hexadecimal representation
  • STR: Text string representation
  • MAC: A MAC address
  • IP4: An IPv4 address
  • IP6: An IPv6 address


Raw Hex Editor

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.


Segment Headers 


Adding a Segment Header

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.


Moving a Segment Header

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.


Removing a Segment Header

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.


Import From PCAP File

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.


Setting Field Values 

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.


Next-Protocol Type Fields

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

Modifiers are specified directly on the field they are supposed to modify.


Adding a modifier

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.


Editing a Modifier

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.


Removing a Modifier

To remove a modifier select the modifier and click the Remove button in the Modifiers section in the command panel to the right.

User-Defined Protocol Headers

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:

Modifiers

It is possible to set a modifier a Custom Segment field just as it is for a normal protocol field.

Custom Segment File Specification

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):

The Header Section

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 Protocol Field Section

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”

Important Notices on Custom Segments

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.


Extended Payload Feature

The feature is currently available for selected 40GE/100GE/400GE test modules and requires Valkyrie software val-86 or higher.


Overview

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.


Enabling the Feature

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.


Configuring the Extended Payload

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.


Modifiers

It is possible to set a modifier in the Extended Payload area just as it is for a normal protocol field.


Custom Data Field Feature

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.


Capabilities and Limitations

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.


Enabling the Feature

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.


Configuring Custom Data Fields

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.


Field Offset

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.


Adding and Removing Fields

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.


Editing Field Content

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.


Setting Field Order

The order of the defined fields can be rearranged by using the up- and down-arrows in the Commands column.


Modifiers

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.

Our product lines