diff --git a/protos/voltha_protos/adapter.proto b/protos/voltha_protos/adapter.proto
old mode 100644
new mode 100755
index f7c9ef3..3b13266
--- a/protos/voltha_protos/adapter.proto
+++ b/protos/voltha_protos/adapter.proto
@@ -1,15 +1,14 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 option java_package = "org.opencord.voltha";
 option java_outer_classname = "VolthaAdapter";
 
 package voltha;
 
-import "google/protobuf/any.proto";
-import "voltha_protos/meta.proto";
-import "google/protobuf/timestamp.proto";
 
+import "voltha_protos/meta.proto";
+import "google/protobuf/any.proto";
 
 message AdapterConfig {
 
@@ -36,7 +35,7 @@
     repeated string logical_device_ids = 4;  // Logical devices "owned"
 
     // timestamp when the adapter last sent a message to the core
-    google.protobuf.Timestamp last_communication = 5;
+    int64 last_communication = 5;
 
     int32 currentReplica = 6;
     int32 totalReplicas = 7;
diff --git a/protos/voltha_protos/adapter_services.proto b/protos/voltha_protos/adapter_services.proto
new file mode 100755
index 0000000..967511e
--- /dev/null
+++ b/protos/voltha_protos/adapter_services.proto
@@ -0,0 +1,99 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/adapter_services";
+option java_package = "org.opencord.adapter_services";
+option java_outer_classname = "VolthaAdapterServices";
+
+package voltha;
+
+import "google/protobuf/empty.proto";
+import  "voltha_protos/common.proto";
+import  "voltha_protos/inter_container.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/extensions.proto";
+import "voltha_protos/openolt.proto";
+import "voltha_protos/health.proto";
+import "voltha_protos/voltha.proto";
+
+// Service waiting for Core requests
+service AdapterService {
+    // GetHealthStatus is used by an AdapterService client to verify connectivity
+    // to the gRPC server hosting the AdapterService service
+    rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus);
+
+    // Device
+    rpc AdoptDevice(Device) returns(google.protobuf.Empty);
+    rpc ReconcileDevice(Device) returns(google.protobuf.Empty);
+    rpc DeleteDevice(Device) returns(google.protobuf.Empty);
+    rpc DisableDevice(Device) returns(google.protobuf.Empty);
+    rpc ReEnableDevice(Device) returns(google.protobuf.Empty);
+    rpc RebootDevice(Device) returns(google.protobuf.Empty);
+    rpc SelfTestDevice(Device) returns(google.protobuf.Empty);
+    rpc GetOfpDeviceInfo(Device) returns(SwitchCapability);
+    rpc ChildDeviceLost(Device) returns(google.protobuf.Empty);
+
+    // Ports
+    rpc EnablePort(Port) returns(google.protobuf.Empty);
+    rpc DisablePort(Port) returns(google.protobuf.Empty);
+
+    // Flows
+    rpc UpdateFlowsBulk(BulkFlows) returns(google.protobuf.Empty);
+    rpc UpdateFlowsIncrementally(IncrementalFlows) returns(google.protobuf.Empty);
+
+    //Packets
+    rpc SendPacketOut(PacketOut) returns(google.protobuf.Empty);
+
+    // PM
+    rpc UpdatePmConfig(PmConfigsInfo) returns(google.protobuf.Empty);
+
+    // Image
+    rpc DownloadOnuImage(DeviceImageDownloadRequest) returns (DeviceImageResponse);
+    rpc GetOnuImageStatus(DeviceImageRequest) returns (DeviceImageResponse);
+    rpc AbortOnuImageUpgrade(DeviceImageRequest) returns (DeviceImageResponse);
+    rpc GetOnuImages(common.ID) returns (OnuImages);
+    rpc ActivateOnuImage(DeviceImageRequest) returns (DeviceImageResponse);
+    rpc CommitOnuImage(DeviceImageRequest) returns (DeviceImageResponse);
+
+    // Deprecated Image APIs
+    rpc DownloadImage(ImageDownloadMessage) returns (ImageDownload);
+    rpc GetImageDownloadStatus(ImageDownloadMessage) returns (ImageDownload);
+    rpc CancelImageDownload(ImageDownloadMessage) returns (ImageDownload);
+    rpc ActivateImageUpdate(ImageDownloadMessage) returns (ImageDownload);
+    rpc RevertImageUpdate(ImageDownloadMessage) returns (ImageDownload);
+
+    // Tests
+    rpc StartOmciTest(OMCITest) returns(TestResponse);
+    rpc SimulateAlarm(SimulateAlarmMessage) returns (common.OperationResp);
+
+    // Events
+    rpc SuppressEvent(EventFilter) returns(google.protobuf.Empty);
+    rpc UnSuppressEvent(EventFilter) returns(google.protobuf.Empty);
+
+    // Get/Set
+    rpc GetExtValue(GetExtValueMessage) returns (common.ReturnValues);
+    rpc SetExtValue(SetExtValueMessage) returns (google.protobuf.Empty);
+    rpc GetSingleValue(extension.SingleGetValueRequest) returns (extension.SingleGetValueResponse);
+    rpc SetSingleValue(extension.SingleSetValueRequest) returns (extension.SingleSetValueResponse);
+}
+
+
+service OnuInterAdapterService {
+    // GetHealthStatus is used by an OnuInterAdapterService client to verify connectivity
+    // to the gRPC server hosting the OnuInterAdapterService service
+    rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus);
+
+    rpc OnuIndication(OnuIndicationMessage) returns (google.protobuf.Empty);
+    rpc OmciIndication(OmciMessage) returns (google.protobuf.Empty);
+    rpc DownloadTechProfile(TechProfileDownloadMessage) returns (google.protobuf.Empty);
+    rpc DeleteGemPort(DeleteGemPortMessage) returns (google.protobuf.Empty);
+    rpc DeleteTCont(DeleteTcontMessage) returns (google.protobuf.Empty);
+}
+
+service OltInterAdapterService {
+    // GetHealthStatus is used by an OltInterAdapterService client to verify connectivity
+    // to the gRPC server hosting the OltInterAdapterService service
+    rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus);
+
+    rpc ProxyOmciRequest(OmciMessage) returns (google.protobuf.Empty);
+    rpc GetTechProfileInstance(TechProfileInstanceRequestMessage) returns (TechProfileDownloadMessage);
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/common.proto b/protos/voltha_protos/common.proto
old mode 100644
new mode 100755
index b1af191..19d81d7
--- a/protos/voltha_protos/common.proto
+++ b/protos/voltha_protos/common.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/common";
+option go_package = "github.com/opencord/voltha-protos/v5/go/common";
 
 package common;
 
