diff --git a/src/webui/service/load_gen/forms.py b/src/webui/service/load_gen/forms.py
index e0d11800cf9fbd9b0e195de7aa85eede272fe28e..4c5c095cd0ca7b0549a14be394e517694d9b3268 100644
--- a/src/webui/service/load_gen/forms.py
+++ b/src/webui/service/load_gen/forms.py
@@ -21,6 +21,8 @@ DEFAULT_AVAILABILITY   = '0.0..99.9999'
 DEFAULT_CAPACITY_GBPS  = '0.1..100.00' #'10, 40, 50, 100, 400'
 DEFAULT_E2E_LATENCY_MS = '5.0..100.00'
 
+DEFAULT_REGEX = r'.+'
+
 class LoadGenForm(FlaskForm):
     num_requests = IntegerField('Num Requests', default=100, validators=[DataRequired(), NumberRange(min=0)])
     num_generated = IntegerField('Num Generated', default=0, render_kw={'readonly': True})
@@ -33,6 +35,9 @@ class LoadGenForm(FlaskForm):
     request_type_slice_l2nm = BooleanField('Slice L2NM', default=True)
     request_type_slice_l3nm = BooleanField('Slice L3NM', default=False)
 
+    device_regex = StringField('Device selector [regex]', default=DEFAULT_REGEX)
+    endpoint_regex = StringField('Endpoint selector [regex]', default=DEFAULT_REGEX)
+
     offered_load = FloatField('Offered Load [Erlang]', default=50, validators=[NumberRange(min=0.0)])
     holding_time = FloatField('Holding Time [seconds]', default=10, validators=[NumberRange(min=0.0)])
     inter_arrival_time = FloatField('Inter Arrival Time [seconds]', default=0, validators=[NumberRange(min=0.0)])
diff --git a/src/webui/service/load_gen/routes.py b/src/webui/service/load_gen/routes.py
index f05f57f6d5aab83c0752dda15e0b858c9a4d53a3..3483c2a65d08f3da18b2f630dbf7a59ac0f22ecb 100644
--- a/src/webui/service/load_gen/routes.py
+++ b/src/webui/service/load_gen/routes.py
@@ -62,27 +62,29 @@ def home():
     _e2e_latency_ms     = list_scalar_range__grpc_to_str(status.parameters.e2e_latency_ms)
 
     form = LoadGenForm()
