summaryrefslogtreecommitdiffstats
path: root/scripts/stl/udp_1pkt_simple_test2.py
blob: c261d3f87926aa96e3c9b94d19a96acd072d7092 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from trex_stl_lib.api import *

def generate_payload(length):
      word = ''
      alphabet_size = len(string.letters)
      for i in range(length):
          word += string.letters[(i % alphabet_size)]
      return word


class STLS1(object):

    def create_stream (self):
        fsize_no_fcs = 129
        base_pkt_a = Ether()/IP()/IPv6()/IP(dst="48.0.0.1",options=IPOption('\x01\x01\x01\x00'))/UDP(dport=12,sport=1025)

        vm1 = STLScVmRaw([
                          STLVmFlowVar(name="src",min_value="10.0.0.1",max_value="10.0.0.10",size=4,op="inc"),
                          STLVmWrFlowVar(fv_name="src",pkt_offset= "IP:1.src"),
                           # checksum
                          STLVmFixIpv4(offset = "IP:1")

                         ]
                         ) # split to cores base on the tuple generator

        #
        pkt_a = STLPktBuilder(pkt=base_pkt_a/generate_payload(fsize_no_fcs-len(base_pkt_a)), vm=vm1)


        return STLStream( packet = pkt_a ,
                          mode = STLTXCont() )

    def get_streams (self, direction = 0, **kwargs):
        # create 1 stream 
        return [ self.create_stream() ]


# dynamic load - used for trex console or simulator
def register():
    return STLS1()