diff --git a/protos/voltha_protos/core.proto b/protos/voltha_protos/core.proto
old mode 100644
new mode 100755
index fabad3d..ad8f83a
--- a/protos/voltha_protos/core.proto
+++ b/protos/voltha_protos/core.proto
@@ -1,7 +1,13 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
-option java_package = "org.opencord.voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/core";
+option java_package = "org.opencord.voltha.core";
+
+import "google/protobuf/empty.proto";
+import "voltha_protos/inter_container.proto";
+import "voltha_protos/common.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/health.proto";
 
 package voltha;
 
@@ -26,3 +32,33 @@
     }
     Types transient_state = 1;
 }
+
+service CoreService {
+	//	 in coreProxy interface
+	rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus);
+	rpc RegisterAdapter (AdapterRegistration) returns (google.protobuf.Empty);
+	rpc DeviceUpdate (Device) returns (google.protobuf.Empty);
+	rpc PortCreated (Port) returns (google.protobuf.Empty);
+	rpc PortsStateUpdate (PortStateFilter) returns (google.protobuf.Empty);
+	rpc DeleteAllPorts (common.ID) returns (google.protobuf.Empty);
+	rpc GetDevicePort (PortFilter) returns (Port);
+	rpc ListDevicePorts (common.ID) returns (Ports);
+	rpc DeviceStateUpdate (DeviceStateFilter) returns (google.protobuf.Empty);
+	rpc DevicePMConfigUpdate (PmConfigs) returns (google.protobuf.Empty);
+	rpc ChildDeviceDetected (DeviceDiscovery) returns (Device);
+	rpc ChildDevicesLost (common.ID) returns (google.protobuf.Empty);
+	rpc ChildDevicesDetected (common.ID) returns (google.protobuf.Empty);
+	rpc GetDevice (common.ID) returns (Device);
+	rpc GetChildDevice (ChildDeviceFilter) returns (Device);
+	rpc GetChildDevices (common.ID) returns (Devices);
+	rpc SendPacketIn (PacketIn) returns (google.protobuf.Empty);
+	rpc DeviceReasonUpdate (DeviceReason) returns (google.protobuf.Empty);
+	rpc PortStateUpdate (PortState) returns (google.protobuf.Empty);
+
+	// Additional API found in the Core - unused?
+	rpc ReconcileChildDevices (common.ID) returns (google.protobuf.Empty);
+	rpc GetChildDeviceWithProxyAddress (Device.ProxyAddress) returns (Device);
+	rpc GetPorts (PortFilter) returns (Ports);
+	rpc ChildrenStateUpdate (DeviceStateFilter) returns (google.protobuf.Empty);
+	rpc UpdateImageDownload (ImageDownload) returns (google.protobuf.Empty);
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/device.proto b/protos/voltha_protos/device.proto
old mode 100644
new mode 100755
index 9e65bee..f1ac063
--- a/protos/voltha_protos/device.proto
+++ b/protos/voltha_protos/device.proto
@@ -1,12 +1,13 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 option java_package = "org.opencord.voltha";
 option java_outer_classname = "VolthaDevice";
 
 package voltha;
 
 import "google/protobuf/any.proto";
