diff --git a/core/grpc_service.go b/core/grpc_service.go
index b244818..75d8845 100644
--- a/core/grpc_service.go
+++ b/core/grpc_service.go
@@ -51,12 +51,63 @@
 }
 
 func (s *Server) GetDeviceInfo(c context.Context, empty *openolt.Empty) (*openolt.DeviceInfo, error) {
-	logger.Info("OLT receives GetDeviceInfo()\n")
-	devinfo := new(openolt.DeviceInfo)
-	devinfo.Vendor = "CORD"
-	devinfo.OnuIdStart = 0
-	devinfo.OnuIdEnd = 3
-	devinfo.PonPorts = 4
+    logger.Info("OLT receives GetDeviceInfo()\n")
+    devinfo := new(openolt.DeviceInfo)
+    devinfo.Vendor = "EdgeCore"
+    devinfo.Model = "asfvolt16"
+    devinfo.HardwareVersion = ""
+    devinfo.FirmwareVersion = ""
+    devinfo.Technology = "xgspon"
+    devinfo.PonPorts = 1
+    devinfo.OnuIdStart = 1
+    devinfo.OnuIdEnd = 255
+    devinfo.AllocIdStart = 1024
+    devinfo.AllocIdEnd = 16383
+    devinfo.GemportIdStart = 1024
+    devinfo.GemportIdEnd = 65535
+    devinfo.FlowIdStart = 1
+    devinfo.FlowIdEnd = 16383
+
+     /*
+     for intf_id := 0; intf_id < 16; intf_id++ {
+        r := new(openolt.DeviceInfo_DeviceResourceRanges)
+
+        r.IntfIds = append(r.IntfIds, uint32(intf_id))
+
+        r.Technology = "xgspon"
+
+        p := new(openolt.DeviceInfo_DeviceResourceRanges_Pool)
+        p.Type = openolt.DeviceInfo_DeviceResourceRanges_Pool_ONU_ID
+        p.Sharing = openolt.DeviceInfo_DeviceResourceRanges_Pool_DEDICATED_PER_INTF
+        p.Start = 1
+        p.End = 255
+        r.Pools = append(r.Pools, p)
+
+        p = new(openolt.DeviceInfo_DeviceResourceRanges_Pool)
+        p.Type = openolt.DeviceInfo_DeviceResourceRanges_Pool_ALLOC_ID
+        p.Sharing = openolt.DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_SAME_TECH
+        p.Start = 1024
+        p.End = 16383
+        r.Pools = append(r.Pools, p)
+
+        p = new(openolt.DeviceInfo_DeviceResourceRanges_Pool)
+        p.Type = openolt.DeviceInfo_DeviceResourceRanges_Pool_GEMPORT_ID
+        p.Sharing = openolt.DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_ALL_TECH
+        p.Start = 1024
+        p.End = 65535
+        r.Pools = append(r.Pools, p)
+
+        p = new(openolt.DeviceInfo_DeviceResourceRanges_Pool)
+        p.Type = openolt.DeviceInfo_DeviceResourceRanges_Pool_FLOW_ID
+        p.Sharing = openolt.DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_ALL_TECH
+        p.Start = 1
+        p.End = 16383
+        r.Pools = append(r.Pools, p)
+
+        devinfo.Ranges = append(devinfo.Ranges, r)
+    }
+    */
+
 	return devinfo, nil
 }
 
diff --git a/openolt.proto b/openolt.proto
index ed69539..60bab72 100644
--- a/openolt.proto
+++ b/openolt.proto
@@ -244,6 +244,11 @@
     string model = 2;
     string hardware_version = 3;
     string firmware_version = 4;
+
+    // Total number of pon intf ports on the device
+    fixed32 pon_ports = 12;
+
+    // If using global per-device technology profile. To be deprecated
     string technology = 5;
     fixed32 onu_id_start = 6;
     fixed32 onu_id_end = 7;
@@ -251,7 +256,40 @@
     fixed32 alloc_id_end = 9;
     fixed32 gemport_id_start = 10;
     fixed32 gemport_id_end = 11;
-    fixed32 pon_ports = 12;
+    fixed32 flow_id_start = 13;
+    fixed32 flow_id_end = 14;
+
+    message DeviceResourceRanges {
+
+        // List of 0 or more intf_ids that use the same technology and pools.
+        // If 0 intf_ids supplied, it implies ALL interfaces
+        repeated fixed32 intf_ids = 1;
+
+        // Technology profile for this pool
+        string technology = 2;
+
+        message Pool {
+            enum PoolType {
+                ONU_ID = 0;
+                ALLOC_ID = 1;
+                GEMPORT_ID = 2;
+                FLOW_ID = 3;
+            }
+
+            enum SharingType {
+                DEDICATED_PER_INTF = 0;
+                SHARED_BY_ALL_INTF_ALL_TECH = 1; // Shared across all interfaces in all technologiesi in all ranges
+                SHARED_BY_ALL_INTF_SAME_TECH = 2; // Shared across all interfaces of the same technology used in this range
+            }
+
+            PoolType type = 1;
+	    SharingType sharing = 2;
+	    fixed32 start = 3; // lower bound on IDs allocated from this pool
+	    fixed32 end = 4; // upper bound on IDs allocated from this pool
+	}
+        repeated Pool pools = 3;
+    }
+    repeated DeviceResourceRanges ranges = 15;
 }
 
 message Classifier {
@@ -406,4 +444,4 @@
 }
 
 
-message Empty {}
\ No newline at end of file
+message Empty {}
