diff --git a/pyvoltha/adapters/iadapter.py b/pyvoltha/adapters/iadapter.py
index b3b906f..7d0fad5 100644
--- a/pyvoltha/adapters/iadapter.py
+++ b/pyvoltha/adapters/iadapter.py
@@ -207,6 +207,12 @@
     def unsuppress_alarm(self, filter):
         raise NotImplementedError()
 
+    def single_get_value_request(self, request):
+        raise NotImplementedError()
+
+    def single_set_value_request(self, request):
+        raise NotImplementedError()
+
     def _get_handler(self, device):
         if device.id in self.devices_handlers:
             handler = self.devices_handlers[device.id]
diff --git a/pyvoltha/adapters/interface.py b/pyvoltha/adapters/interface.py
index 647155a..2687549 100644
--- a/pyvoltha/adapters/interface.py
+++ b/pyvoltha/adapters/interface.py
@@ -282,6 +282,20 @@
         :return: Proto Message Response
         """
 
+    def single_get_value_request(msg):
+        """
+        Retrive a single type of attribute from a device.
+        :param msg: Proto Message (any)
+        :return: Proto Message Response
+        """
+
+    def single_set_value_request(msg):
+        """
+        Set a single type of attribute of a device.
+        :param msg: Proto Message (any)
+        :return: Proto Message Response
+        """
+
 
 class ICoreSouthBoundInterface(Interface):
     """
diff --git a/pyvoltha/adapters/kafka/adapter_request_facade.py b/pyvoltha/adapters/kafka/adapter_request_facade.py
index 1d9b57f..f59f213 100644
--- a/pyvoltha/adapters/kafka/adapter_request_facade.py
+++ b/pyvoltha/adapters/kafka/adapter_request_facade.py
@@ -20,7 +20,7 @@
 """
 from __future__ import absolute_import
 import structlog
-from twisted.internet.defer import inlineCallbacks
+from twisted.internet.defer import inlineCallbacks, returnValue
 from zope.interface import implementer
 from twisted.internet import reactor
 
@@ -30,6 +30,7 @@
 from voltha_protos.device_pb2 import Device, Port, ImageDownload, SimulateAlarmRequest, PmConfigs
 from voltha_protos.openflow_13_pb2 import FlowChanges, FlowGroups, Flows, \
     FlowGroupChanges, ofp_packet_out
+from voltha_protos.extensions_pb2 import SingleGetValueRequest
 from voltha_protos.voltha_pb2 import OmciTestRequest
 from pyvoltha.adapters.kafka.kafka_inter_container_library import IKafkaMessagingProxy, \
     get_messaging_proxy, KAFKA_OFFSET_LATEST, KAFKA_OFFSET_EARLIEST, ARG_FROM_TOPIC
@@ -409,5 +410,16 @@
             return False, Error(code=ErrorCode.INVALID_PARAMETERS,
                                 reason="simulate-alarm-request-invalid")
 
-        return True, self.adapter.simulate_alarm(d, req) 
+        return True, self.adapter.simulate_alarm(d, req)
 
+    @inlineCallbacks
+    def single_get_value_request(self, request, **kwargs):
+        req = SingleGetValueRequest()
+        if request:
+            request.Unpack(req)
+        else:
+            return False, Error(code=ErrorCode.INVALID_PARAMETERS,
+                                reason="request-invalid")
+        result = yield self.adapter.single_get_value_request(req)
+        res = yield result
+        return (True, res)