+
 import "voltha_protos/common.proto";
 import "voltha_protos/meta.proto";
 import "voltha_protos/openflow_13.proto";
@@ -24,6 +25,7 @@
     repeated string vendor_ids = 6;
 
     // Name of the adapter that handles device type
+    // Deprecated and replaced by adapterType
     string adapter = 2;
 
     // Capabilities
@@ -31,6 +33,9 @@
     bool accepts_add_remove_flow_updates = 4;
     bool accepts_direct_logical_flows_update = 7;
 
+    // Type of adapter that can handle this device type
+    string adapter_type = 8;
+
 }
 
 // A plurality of device types
@@ -358,8 +363,12 @@
     string vendor_id = 24 [(access) = READ_ONLY];
 
     // Adapter that takes care of device
+    // Deprecated and replaced by adapter_endpoint
     string adapter = 11 [(access) = READ_ONLY];
 
+    // Indicates how to reach the adapter instance that manages this device
+    string adapter_endpoint = 25;
+
     // Device contact on vlan (if 0, no vlan)
     uint32 vlan = 12;
 
@@ -371,6 +380,7 @@
         string channel_termination = 5; // Channel Termination name
         uint32 onu_id = 6; // onu identifier; optional
         uint32 onu_session_id = 7; // session identifier for the ONU; optional
+        string adapter_endpoint = 8; // endpoint of the adapter that handles the proxy device
     };
 
     // Device contact MAC address (format: "xx:xx:xx:xx:xx:xx")
diff --git a/protos/voltha_protos/events.proto b/protos/voltha_protos/events.proto
old mode 100644
new mode 100755
index 5092bab..e9d36ba
--- a/protos/voltha_protos/events.proto
+++ b/protos/voltha_protos/events.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 option java_package = "org.opencord.voltha";
 
 package voltha;
diff --git a/protos/voltha_protos/ext_config.proto b/protos/voltha_protos/ext_config.proto
old mode 100644
new mode 100755
index bfefd98..dc33120
--- a/protos/voltha_protos/ext_config.proto
+++ b/protos/voltha_protos/ext_config.proto
@@ -13,7 +13,7 @@
 // limitations under the License.
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/ext/config";
+option go_package = "github.com/opencord/voltha-protos/v5/go/ext/config";
 
 package config;
 
diff --git a/protos/voltha_protos/extensions.proto b/protos/voltha_protos/extensions.proto
old mode 100644
new mode 100755
index d8441fb..5331b26
--- a/protos/voltha_protos/extensions.proto
+++ b/protos/voltha_protos/extensions.proto
@@ -14,7 +14,7 @@
 
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/extension";
+option go_package = "github.com/opencord/voltha-protos/v5/go/extension";
 option java_package = "org.opencord.voltha.extension";
 
 package extension;
