mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			211 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| """
 | |
| Note: To Run this script gui should be opened with
 | |
| 
 | |
|     path: cd LANforgeGUI_5.4.3 (5.4.3 can be changed with GUI version)
 | |
|           pwd (Output : /home/lanforge/LANforgeGUI_5.4.3)
 | |
|           ./lfclient.bash -cli-socket 3990
 | |
| 
 | |
| Note: This script is used to create a DUT in chamber view.
 | |
|         Manual steps:
 | |
|             1. open GUI
 | |
|             2. click Chamber View
 | |
|             3. right click on empty space in Scenario configuration  select "New DUT"
 | |
|             4. Enter Name (DUT Name), SSID , Security type, BSsid (if available)
 | |
|             5. click on apply and OK
 | |
|             6. you will see a DUT created in chamber view under scenario configuration
 | |
| 
 | |
| Note : If entered DUT name is already created in lanforge,
 | |
|     it will overwrite on to that DUT ( All information will be overwritten )
 | |
|     Which means it will "Update the DUT".
 | |
| 
 | |
|     If entered DUT name is not already in lanforge,
 | |
|     then new DUT will be created will all the provided information
 | |
| 
 | |
| How to Run this:
 | |
|     ./create_chamberview_dut --lfmgr "localhost" --port "8080" --dut_name "dut_name"
 | |
|                 --ssid "ssid_idx=0 ssid=NET1 security=WPA|WEP|11r|EAP-PEAP bssid=78:d2:94:bf:16:41"
 | |
|                 --ssid "ssid_idx=1 ssid=NET1 security=WPA password=test bssid=78:d2:94:bf:16:40"
 | |
| 
 | |
|     --lfmgr = IP of lanforge
 | |
|     --port = Default 8080
 | |
|     --dut_name = Enter name of DUT ( to update DUT enter same DUT name )
 | |
|                                 ( enter new DUT name to create a new DUT)
 | |
|     --ssid = "ssid_idx=0 ssid=NET1 security=WPA|WEP|11r|EAP-PEAP bssid=78:d2:94:bf:16:41"
 | |
| 
 | |
|             --ssid will take = ssid_idx (from 0 to 7) : we can add upto 7 ssids to a DUT
 | |
|                              = ssid : Name of SSID
 | |
|                              = security : Security type WPA|WEP|11r|EAP-PEAP ( in case of multiple security add "|"
 | |
|                                         after each type ex. WPA|WEP (this will select WPA and WEP both)
 | |
|                              = bssid : Enter BSSID
 | |
|                              (if you dont want to give bssid
 | |
|                                 --ssid "ssid_idx=0 ssid=NET1 security=WPA|WEP|11r|EAP-PEAP"
 | |
|                                 )
 | |
| 
 | |
| Output : DUT will be created in Chamber View
 | |
| """
 | |
| import sys
 | |
| import os
 | |
| import importlib
 | |
| import argparse
 | |
| import time
 | |
| 
 | |
| if sys.version_info[0] != 3:
 | |
|     print("This script requires Python 3")
 | |
|     exit(1)
 | |
| 
 | |
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))
 | |
| 
 | |
| # from cv_dut_profile import cv_dut as dut
 | |
| cv_dut_profile = importlib.import_module("py-json.cv_dut_profile")
 | |
| dut = cv_dut_profile.cv_dut
 | |
| # from cv_test_manager import cv_test as cvtest
 | |
| cv_test_manager = importlib.import_module("py-json.cv_test_manager")
 | |
| cvtest = cv_test_manager.cv_test
 | |
| 
 | |
| 
 | |
| class DUT(dut):
 | |
|     def __init__(self,
 | |
|                  lfmgr="localhost",
 | |
|                  port="8080",
 | |
|                  dut_name="DUT",
 | |
|                  ssid=None,
 | |
|                  sw_version="NA",
 | |
|                  hw_version="NA",
 | |
|                  serial_num="NA",
 | |
|                  model_num="NA",
 | |
|                  dut_flags=None,
 | |
|                  ):
 | |
|         super().__init__(
 | |
|             lfclient_host=lfmgr,
 | |
|             lfclient_port=port,
 | |
|             sw_version=sw_version,
 | |
|             hw_version=hw_version,
 | |
|             serial_num=serial_num,
 | |
|             model_num=model_num,
 | |
|             desired_dut_flags=dut_flags,
 | |
|             desired_dut_flags_mask=dut_flags
 | |
|         )
 | |
|         if ssid is None:
 | |
|             ssid = []
 | |
|         self.cv_dut_name = dut_name
 | |
|         self.cv_test = cvtest(lfmgr, port)
 | |
|         self.dut_name = dut_name
 | |
|         self.ssid = ssid
 | |
| 
 | |
|     def setup(self):
 | |
|         self.create_dut()
 | |
| 
 | |
|     def add_ssids(self):
 | |
|         flags = dict()
 | |
|         flags['wep'] = 0x8
 | |
|         flags['wpa'] = 0x10
 | |
|         flags['wpa2'] = 0x20
 | |