-    set_properties(form.num_requests             , status.parameters.num_requests , readonly=status.running)
-    set_properties(form.offered_load             , _offered_load                  , readonly=status.running)
-    set_properties(form.holding_time             , _holding_time                  , readonly=status.running)
-    set_properties(form.inter_arrival_time       , _inter_arrival_time            , readonly=status.running)
-    set_properties(form.availability             , _availability                  , readonly=status.running)
-    set_properties(form.capacity_gbps            , _capacity_gbps                 , readonly=status.running)
-    set_properties(form.e2e_latency_ms           , _e2e_latency_ms                , readonly=status.running)
-    set_properties(form.max_workers              , status.parameters.max_workers  , readonly=status.running)
-    set_properties(form.do_teardown              , status.parameters.do_teardown  , disabled=status.running)
-    set_properties(form.record_to_dlt            , status.parameters.record_to_dlt, disabled=status.running)
-    set_properties(form.dlt_domain_id            , status.parameters.dlt_domain_id, readonly=status.running)
-    set_properties(form.request_type_service_l2nm, _request_type_service_l2nm     , disabled=status.running)
-    set_properties(form.request_type_service_l3nm, _request_type_service_l3nm     , disabled=status.running)
-    set_properties(form.request_type_service_mw  , _request_type_service_mw       , disabled=status.running)
-    set_properties(form.request_type_service_tapi, _request_type_service_tapi     , disabled=status.running)
-    set_properties(form.request_type_slice_l2nm  , _request_type_slice_l2nm       , disabled=status.running)
-    set_properties(form.request_type_slice_l3nm  , _request_type_slice_l3nm       , disabled=status.running)
-    set_properties(form.num_generated            , status.num_generated           , disabled=True)
-    set_properties(form.num_released             , status.num_released            , disabled=True)
-    set_properties(form.infinite_loop            , status.infinite_loop           , disabled=True)
-    set_properties(form.running                  , status.running                 , disabled=True)
+    set_properties(form.num_requests             , status.parameters.num_requests  , readonly=status.running)
+    set_properties(form.device_regex             , status.parameters.device_regex  , readonly=status.running)
+    set_properties(form.endpoint_regex           , status.parameters.endpoint_regex, readonly=status.running)
+    set_properties(form.offered_load             , _offered_load                   , readonly=status.running)
+    set_properties(form.holding_time             , _holding_time                   , readonly=status.running)
+    set_properties(form.inter_arrival_time       , _inter_arrival_time             , readonly=status.running)
+    set_properties(form.availability             , _availability                   , readonly=status.running)
+    set_properties(form.capacity_gbps            , _capacity_gbps                  , readonly=status.running)
+    set_properties(form.e2e_latency_ms           , _e2e_latency_ms                 , readonly=status.running)
+    set_properties(form.max_workers              , status.parameters.max_workers   , readonly=status.running)
+    set_properties(form.do_teardown              , status.parameters.do_teardown   , disabled=status.running)
+    set_properties(form.record_to_dlt            , status.parameters.record_to_dlt , disabled=status.running)
+    set_properties(form.dlt_domain_id            , status.parameters.dlt_domain_id , readonly=status.running)
+    set_properties(form.request_type_service_l2nm, _request_type_service_l2nm      , disabled=status.running)
+    set_properties(form.request_type_service_l3nm, _request_type_service_l3nm      , disabled=status.running)
+    set_properties(form.request_type_service_mw  , _request_type_service_mw        , disabled=status.running)
+    set_properties(form.request_type_service_tapi, _request_type_service_tapi      , disabled=status.running)
+    set_properties(form.request_type_slice_l2nm  , _request_type_slice_l2nm        , disabled=status.running)
+    set_properties(form.request_type_slice_l3nm  , _request_type_slice_l3nm        , disabled=status.running)
+    set_properties(form.num_generated            , status.num_generated            , disabled=True)
+    set_properties(form.num_released             , status.num_released             , disabled=True)
+    set_properties(form.infinite_loop            , status.infinite_loop            , disabled=True)
+    set_properties(form.running                  , status.running                  , disabled=True)
 
     form.submit.label.text = 'Stop' if status.running else 'Start'
     form_action = url_for('load_gen.stop') if status.running else url_for('load_gen.start')
@@ -99,6 +101,8 @@ def start():
 
             load_gen_params = Parameters()
             load_gen_params.num_requests       = form.num_requests.data
+            load_gen_params.device_regex       = form.device_regex.data
+            load_gen_params.endpoint_regex     = form.endpoint_regex.data
             load_gen_params.offered_load       = form.offered_load.data
             load_gen_params.holding_time       = form.holding_time.data
             load_gen_params.inter_arrival_time = form.inter_arrival_time.data
diff --git a/src/webui/service/templates/load_gen/home.html b/src/webui/service/templates/load_gen/home.html
index 5bedf66fad1fa2d1b5e38e3866acd95347c9559b..cec0a38dba2b4b31d4d07d391e4ce211f0c7ac76 100644
--- a/src/webui/service/templates/load_gen/home.html
+++ b/src/webui/service/templates/load_gen/home.html
@@ -83,6 +83,36 @@
             </div>
             <br />
 
+            <div class="row mb-3">
+                {{ form.device_regex.label(class="col-sm-2 col-form-label") }}
+                <div class="col-sm-10">
+                    {% if form.device_regex.errors %}
+                        {{ form.device_regex(class="form-control is-invalid") }}
+                        <div class="invalid-feedback">
+                            {% for error in form.device_regex.errors %}<span>{{ error }}</span>{% endfor %}
+                        </div>
+                    {% else %}
+                        {{ form.device_regex(class="form-control") }}
+                    {% endif %}
+                </div>
+            </div>
+            <br />
+
+            <div class="row mb-3">
+                {{ form.endpoint_regex.label(class="col-sm-2 col-form-label") }}
+                <div class="col-sm-10">
+                    {% if form.endpoint_regex.errors %}
+                        {{ form.endpoint_regex(class="form-control is-invalid") }}
+                        <div class="invalid-feedback">
+                            {% for error in form.endpoint_regex.errors %}<span>{{ error }}</span>{% endfor %}
+                        </div>
+                    {% else %}
+                        {{ form.endpoint_regex(class="form-control") }}
+                    {% endif %}
+                </div>
+            </div>
+            <br />
+
             <div class="row mb-3">
                 {{ form.offered_load.label(class="col-sm-2 col-form-label") }}
                 <div class="col-sm-10">