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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
### Single stream UDP packet, 64B ###
#####################################
- name: udp_64B
stream:
self_start: True
packet:
binary: stl/syn_packet.pcap # pcap should not include CRC
mode:
type: continuous
pps: 100
rx_stats: []
# program generate 4 random numbers and write them to ip.src/ip.dst/tcp.src_port/tcp.dest_port
vm:
instructions: [
#define 4 bytes random ip_src
{ "type" : "flow_var", # name of the command
"name" : "ip_src",
"op" : "random",
"init_value" : 0,
"min_value" : 1,
"max_value" : 1000000, # max ip 16.0.0.254
"size" : 4
},
{ "type" : "flow_var",
"name" : "ip_dst",
"op" : "random",
"init_value" : 0,
"min_value" : 1,
"max_value" : 1000000,
"size" : 4
},
{ "type" : "flow_var", # name of the command
"name" : "port_src",
"op" : "random",
"init_value" : 0,
"min_value" : 1025,
"max_value" : 65000,
"size" : 2 #size in bytes
},
{ "type" : "flow_var", # name of the command
"name" : "port_dst",
"op" : "random",
"init_value" : 0,
"min_value" : 1025,
"max_value" : 65000,
"size" : 2 #size in bytes
},
{
"type" : "write_flow_var", # command name
"name" : "ip_src", # varible to write
"add_value" : 0x10000000, # 16.0.0.0 is src base
"is_big_endian" : true, # write as big edian
"pkt_offset" : 26, # write tuple_gen.port into udp.src_port
},
{
"type" : "write_flow_var", # command name
"name" : "ip_dst", # varible to write
"add_value" : 0x40000000, # 16.0.0.0 is src base
"is_big_endian" : true, # write as big edian
"pkt_offset" : 30, # write tuple_gen.port into udp.src_port
},
{
"type" : "fix_checksum_ipv4", # fix ipv4 header checksum
"pkt_offset" : 14, # offset of ipv4 header
},
{
"type" : "write_flow_var", # command name
"name" : "port_src", # varible to write
"add_value" : 0, # 16.0.0.0 is src base
"is_big_endian" : true, # write as big edian
"pkt_offset" : 34, # write tuple_gen.port into udp.src_port
},
{
"type" : "write_flow_var", # command name
"name" : "port_dst", # varible to write
"add_value" : 0,
"is_big_endian" : true, # write as big edian
"pkt_offset" : 36, # write tuple_gen.port into udp.src_port
}
]
|