Xena Knowledge Base

HW Modifiers in Xena2544

How to add two HW modifiers to a protocoal header field in Xena2544 

In the current version of Xena2544 you can add one HW modifier for a protocol header field with the Xena2544 user interface. You can however get two HW modifiers for one protocol header field by editing the configuration file (.x2544 file) for a test.

If you want to add the two HW modifiers to generate more than 65535 flows based on IPv4 source addresses, you can achieve this by modifying the configuration file for the test to get two modifiers that together increment the relevant parts of the IP source address, generating 16777216 flows. This is achieved by using the “Repeat Count” parameter for one of the HW modifiers when both HW modifiers are set to increment the bits they are programmed to affect.

The “Repeat Count” parameter allows one of the HW modifiers to run slower than the other. The HW modifier will wait the “Repeat Count” number of packets before it modifies the bits it is programmed to affect. The maximum value you can set for the “Repeat Count” parameter is 4096. If you set this value for one of the HW modifiers you get 4096 (or212) different values (from 0 to 4095) from the other HW modifier before the value of the first HW modifier is increased. This way you can affect 24 bits of the 32 bits in an IPv4 source address. The following example assumes that the most significant 8 bits are unchanged, while the remaining 24 others are incremented.

One consideration is that each HW modifier can affect up to 16 bits. Therefore, the masks of the two HW modifiers must be set, so they don’t overlap – as indicated below:

The binary value of the HW modifiers must be converted into two decimal numbers, each representing 8 of the 16 bits in the mask:

HW Modifier Binary value Decimal numbers
HW modifier 0 11111111 11110000 255 240
HW modifier 0 00001111 11111111 15 255

Setting HW modifier 0 in the GUI would look like this (the Modifier Count is the maximum value of the HW modifier):

You can illustrate how the HW modifier 1 should be configured set by setting a modifier for the IPv4 Destination Address:


To get the two HW modifiers to affect the 24 least significant bits

  • Create the HW modifiers – one for the IPv4 Source Address and one for the IPv4 Destination Address as shown above.
  • Save the configuration (press         )
  • Open the configuration file (.x2544 file) with a text editor
  • Identify the text lines shown below:

{

“StreamConfig”: {

“SwModifier”: null,

“HwModifiers”: [

{

“Offset”: 1,

“Mask”: “//A=”,

“Action”: “INC”,

“StartValue”: 0,

“StopValue”: 4095,

“StepValue”: 1,

“RepeatCount”: 4096,

“SegmentId”: “5514a864-4b1a-43d6-affc-30de11ea0554”,

“FieldName”: “Src IP Addr”

},

{

“Offset”: 2,

“Mask”: “D/8=”,

“Action”: “INC”,

“StartValue”: 0,

“StopValue”: 4095,

“StepValue”: 1,

“RepeatCount”: 1,

“SegmentId”: “5514a864-4b1a-43d6-affc-30de11ea0554”,

“FieldName”: “Dest IP Addr”

}

  • Change the text with green background from Dest to Src
  • Save the configuration file in the text editor
  • Load the configuration file into Xena2544

When you now start the test, you will get the two modifiers incrementing the 24 least significant bits of the IP Source Address, creating all 16777216 possible values.