~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/usr/bin/env python3
  2 
  3 import os
  4 import signal
  5 from string import Template
  6 import subprocess
  7 import time
  8 from TdcPlugin import TdcPlugin
  9 
 10 from tdc_config import *
 11 
 12 try:
 13     from scapy.all import *
 14 except ImportError:
 15     print("Unable to import the scapy python module.")
 16     print("\nIf not already installed, you may do so with:")
 17     print("\t\tpip3 install scapy==2.4.2")
 18     exit(1)
 19 
 20 class SubPlugin(TdcPlugin):
 21     def __init__(self):
 22         self.sub_class = 'scapy/SubPlugin'
 23         super().__init__()
 24 
 25     def post_execute(self):
 26         if 'scapy' not in self.args.caseinfo:
 27             if self.args.verbose:
 28                 print('{}.post_execute: no scapy info in test case'.format(self.sub_class))
 29             return
 30 
 31         # Check for required fields
 32         lscapyinfo = self.args.caseinfo['scapy']
 33         if type(lscapyinfo) != list:
 34             lscapyinfo = [ lscapyinfo, ]
 35 
 36         for scapyinfo in lscapyinfo:
 37             scapy_keys = ['iface', 'count', 'packet']
 38             missing_keys = []
 39             keyfail = False
 40             for k in scapy_keys:
 41                 if k not in scapyinfo:
 42                     keyfail = True
 43                     missing_keys.append(k)
 44             if keyfail:
 45                 print('{}: Scapy block present in the test, but is missing info:'
 46                     .format(self.sub_class))
 47                 print('{}'.format(missing_keys))
 48 
 49             pkt = eval(scapyinfo['packet'])
 50             if '$' in scapyinfo['iface']:
 51                 tpl = Template(scapyinfo['iface'])
 52                 scapyinfo['iface'] = tpl.safe_substitute(NAMES)
 53             for count in range(scapyinfo['count']):
 54                 sendp(pkt, iface=scapyinfo['iface'])

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php