|         flags['wpa3'] = 0x100
 | |
|         flags['11r'] = 0x200
 | |
|         flags['eap-ttls'] = 0x400
 | |
|         flags['eap-peap'] = 0x800
 | |
|         if self.ssid:
 | |
|             for j in range(len(self.ssid)):
 | |
|                 self.ssid[j] = self.ssid[j][0].split(' ')
 | |
|                 for k in range(len(self.ssid[j])):
 | |
|                     self.ssid[j][k] = self.ssid[j][k].split('=')
 | |
|                 d = dict()
 | |
|                 for item in self.ssid[j]:
 | |
|                     d[item[0].lower()] = item[1]
 | |
|                 self.ssid[j] = d
 | |
|                 self.ssid[j]['flag'] = []
 | |
| 
 | |
|                 flag = 0x0
 | |
|                 if 'security' in self.ssid[j].keys():
 | |
|                     self.ssid[j]['security'] = self.ssid[j]['security'].split(
 | |
|                         '|')
 | |
|                     for security in self.ssid[j]['security']:
 | |
|                         if security.lower() in flags:
 | |
|                             flag |= flags[security.lower()]
 | |
|                 self.ssid[j]['flag'] = flag
 | |
| 
 | |
|                 if 'bssid' not in self.ssid[j].keys():
 | |
|                     self.ssid[j]['bssid'] = '00:00:00:00:00:00'
 | |
| 
 | |
|                 if 'password' not in self.ssid[j].keys():
 | |
|                     self.ssid[j]['password'] = '[BLANK]'
 | |
| 
 | |
|                 self.add_ssid(dut_name=self.dut_name,
 | |
|                               ssid_idx=self.ssid[j]['ssid_idx'],
 | |
|                               ssid=self.ssid[j]['ssid'],
 | |
|                               passwd=self.ssid[j]['password'],
 | |
|                               bssid=self.ssid[j]['bssid'],
 | |
|                               ssid_flags=self.ssid[j]['flag'],
 | |
|                               ssid_flags_mask=0xFFFFFFFF
 | |
|                               )
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(
 | |
|         prog='create_chamberview_dut.py',
 | |
|         formatter_class=argparse.RawTextHelpFormatter,
 | |
|         description="""
 | |
|         ./create_chamberview_dut -m "localhost" -o "8080" -d "dut_name"
 | |
|                 --ssid "ssid_idx=0 ssid=NET1 security=WPA|WEP|11r|EAP-PEAP bssid=78:d2:94:bf:16:41"
 | |
|                 --ssid "ssid_idx=1 ssid=NET1 security=WPA password=test bssid=78:d2:94:bf:16:40"
 | |
|                """)
 | |
|     parser.add_argument(
 | |
|         "-m",
 | |
|         "--lfmgr",
 | |
|         type=str,
 | |
|         default="localhost",
 | |
|         help="address of the LANforge GUI machine (localhost is default)")
 | |
|     parser.add_argument(
 | |
|         "-o",
 | |
|         "--port",
 | |
|         type=str,
 | |
|         default="8080",
 | |
|         help="IP Port the LANforge GUI is listening on (8080 is default)")
 | |
|     parser.add_argument("-d", "--dut_name", type=str, default="DUT",
 | |
|                         help="set dut name")
 | |
|     parser.add_argument("-s", "--ssid", action='append', nargs=1,
 | |
|                         help="SSID", default=[])
 | |
| 
 | |
|     parser.add_argument(
 | |
|         "--sw_version",
 | |
|         default="NA",
 | |
|         help="DUT Software version.")
 | |
|     parser.add_argument(
 | |
|         "--hw_version",
 | |
|         default="NA",
 | |
|         help="DUT Hardware version.")
 | |
|     parser.add_argument(
 | |
|         "--serial_num",
 | |
|         default="NA",
 | |
|         help="DUT Serial number.")
 | |
|     parser.add_argument("--model_num", default="NA", help="DUT Model Number.")
 | |
|     parser.add_argument(
 | |
|         '--dut_flag',
 | |
|         help='station flags to add',
 | |
|         default=None,
 | |
|         action='append')
 | |
| 
 | |
|     args = parser.parse_args()
 | |
|     new_dut = DUT(lfmgr=args.lfmgr,
 | |
|                   port=args.port,
 | |
|                   dut_name=args.dut_name,
 | |
|                   ssid=args.ssid,
 | |
|                   sw_version=args.sw_version,
 | |
|                   hw_version=args.hw_version,
 | |
|                   serial_num=args.serial_num,
 | |
|                   model_num=args.model_num,
 | |
|                   dut_flags=args.dut_flag
 | |
|                   )
 | |
| 
 | |
|     new_dut.setup()
 | |
|     new_dut.add_ssids()
 | |
|     new_dut.cv_test.show_text_blob(None, None, True)  # Show changes on GUI
 | |
|     new_dut.cv_test.sync_cv()
 | |
|     time.sleep(2)
 | |
|     new_dut.cv_test.sync_cv()
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | 