diff --git a/protos/voltha_protos/health.proto b/protos/voltha_protos/health.proto
old mode 100644
new mode 100755
index 22346ac..8ed3cbc
--- a/protos/voltha_protos/health.proto
+++ b/protos/voltha_protos/health.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 option java_package = "org.opencord.voltha";
 
 package voltha;
diff --git a/protos/voltha_protos/ietf_interfaces.proto b/protos/voltha_protos/ietf_interfaces.proto
old mode 100644
new mode 100755
index efe3f94..89f59b9
--- a/protos/voltha_protos/ietf_interfaces.proto
+++ b/protos/voltha_protos/ietf_interfaces.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/ietf";
+option go_package = "github.com/opencord/voltha-protos/v5/go/ietf";
 option java_package = "org.opencord.voltha";
 
 package ietf;
diff --git a/protos/voltha_protos/inter_container.proto b/protos/voltha_protos/inter_container.proto
old mode 100644
new mode 100755
index 755b92a..6c946af
--- a/protos/voltha_protos/inter_container.proto
+++ b/protos/voltha_protos/inter_container.proto
@@ -1,83 +1,105 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/inter_container";
+option go_package = "github.com/opencord/voltha-protos/v5/go/inter_container";
 option java_package = "org.opencord.voltha";
 
-import public "voltha_protos/common.proto";
-import public "voltha_protos/voltha.proto";
-import "google/protobuf/any.proto";
+import "voltha_protos/common.proto";
+import "voltha_protos/voltha.proto";
 import "voltha_protos/openflow_13.proto";
-import public "voltha_protos/logical_device.proto";
-import "google/protobuf/timestamp.proto";
 import "voltha_protos/tech_profile.proto";
-
+import "voltha_protos/openolt.proto";
+import "voltha_protos/adapter.proto";
+import "voltha_protos/device.proto";
 
 package voltha;
 
