Loading src/load_generator/command/__main__.py +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ def main(): availability_ranges = [[0.0, 99.9999]], capacity_gbps_ranges = [[0.1, 100.00]], e2e_latency_ms_ranges = [[5.0, 100.00]], max_workers = 10, dry_mode = False, # in dry mode, no request is sent to TeraFlowSDN record_to_dlt = False, # if record_to_dlt, changes in device/link/service/slice are uploaded to DLT dlt_domain_id = 'dlt-perf-eval', # domain used to uploaded entities, ignored when record_to_dlt = False Loading src/load_generator/load_gen/Constants.py +5 −1 Original line number Diff line number Diff line Loading @@ -27,4 +27,8 @@ ENDPOINT_COMPATIBILITY = { 'PHOTONIC_MEDIA:DWDM:G_50GHZ:INPUT' : 'PHOTONIC_MEDIA:DWDM:G_50GHZ:OUTPUT', } MAX_WORKER_THREADS = 10 No newline at end of file DEFAULT_AVAILABILITY_RANGES = [[0.0, 99.9999]] DEFAULT_CAPACITY_GBPS_RANGES = [[0.1, 100.00]] DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]] DEFAULT_MAX_WORKERS = 10 src/load_generator/load_gen/Parameters.py +7 −4 Original line number Diff line number Diff line Loading @@ -13,11 +13,10 @@ # limitations under the License. from typing import List, Optional from load_generator.load_gen.Constants import ( DEFAULT_AVAILABILITY_RANGES, DEFAULT_CAPACITY_GBPS_RANGES, DEFAULT_E2E_LATENCY_MS_RANGES, DEFAULT_MAX_WORKERS) from load_generator.tools.ListScalarRange import Type_ListScalarRange DEFAULT_AVAILABILITY_RANGES = [[0.0, 99.9999]] DEFAULT_CAPACITY_GBPS_RANGES = [[0.1, 100.00]] DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]] class Parameters: def __init__( Loading @@ -26,7 +25,7 @@ class Parameters: availability_ranges : Type_ListScalarRange = DEFAULT_AVAILABILITY_RANGES, capacity_gbps_ranges : Type_ListScalarRange = DEFAULT_CAPACITY_GBPS_RANGES, e2e_latency_ms_ranges : Type_ListScalarRange = DEFAULT_E2E_LATENCY_MS_RANGES, do_teardown : bool = True, dry_mode : bool = False, max_workers : int = DEFAULT_MAX_WORKERS, do_teardown : bool = True, dry_mode : bool = False, record_to_dlt : bool = False, dlt_domain_id : Optional[str] = None ) -> None: self._num_requests = num_requests Loading @@ -37,6 +36,7 @@ class Parameters: self._availability_ranges = availability_ranges self._capacity_gbps_ranges = capacity_gbps_ranges self._e2e_latency_ms_ranges = e2e_latency_ms_ranges self._max_workers = max_workers self._do_teardown = do_teardown self._dry_mode = dry_mode self._record_to_dlt = record_to_dlt Loading Loading @@ -80,6 +80,9 @@ class Parameters: @property def e2e_latency_ms_ranges(self): return self._e2e_latency_ms_ranges @property def max_workers(self): return self._max_workers @property def do_teardown(self): return self._do_teardown Loading src/load_generator/load_gen/RequestScheduler.py +1 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ from common.proto.context_pb2 import Service, ServiceId, Slice, SliceId from common.tools.grpc.Tools import grpc_message_to_json_string from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from .Constants import MAX_WORKER_THREADS from .DltTools import explore_entities_to_record, record_entities from .Parameters import Parameters from .RequestGenerator import RequestGenerator Loading @@ -44,7 +43,7 @@ class RequestScheduler: self._scheduler = scheduler_class() self._scheduler.configure( jobstores = {'default': MemoryJobStore()}, executors = {'default': ThreadPoolExecutor(max_workers=MAX_WORKER_THREADS)}, executors = {'default': ThreadPoolExecutor(max_workers=parameters.max_workers)}, job_defaults = { 'coalesce': False, 'max_instances': 100, Loading src/load_generator/service/LoadGeneratorServiceServicerImpl.py +2 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): availability_ranges = list_scalar_range__grpc_to_list(request.availability ), capacity_gbps_ranges = list_scalar_range__grpc_to_list(request.capacity_gbps ), e2e_latency_ms_ranges = list_scalar_range__grpc_to_list(request.e2e_latency_ms), max_workers = request.max_workers, do_teardown = request.do_teardown, # if set, schedule tear down of requests dry_mode = request.dry_mode, # in dry mode, no request is sent to TeraFlowSDN record_to_dlt = request.record_to_dlt, # if set, upload changes to DLT Loading Loading @@ -80,6 +81,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): stat_pars.offered_load = params.offered_load # pylint: disable=no-member stat_pars.holding_time = params.holding_time # pylint: disable=no-member stat_pars.inter_arrival_time = params.inter_arrival_time # pylint: disable=no-member stat_pars.max_workers = params.max_workers # pylint: disable=no-member stat_pars.do_teardown = params.do_teardown # pylint: disable=no-member stat_pars.dry_mode = params.dry_mode # pylint: disable=no-member stat_pars.record_to_dlt = params.record_to_dlt # pylint: disable=no-member Loading Loading
src/load_generator/command/__main__.py +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ def main(): availability_ranges = [[0.0, 99.9999]], capacity_gbps_ranges = [[0.1, 100.00]], e2e_latency_ms_ranges = [[5.0, 100.00]], max_workers = 10, dry_mode = False, # in dry mode, no request is sent to TeraFlowSDN record_to_dlt = False, # if record_to_dlt, changes in device/link/service/slice are uploaded to DLT dlt_domain_id = 'dlt-perf-eval', # domain used to uploaded entities, ignored when record_to_dlt = False Loading
src/load_generator/load_gen/Constants.py +5 −1 Original line number Diff line number Diff line Loading @@ -27,4 +27,8 @@ ENDPOINT_COMPATIBILITY = { 'PHOTONIC_MEDIA:DWDM:G_50GHZ:INPUT' : 'PHOTONIC_MEDIA:DWDM:G_50GHZ:OUTPUT', } MAX_WORKER_THREADS = 10 No newline at end of file DEFAULT_AVAILABILITY_RANGES = [[0.0, 99.9999]] DEFAULT_CAPACITY_GBPS_RANGES = [[0.1, 100.00]] DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]] DEFAULT_MAX_WORKERS = 10
src/load_generator/load_gen/Parameters.py +7 −4 Original line number Diff line number Diff line Loading @@ -13,11 +13,10 @@ # limitations under the License. from typing import List, Optional from load_generator.load_gen.Constants import ( DEFAULT_AVAILABILITY_RANGES, DEFAULT_CAPACITY_GBPS_RANGES, DEFAULT_E2E_LATENCY_MS_RANGES, DEFAULT_MAX_WORKERS) from load_generator.tools.ListScalarRange import Type_ListScalarRange DEFAULT_AVAILABILITY_RANGES = [[0.0, 99.9999]] DEFAULT_CAPACITY_GBPS_RANGES = [[0.1, 100.00]] DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]] class Parameters: def __init__( Loading @@ -26,7 +25,7 @@ class Parameters: availability_ranges : Type_ListScalarRange = DEFAULT_AVAILABILITY_RANGES, capacity_gbps_ranges : Type_ListScalarRange = DEFAULT_CAPACITY_GBPS_RANGES, e2e_latency_ms_ranges : Type_ListScalarRange = DEFAULT_E2E_LATENCY_MS_RANGES, do_teardown : bool = True, dry_mode : bool = False, max_workers : int = DEFAULT_MAX_WORKERS, do_teardown : bool = True, dry_mode : bool = False, record_to_dlt : bool = False, dlt_domain_id : Optional[str] = None ) -> None: self._num_requests = num_requests Loading @@ -37,6 +36,7 @@ class Parameters: self._availability_ranges = availability_ranges self._capacity_gbps_ranges = capacity_gbps_ranges self._e2e_latency_ms_ranges = e2e_latency_ms_ranges self._max_workers = max_workers self._do_teardown = do_teardown self._dry_mode = dry_mode self._record_to_dlt = record_to_dlt Loading Loading @@ -80,6 +80,9 @@ class Parameters: @property def e2e_latency_ms_ranges(self): return self._e2e_latency_ms_ranges @property def max_workers(self): return self._max_workers @property def do_teardown(self): return self._do_teardown Loading
src/load_generator/load_gen/RequestScheduler.py +1 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ from common.proto.context_pb2 import Service, ServiceId, Slice, SliceId from common.tools.grpc.Tools import grpc_message_to_json_string from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from .Constants import MAX_WORKER_THREADS from .DltTools import explore_entities_to_record, record_entities from .Parameters import Parameters from .RequestGenerator import RequestGenerator Loading @@ -44,7 +43,7 @@ class RequestScheduler: self._scheduler = scheduler_class() self._scheduler.configure( jobstores = {'default': MemoryJobStore()}, executors = {'default': ThreadPoolExecutor(max_workers=MAX_WORKER_THREADS)}, executors = {'default': ThreadPoolExecutor(max_workers=parameters.max_workers)}, job_defaults = { 'coalesce': False, 'max_instances': 100, Loading
src/load_generator/service/LoadGeneratorServiceServicerImpl.py +2 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): availability_ranges = list_scalar_range__grpc_to_list(request.availability ), capacity_gbps_ranges = list_scalar_range__grpc_to_list(request.capacity_gbps ), e2e_latency_ms_ranges = list_scalar_range__grpc_to_list(request.e2e_latency_ms), max_workers = request.max_workers, do_teardown = request.do_teardown, # if set, schedule tear down of requests dry_mode = request.dry_mode, # in dry mode, no request is sent to TeraFlowSDN record_to_dlt = request.record_to_dlt, # if set, upload changes to DLT Loading Loading @@ -80,6 +81,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): stat_pars.offered_load = params.offered_load # pylint: disable=no-member stat_pars.holding_time = params.holding_time # pylint: disable=no-member stat_pars.inter_arrival_time = params.inter_arrival_time # pylint: disable=no-member stat_pars.max_workers = params.max_workers # pylint: disable=no-member stat_pars.do_teardown = params.do_teardown # pylint: disable=no-member stat_pars.dry_mode = params.dry_mode # pylint: disable=no-member stat_pars.record_to_dlt = params.record_to_dlt # pylint: disable=no-member Loading