tc-testing: add support for sending various scapy packets
It can be worth sending different scapy packets on a given test, as in the last patch of this series. For that, lets listify the scapy attribute and simply iterate over it. Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b4fd096cbb
commit
11f04de902
|
@ -29,22 +29,26 @@ class SubPlugin(TdcPlugin):
|
|||
return
|
||||
|
||||
# Check for required fields
|
||||
scapyinfo = self.args.caseinfo['scapy']
|
||||
scapy_keys = ['iface', 'count', 'packet']
|
||||
missing_keys = []
|
||||
keyfail = False
|
||||
for k in scapy_keys:
|
||||
if k not in scapyinfo:
|
||||
keyfail = True
|
||||
missing_keys.append(k)
|
||||
if keyfail:
|
||||
print('{}: Scapy block present in the test, but is missing info:'
|
||||
.format(self.sub_class))
|
||||
print('{}'.format(missing_keys))
|
||||
lscapyinfo = self.args.caseinfo['scapy']
|
||||
if type(lscapyinfo) != list:
|
||||
lscapyinfo = [ lscapyinfo, ]
|
||||
|
||||
pkt = eval(scapyinfo['packet'])
|
||||
if '$' in scapyinfo['iface']:
|
||||
tpl = Template(scapyinfo['iface'])
|
||||
scapyinfo['iface'] = tpl.safe_substitute(NAMES)
|
||||
for count in range(scapyinfo['count']):
|
||||
sendp(pkt, iface=scapyinfo['iface'])
|
||||
for scapyinfo in lscapyinfo:
|
||||
scapy_keys = ['iface', 'count', 'packet']
|
||||
missing_keys = []
|
||||
keyfail = False
|
||||
for k in scapy_keys:
|
||||
if k not in scapyinfo:
|
||||
keyfail = True
|
||||
missing_keys.append(k)
|
||||
if keyfail:
|
||||
print('{}: Scapy block present in the test, but is missing info:'
|
||||
.format(self.sub_class))
|
||||
print('{}'.format(missing_keys))
|
||||
|
||||
pkt = eval(scapyinfo['packet'])
|
||||
if '$' in scapyinfo['iface']:
|
||||
tpl = Template(scapyinfo['iface'])
|
||||
scapyinfo['iface'] = tpl.safe_substitute(NAMES)
|
||||
for count in range(scapyinfo['count']):
|
||||
sendp(pkt, iface=scapyinfo['iface'])
|
||||
|
|
Loading…
Reference in New Issue