-message StrType {
-    string val = 1;
+//
+// Core-Adapter messages
+// ****
+// ****
+// ****
+message AdapterRegistration {
+    Adapter adapter  = 1;
+    DeviceTypes dTypes = 2;
 }
 
-message IntType {
-    int64 val = 1;
+message ChildDeviceFilter {
+    string parent_id = 1;
+    string serial_number = 2;
+    uint32 onu_id = 3;
+    uint32 parent_port_no = 4;
 }
 
-message BoolType {
-    bool val = 1;
+message PortFilter {
+    string device_id = 1;
+    uint32 port = 2;
+    Port.PortType port_type = 3;
 }
 
-message Packet {
-    bytes payload = 1;
+message DeviceDiscovery {
+    string parent_id = 1;
+    uint32 parent_port_no = 2;
+    string child_device_type = 3;
+    uint32 channel_id = 4;
+    string vendor_id = 5;
+    string serial_number = 6;
+    uint32 onu_id = 7;
 }
 
-message ErrorCode {
-    enum codes {
-        UNSUPPORTED_REQUEST = 0;
-        INVALID_PARAMETERS = 1;
-        DEADLINE_EXCEEDED = 2;
-    }
+message DeviceStateFilter {
+    string device_id = 1;
+    string parent_device_id = 2;
+    common.OperStatus.Types oper_status = 3;
+    common.ConnectStatus.Types conn_status = 4;
 }
 
-message Error {
-    ErrorCode.codes code = 1;
+message PortState {
+    string device_id = 1;
+    Port.PortType port_type = 2;
+    uint32 port_no = 3;
+    common.OperStatus.Types oper_status = 4;
+}
+
+message PortStateFilter {
+    string device_id = 1;
+    uint32 port_type_filter = 2;
+    common.OperStatus.Types oper_status = 4;
+}
+
+message PacketIn {
+    string device_id = 1;
+    uint32 port = 2;
+    bytes packet = 3;
+}
+
+message PacketOut {
+    string device_id = 1;
+    uint32 egress_port_no = 2;
+    openflow_13.ofp_packet_out packet = 3;
+}
+
+message DeviceReason {
+    string device_id = 1;
     string reason = 2;
 }
 
-enum MessageType {
-    REQUEST = 0;
-    RESPONSE = 1;
-    DEVICE_DISCOVERED=2;
+message BulkFlows {
+    Device device = 1;
+    openflow_13.Flows flows = 2;
+    openflow_13.FlowGroups groups = 3;
+    voltha.FlowMetadata flow_metadata = 4;
 }
 
-message Header {
-    string id = 1;
-    MessageType type = 2;
-    string from_topic = 3;
-    string to_topic = 4;
-    string key_topic = 5;
-    google.protobuf.Timestamp timestamp = 6;
+message IncrementalFlows {
+    Device device = 1;
+    openflow_13.FlowChanges flows = 2;
+    openflow_13.FlowGroupChanges groups = 3;
+    voltha.FlowMetadata flow_metadata = 4;
 }
 
-message Argument {
-    string key = 1;
-    google.protobuf.Any value = 2;
-}
-
-message InterContainerMessage {
-    Header header = 1;
-    google.protobuf.Any body = 2;
-}
-
-message InterContainerRequestBody {
-    string rpc = 2;
-    repeated Argument args = 3;
-    bool response_required = 4;
-    string reply_to_topic = 5;
-}
-
-message InterContainerResponseBody {
-    bool success = 1;
-    google.protobuf.Any result = 3;
+message PmConfigsInfo {
+    string device_id = 1;
+    PmConfigs pm_configs = 2;
 }
 
 message SwitchCapability {
@@ -85,83 +107,80 @@
     openflow_13.ofp_switch_features switch_features = 2;
 }
 
-message DeviceDiscovered {
-    string id = 1;
-    string parent_id = 2;
-    string device_type = 3;
-    string publisher = 4;
+message ImageDownloadMessage {
+    Device device = 1;
+    ImageDownload image = 2;
 }
 
-message InterAdapterMessageType {
-    enum Types {
-        FLOW_REQUEST = 0;
-        FLOW_RESPONSE = 1;
-        OMCI_REQUEST = 2;
-        OMCI_RESPONSE = 3;
-        METRICS_REQUEST = 4;
-        METRICS_RESPONSE = 5;
-        ONU_IND_REQUEST = 6;
-        ONU_IND_RESPONSE = 7;
-        TECH_PROFILE_DOWNLOAD_REQUEST = 8;
-        DELETE_GEM_PORT_REQUEST = 9;
-        DELETE_TCONT_REQUEST = 10;
-    }
+message OMCITest {
+    Device device = 1;
+    OmciTestRequest request = 2;
 }
 
-message InterAdapterHeader {
-    string id = 1;
-    InterAdapterMessageType.Types type = 2;
-    string from_topic = 3;
-    string to_topic = 4;
-    string to_device_id = 5;
-    string proxy_device_id = 6;
-    google.protobuf.Timestamp timestamp = 7;
+message SimulateAlarmMessage {
+    Device device = 1;
+    SimulateAlarmRequest request = 2;
 }
 
-message InterAdapterOmciMessage {
-    bytes message = 1; // OMCI_REQUEST or OMCI_RESPONSE
+message GetExtValueMessage {
+    Device parent_device = 1;
+    Device child_device = 2;
+    common.ValueType.Type value_type=3;
+}
+
+message SetExtValueMessage {
+    Device device = 1;
+    ValueSet value=3;
+}
+
+//
+// Inter-Adapter messages
+// ****
+// ****
+// ****
+
+message OmciMessage {
+    bytes message = 1;
     common.ConnectStatus.Types connect_status = 2;
     voltha.Device.ProxyAddress proxy_address = 3;
+    string parent_device_id = 4;
+    string child_device_id = 5;
 }
 
-message InterAdapterTechProfileInstanceRequestMessage {
-    string tp_instance_path = 1; // technology profile instance path
-    string parent_device_id = 2;
-    uint32 parent_pon_port = 3;
-    uint32 onu_id = 4;
-    uint32 uni_id = 5;
-}
-
-message InterAdapterTechProfileDownloadMessage {
-    uint32 uni_id = 1;
-    string tp_instance_path = 2;
+message TechProfileDownloadMessage {
+    string device_id = 1;
+    uint32 uni_id = 2;
+    string tp_instance_path = 3;
     oneof tech_tp_instance {
-        tech_profile.TechProfileInstance tp_instance = 3; // relevant for GPON, XGPON and XGS-PON technologies
-        tech_profile.EponTechProfileInstance epon_tp_instance = 4; // relevant for EPON technology
+        tech_profile.TechProfileInstance tp_instance = 4; // relevant for GPON, XGPON and XGS-PON technologies
+        tech_profile.EponTechProfileInstance epon_tp_instance = 5; // relevant for EPON technology
     }
 }
 
-message InterAdapterDeleteGemPortMessage {
-    uint32 uni_id = 1;
-    string tp_instance_path = 2;
-    uint32 gem_port_id = 3;
+message DeleteGemPortMessage {
+    string device_id = 1;
+    uint32 uni_id = 2;
+    string tp_instance_path = 3;
+    uint32 gem_port_id = 4;
 }
 
-message InterAdapterDeleteTcontMessage {
-    uint32 uni_id = 1;
-    string tp_instance_path = 2;
-    uint32 alloc_id = 3;
+message DeleteTcontMessage {
+    string device_id = 1;
+    uint32 uni_id = 2;
+    string tp_instance_path = 3;
+    uint32 alloc_id = 4;
 }
 
-message InterAdapterResponseBody {
-    bool status = 1;
-    oneof payload {
-        google.protobuf.Any body = 2;
-        InterAdapterOmciMessage omci = 3; // OMCI_REQUEST or OMCI_RESPONSE
-    }
+message OnuIndicationMessage {
+    string device_id = 1;
+    openolt.OnuIndication onu_indication = 2;
 }
 
-message InterAdapterMessage {
-    InterAdapterHeader header = 1;
-    google.protobuf.Any body = 2;
-}
+message TechProfileInstanceRequestMessage {
+    string device_id = 1;
+    string tp_instance_path = 2; // technology profile instance path
+    string parent_device_id = 3;
+    uint32 parent_pon_port = 4;
+    uint32 onu_id = 5;
+    uint32 uni_id = 6;
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/logical_device.proto b/protos/voltha_protos/logical_device.proto
old mode 100644
new mode 100755
index c0a6105..9931251
--- a/protos/voltha_protos/logical_device.proto
+++ b/protos/voltha_protos/logical_device.proto
@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 option java_package = "org.opencord.voltha";
 option java_outer_classname = "OFLogicalDevice";
 
diff --git a/protos/voltha_protos/meta.proto b/protos/voltha_protos/meta.proto
old mode 100644
new mode 100755
index 2255e38..4dd6d5d
--- a/protos/voltha_protos/meta.proto
+++ b/protos/voltha_protos/meta.proto
@@ -17,7 +17,7 @@
 
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/common";
+option go_package = "github.com/opencord/voltha-protos/v5/go/common";
 option java_package = "org.opencord.voltha.common";
 
 package voltha;
diff --git a/protos/voltha_protos/omci_alarm_db.proto b/protos/voltha_protos/omci_alarm_db.proto
old mode 100644
new mode 100755
index a1306b3..2fd6d57
--- a/protos/voltha_protos/omci_alarm_db.proto
+++ b/protos/voltha_protos/omci_alarm_db.proto
@@ -15,7 +15,7 @@
 //
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/omci";
+option go_package = "github.com/opencord/voltha-protos/v5/go/omci";
 option java_package = "org.opencord.voltha.omci";
 
 package omci;
diff --git a/protos/voltha_protos/omci_mib_db.proto b/protos/voltha_protos/omci_mib_db.proto
old mode 100644
new mode 100755
index b742db3..1813845
--- a/protos/voltha_protos/omci_mib_db.proto
+++ b/protos/voltha_protos/omci_mib_db.proto
@@ -15,7 +15,7 @@
 //
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/omci";
+option go_package = "github.com/opencord/voltha-protos/v5/go/omci";
 option java_package = "org.opencord.voltha.omci";
 
 package omci;
diff --git a/protos/voltha_protos/openflow_13.proto b/protos/voltha_protos/openflow_13.proto
old mode 100644
new mode 100755
index 2995241..3a6a315
--- a/protos/voltha_protos/openflow_13.proto
+++ b/protos/voltha_protos/openflow_13.proto
@@ -57,14 +57,13 @@
  */
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/openflow_13";
+option go_package = "github.com/opencord/voltha-protos/v5/go/openflow_13";
 option java_package = "org.opencord.voltha.openflow13";
 
 package openflow_13;
 
 import "google/api/annotations.proto";
 
-
 /* Version number:
  * OpenFlow versions released: 0x01 = 1.0 ; 0x02 = 1.1 ; 0x03 = 1.2
  *     0x04 = 1.3
@@ -2309,4 +2308,4 @@
         ofp_port_status port_status = 2;
         ofp_error_msg error = 3;
     }
-}
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
old mode 100644
new mode 100755
index df94fcc..b68727a
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -14,7 +14,7 @@
 
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/openolt";
+option go_package = "github.com/opencord/voltha-protos/v5/go/openolt";
 option java_package = "org.opencord.voltha.openolt";
 option java_outer_classname = "VolthaOpenOLT";
 
diff --git a/protos/voltha_protos/ponsim.proto b/protos/voltha_protos/ponsim.proto
deleted file mode 100644
index ebfefc3..0000000
--- a/protos/voltha_protos/ponsim.proto
+++ /dev/null
@@ -1,68 +0,0 @@
-syntax = "proto3";
-
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
-option java_package = "org.opencord.voltha";
-
-package voltha;
-
-import "google/protobuf/empty.proto";
-import "voltha_protos/openflow_13.proto";
-
-
-message PonSimOnuDeviceInfo {
-    int32 uni_port = 1;
-    string serial_number = 2;
-}
-
-message PonSimDeviceInfo {
-    int32 nni_port = 1;
-    repeated PonSimOnuDeviceInfo onus = 2;
-}
-
-message FlowTable {
-    int32 port = 1;  // Used to address right device
-    repeated openflow_13.ofp_flow_stats flows = 2;
-}
-
-message PonSimFrame {
-    string id = 1;
-    bytes payload = 2;
-    int32 out_port = 3;
-}
-
-message PonSimPacketCounter {
-    string name = 1;
-    int64 value = 2;
-}
-
-message PonSimPortMetrics {
-    string port_name = 1;
-    repeated PonSimPacketCounter packets = 2;
-}
-
-message PonSimMetrics {
-    string device = 1;
-    repeated PonSimPortMetrics metrics = 2;
-}
-
-message PonSimMetricsRequest {
-    int32 port = 1;
-}
-
-service PonSim {
-    rpc SendFrame(PonSimFrame)
-        returns (google.protobuf.Empty) {}
-
-    rpc ReceiveFrames(google.protobuf.Empty)
-        returns (stream PonSimFrame) {}
-
-    rpc GetDeviceInfo(google.protobuf.Empty)
-        returns(PonSimDeviceInfo) {}
-
-    rpc UpdateFlowTable(FlowTable)
-        returns(google.protobuf.Empty) {}
-
-    rpc GetStats(google.protobuf.Empty)
-        returns(PonSimMetrics) {}
-
-}
diff --git a/protos/voltha_protos/tech_profile.proto b/protos/voltha_protos/tech_profile.proto
old mode 100644
new mode 100755
index dbb9fdb..252dbd3
--- a/protos/voltha_protos/tech_profile.proto
+++ b/protos/voltha_protos/tech_profile.proto
@@ -14,7 +14,7 @@
 
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/tech_profile";
+option go_package = "github.com/opencord/voltha-protos/v5/go/tech_profile";
 option java_package = "org.opencord.voltha.tech_profile";
 
 package tech_profile;
diff --git a/protos/voltha_protos/voltha.proto b/protos/voltha_protos/voltha.proto
old mode 100644
new mode 100755
index 56bcf18..1d4dc78
--- a/protos/voltha_protos/voltha.proto
+++ b/protos/voltha_protos/voltha.proto
@@ -6,7 +6,7 @@
 
 syntax = "proto3";
 
-option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
 
 package voltha;
 
