if not was_set :
raise CTRexPacketBuildException(-14, "no buffer inside the pcap file {0}".format(f_path))
+ def to_pkt_dump(self):
+ p = self.pkt
+ if p and isinstance(p, Packet):
+ p.show2();
+ hexdump(p);
+ return;
+ p = self.pkt_raw;
+ if p:
+ scapy_pkt = Ether(p);
+ scapy_pkt.show2();
+ hexdump(p);
+
+
def set_packet (self, pkt):
"""
Scapy packet Ether()/IP(src="16.0.0.1",dst="48.0.0.1")/UDP(dport=12,sport=1025)/IP()/"A"*10
duration = -1,
mode = 'none'):
- if not mode in ['none', 'gdb', 'valgrind', 'json', 'yaml']:
+ if not mode in ['none', 'gdb', 'valgrind', 'json', 'yaml','pkt']:
raise STLArgumentError('mode', mode)
# listify
elif mode == 'yaml':
print STLProfile(stream_list).dump_to_yaml()
return
+ elif mode == 'pkt':
+ print STLProfile(stream_list).dump_as_pkt();
+ return
+
# start simulation
self.outfile = outfile
action = "store_true",
default = False)
+ group.add_argument("--pkt",
+ help = "Parse the packet and show it as hex",
+ action = "store_true",
+ default = False)
+
group.add_argument("--yaml",
help = "generate YAML from input file [default is False]",
action = "store_true",
mode = 'json'
elif options.yaml:
mode = 'yaml'
+ elif options.pkt:
+ mode = 'pkt'
else:
mode = 'none'
if not packet:
packet = CScapyTRexPktBuilder(pkt = Ether()/IP())
+ self.scapy_pkt_builder = packet
# packet builder
packet.compile()
def get_rate (self):
return self.get_rate_from_field(self.fields['mode']['rate'])
+ def to_pkt_dump (self):
+ scapy_b = self.scapy_pkt_builder;
+ if scapy_b and isinstance(scapy_b,CScapyTRexPktBuilder):
+ scapy_b.to_pkt_dump()
+ else:
+ print "Nothing to dump"
+
+
def to_yaml (self):
y = {}
return profile
+ def dump_as_pkt (self):
+ cnt=0;
+ for stream in self.streams:
+ print "Stream %d" % cnt
+ cnt = cnt +1
+ stream.to_pkt_dump()
def dump_to_yaml (self, yaml_file = None):
yaml_list = [stream.to_yaml() for stream in self.streams]
class STLS1(object):
def create_stream (self):
- return STLStream( packet = STLPktBuilder(pkt = Ether()/IP(src="16.0.0.1",dst="48.0.0.1")/UDP(dport=12,sport=1025)/(10*'x')),
- mode = STLTXCont())
+ return STLStream(
+ packet =
+ STLPktBuilder(
+ pkt = Ether()/IP(src="16.0.0.1",dst="48.0.0.1")/
+ UDP(dport=12,sport=1025)/(10*'x')
+ ),
+ mode = STLTXCont())
def get_streams (self, direction = 0):
# create 1 stream
def create_stream (self):
pkt = Ether()/IP()/UDP(sport=1337,dport=4789)/VXLAN(vni=42)/Ether()/IP()/('x'*20)
- pkt.show2()
+ #pkt.show2()
+ #hexdump(pkt)
# burst of 17 packets
return STLStream(packet = STLPktBuilder(pkt = pkt ,vm = []),