diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py
index 3e0cccffabb7aad4ab5b5c6e88642c36b7e12166..af05952b313d1632eacd5962cc34c4aa1b6b5a10 100644
--- a/src/device/service/drivers/p4/p4_driver.py
+++ b/src/device/service/drivers/p4/p4_driver.py
@@ -44,7 +44,7 @@ class P4Driver(_Driver):
         transport port number of the P4Runtime server running on the P4 device
     **settings : map
         id : int
-            P4 device ID (Mandatory)
+            P4 device datapath ID (Mandatory)
         name : str
             P4 device name (Optional)
         vendor : str
diff --git a/src/device/tests/device_p4.py b/src/device/tests/device_p4.py
index 577855dd449b1aa67b8b36e78bd57abb47b03b23..4cd0a4c745d3a07b71f320ce79d73c95ffb0af37 100644
--- a/src/device/tests/device_p4.py
+++ b/src/device/tests/device_p4.py
@@ -17,9 +17,10 @@ P4 device example configuration.
 """
 
 from common.tools.object_factory.ConfigRule import json_config_rule_set
-from common.tools.object_factory.Device import json_device_p4_disabled
+from common.tools.object_factory.Device import (
+    json_device_connect_rules, json_device_id, json_device_p4_disabled)
 
-DEVICE_P4_ID = 0
+DEVICE_P4_DPID = 0
 DEVICE_P4_NAME = 'device:leaf1'
 DEVICE_P4_ADDRESS = '127.0.0.1'
 DEVICE_P4_PORT = '50101'
@@ -29,21 +30,22 @@ DEVICE_P4_SW_VER = 'Stratum'
 DEVICE_P4_PIPECONF = 'org.onosproject.pipelines.fabric'
 DEVICE_P4_WORKERS = 2
 DEVICE_P4_GRACE_PERIOD = 60
+DEVICE_P4_TIMEOUT = 60
 
-DEVICE_P4_UUID = {'device_uuid': {'uuid': DEVICE_P4_NAME}}
+DEVICE_P4_UUID = DEVICE_P4_NAME
+DEVICE_P4_ID = json_device_id(DEVICE_P4_UUID)
 DEVICE_P4 = json_device_p4_disabled(DEVICE_P4_UUID)
 
-DEVICE_P4_CONNECT_RULES = [
-    json_config_rule_set('_connect/address', DEVICE_P4_ADDRESS),
-    json_config_rule_set('_connect/port', DEVICE_P4_PORT),
-    json_config_rule_set('_connect/settings', {
-        'id'      : int(DEVICE_P4_ID),
-        'name'    : DEVICE_P4_NAME,
-        'hw-ver'  : DEVICE_P4_HW_VER,
-        'sw-ver'  : DEVICE_P4_SW_VER,
-        'pipeconf': DEVICE_P4_PIPECONF
-    }),
-]
+DEVICE_P4_CONNECT_RULES = json_device_connect_rules(
+    DEVICE_P4_ADDRESS, DEVICE_P4_PORT, {
+        'id': DEVICE_P4_DPID,
+        'name': DEVICE_P4_NAME,
+        'hw-ver': DEVICE_P4_HW_VER,
+        'sw-ver': DEVICE_P4_SW_VER,
+        'pipeconf': DEVICE_P4_PIPECONF,
+        'timeout': DEVICE_P4_TIMEOUT
+    }
+)
 
 DEVICE_P4_CONFIG_RULES = [
     json_config_rule_set('key1', 'value1'),
diff --git a/src/device/tests/test_unit_p4.py b/src/device/tests/test_unit_p4.py
index 853d9d8a5fa4795fbec1445bd0f9d518402023c7..777ab280aa2b500c3c2b445fcecdf81024b817f3 100644
--- a/src/device/tests/test_unit_p4.py
+++ b/src/device/tests/test_unit_p4.py
@@ -15,7 +15,7 @@
 import pytest
 from device.service.drivers.p4.p4_driver import P4Driver
 from .device_p4 import(
-        DEVICE_P4_ADDRESS, DEVICE_P4_PORT, DEVICE_P4_ID, DEVICE_P4_NAME,
+        DEVICE_P4_ADDRESS, DEVICE_P4_PORT, DEVICE_P4_DPID, DEVICE_P4_NAME,
         DEVICE_P4_VENDOR, DEVICE_P4_HW_VER, DEVICE_P4_SW_VER,
         DEVICE_P4_PIPECONF, DEVICE_P4_WORKERS, DEVICE_P4_GRACE_PERIOD)
 from .mock_p4runtime_service import MockP4RuntimeService
@@ -37,7 +37,7 @@ def device_driverapi_p4():
     _driver = P4Driver(
         address=DEVICE_P4_ADDRESS,
         port=DEVICE_P4_PORT,
-        id=DEVICE_P4_ID,
+        id=DEVICE_P4_DPID,
         name=DEVICE_P4_NAME,
         vendor=DEVICE_P4_VENDOR,
         hw_ver=DEVICE_P4_HW_VER,
diff --git a/src/device/tests/test_unitary.py b/src/device/tests/test_unitary.py
index 64c54deb0e784fbf075d7d6973ed01b0708d4867..411cbba05957425687b0b03e3e868febe82a944d 100644
--- a/src/device/tests/test_unitary.py
+++ b/src/device/tests/test_unitary.py
@@ -81,7 +81,7 @@ except ImportError:
 #ENABLE_EMULATED   = False # set to False to disable tests of Emulated devices
 #ENABLE_OPENCONFIG = False # set to False to disable tests of OpenConfig devices
 #ENABLE_TAPI       = False # set to False to disable tests of TAPI devices
-ENABLE_P4         = False # set to False to disable tests of P4 devices (P4 device not available in GitLab)
+#ENABLE_P4         = False # set to False to disable tests of P4 devices
 
 ENABLE_OPENCONFIG_CONFIGURE   = True
 ENABLE_OPENCONFIG_MONITOR     = True
@@ -917,7 +917,8 @@ def test_device_p4_add_error_cases(
         device_client: DeviceClient,     # pylint: disable=redefined-outer-name
         device_service: DeviceService):  # pylint: disable=redefined-outer-name
 
-    if not ENABLE_P4: pytest.skip('Skipping test: No P4 device has been configured')
+    if not ENABLE_P4: pytest.skip(
+        'Skipping test: No P4 device has been configured')
 
     with pytest.raises(grpc.RpcError) as e:
         device_p4_with_extra_rules = copy.deepcopy(DEVICE_P4)
@@ -940,13 +941,14 @@ def test_device_p4_add_correct(
         device_service: DeviceService,              # pylint: disable=redefined-outer-name
         p4runtime_service: MockP4RuntimeService):   # pylint: disable=redefined-outer-name
 
-    if not ENABLE_P4: pytest.skip('Skipping test: No P4 device has been configured')
+    if not ENABLE_P4: pytest.skip(
+        'Skipping test: No P4 device has been configured')
 
     device_p4_with_connect_rules = copy.deepcopy(DEVICE_P4)
     device_p4_with_connect_rules['device_config']['config_rules'].extend(
         DEVICE_P4_CONNECT_RULES)
     device_client.AddDevice(Device(**device_p4_with_connect_rules))
-    driver : _Driver = device_service.driver_instance_cache.get(DEVICE_P4_NAME)
+    driver : _Driver = device_service.driver_instance_cache.get(DEVICE_P4_UUID)
     assert driver is not None
 
 
@@ -956,13 +958,14 @@ def test_device_p4_get(
         device_service: DeviceService,              # pylint: disable=redefined-outer-name
         p4runtime_service: MockP4RuntimeService):   # pylint: disable=redefined-outer-name
 
-    if not ENABLE_P4: pytest.skip('Skipping test: No P4 device has been configured')
+    if not ENABLE_P4: pytest.skip(
+        'Skipping test: No P4 device has been configured')
 
-    initial_config = device_client.GetInitialConfig(DeviceId(**DEVICE_P4_UUID))
+    initial_config = device_client.GetInitialConfig(DeviceId(**DEVICE_P4_ID))
     LOGGER.info('initial_config = {:s}'.format(
         grpc_message_to_json_string(initial_config)))
 
-    device_data = context_client.GetDevice(DeviceId(**DEVICE_P4_UUID))
+    device_data = context_client.GetDevice(DeviceId(**DEVICE_P4_ID))
     LOGGER.info('device_data = {:s}'.format(
         grpc_message_to_json_string(device_data)))
 
@@ -972,6 +975,10 @@ def test_device_p4_configure(
         device_client: DeviceClient,                # pylint: disable=redefined-outer-name
         device_service: DeviceService,              # pylint: disable=redefined-outer-name
         p4runtime_service: MockP4RuntimeService):   # pylint: disable=redefined-outer-name
+
+    if not ENABLE_P4: pytest.skip(
+        'Skipping test: No P4 device has been configured')
+
     pytest.skip('Skipping test for unimplemented method')
 
 
@@ -980,6 +987,10 @@ def test_device_p4_deconfigure(
         device_client: DeviceClient,                # pylint: disable=redefined-outer-name
         device_service: DeviceService,              # pylint: disable=redefined-outer-name
         p4runtime_service: MockP4RuntimeService):   # pylint: disable=redefined-outer-name
+
+    if not ENABLE_P4: pytest.skip(
+        'Skipping test: No P4 device has been configured')
+
     pytest.skip('Skipping test for unimplemented method')
 
 
@@ -991,6 +1002,6 @@ def test_device_p4_delete(
 
     if not ENABLE_P4: pytest.skip('Skipping test: No P4 device has been configured')
 
-    device_client.DeleteDevice(DeviceId(**DEVICE_P4_UUID))
-    driver : _Driver = device_service.driver_instance_cache.get(DEVICE_P4_NAME)
+    device_client.DeleteDevice(DeviceId(**DEVICE_P4_ID))
+    driver : _Driver = device_service.driver_instance_cache.get(DEVICE_P4_UUID)
     assert driver is None