diff --git a/protos/google/api/annotations.proto b/protos/google/api/annotations.proto
old mode 100644
new mode 100755
diff --git a/protos/google/api/http.proto b/protos/google/api/http.proto
old mode 100644
new mode 100755
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;
 
