VOL-1460 Implemented a new approach to protos where go stubs are not committed to the repo.
There are new instructions for clients consuming these protos in Go.
Also removed vendor directory and dep, as it isn't really needed at this point.

Implemented a test to check if protos match up with go files. This is run with make test.
This works by generating them and checking this created any more untracked or unstaged changes.
It requires you to commit your changes locally to pass. This process to should be run by
jenkins to validate a commit. A consistent version of protoc must be used, which the Makefile checks for.

Change-Id: I8de28c515a9535e33909cbbd158fa046f96f3b1f
diff --git a/go/voltha/device.pb.go b/go/voltha/device.pb.go
index 413ae22..8934952 100644
--- a/go/voltha/device.pb.go
+++ b/go/voltha/device.pb.go
@@ -1,14 +1,16 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // source: voltha_protos/device.proto
 
-package voltha // import "github.com/opencord/voltha-protos/go/voltha"
+package voltha
 
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import any "github.com/golang/protobuf/ptypes/any"
-import common "github.com/opencord/voltha-protos/go/common"
-import openflow_13 "github.com/opencord/voltha-protos/go/openflow_13"
+import (
+	fmt "fmt"
+	proto "github.com/golang/protobuf/proto"
+	any "github.com/golang/protobuf/ptypes/any"
+	common "github.com/opencord/voltha-protos/go/common"
+	openflow_13 "github.com/opencord/voltha-protos/go/openflow_13"
+	math "math"
+)
 
 // Reference imports to suppress errors if they are not otherwise used.
 var _ = proto.Marshal
@@ -19,7 +21,7 @@
 // is compatible with the proto package it is being compiled against.
 // A compilation error at this line likely means your copy of the
 // proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
 type PmConfig_PmType int32
 
@@ -36,6 +38,7 @@
 	2: "STATE",
 	3: "CONTEXT",
 }
+
 var PmConfig_PmType_value = map[string]int32{
 	"COUNTER": 0,
 	"GAUGE":   1,
@@ -46,8 +49,9 @@
 func (x PmConfig_PmType) String() string {
 	return proto.EnumName(PmConfig_PmType_name, int32(x))
 }
+
 func (PmConfig_PmType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{2, 0}
+	return fileDescriptor_200940f73d155856, []int{2, 0}
 }
 
 type ImageDownload_ImageDownloadState int32
@@ -71,6 +75,7 @@
 	5: "DOWNLOAD_UNSUPPORTED",
 	6: "DOWNLOAD_CANCELLED",
 }
+
 var ImageDownload_ImageDownloadState_value = map[string]int32{
 	"DOWNLOAD_UNKNOWN":     0,
 	"DOWNLOAD_SUCCEEDED":   1,
@@ -84,8 +89,9 @@
 func (x ImageDownload_ImageDownloadState) String() string {
 	return proto.EnumName(ImageDownload_ImageDownloadState_name, int32(x))
 }
+
 func (ImageDownload_ImageDownloadState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{7, 0}
+	return fileDescriptor_200940f73d155856, []int{7, 0}
 }
 
 type ImageDownload_ImageDownloadFailureReason int32
@@ -107,6 +113,7 @@
 	4: "UNKNOWN_ERROR",
 	5: "CANCELLED",
 }
+
 var ImageDownload_ImageDownloadFailureReason_value = map[string]int32{
 	"NO_ERROR":           0,
 	"INVALID_URL":        1,
@@ -119,8 +126,9 @@
 func (x ImageDownload_ImageDownloadFailureReason) String() string {
 	return proto.EnumName(ImageDownload_ImageDownloadFailureReason_name, int32(x))
 }
+
 func (ImageDownload_ImageDownloadFailureReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{7, 1}
+	return fileDescriptor_200940f73d155856, []int{7, 1}
 }
 
 type ImageDownload_ImageActivateState int32
@@ -142,6 +150,7 @@
 	4: "IMAGE_REVERTING",
 	5: "IMAGE_REVERTED",
 }
+
 var ImageDownload_ImageActivateState_value = map[string]int32{
 	"IMAGE_UNKNOWN":    0,
 	"IMAGE_INACTIVE":   1,
@@ -154,8 +163,9 @@
 func (x ImageDownload_ImageActivateState) String() string {
 	return proto.EnumName(ImageDownload_ImageActivateState_name, int32(x))
 }
+
 func (ImageDownload_ImageActivateState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{7, 2}
+	return fileDescriptor_200940f73d155856, []int{7, 2}
 }
 
 type Port_PortType int32
@@ -179,6 +189,7 @@
 	5: "VENET_OLT",
 	6: "VENET_ONU",
 }
+
 var Port_PortType_value = map[string]int32{
 	"UNKNOWN":      0,
 	"ETHERNET_NNI": 1,
@@ -192,8 +203,9 @@
 func (x Port_PortType) String() string {
 	return proto.EnumName(Port_PortType_name, int32(x))
 }
+
 func (Port_PortType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{9, 0}
+	return fileDescriptor_200940f73d155856, []int{9, 0}
 }
 
 type SimulateAlarmRequest_OperationType int32
@@ -207,6 +219,7 @@
 	0: "RAISE",
 	1: "CLEAR",
 }
+
 var SimulateAlarmRequest_OperationType_value = map[string]int32{
 	"RAISE": 0,
 	"CLEAR": 1,
@@ -215,8 +228,9 @@
 func (x SimulateAlarmRequest_OperationType) String() string {
 	return proto.EnumName(SimulateAlarmRequest_OperationType_name, int32(x))
 }
+
 func (SimulateAlarmRequest_OperationType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{13, 0}
+	return fileDescriptor_200940f73d155856, []int{13, 0}
 }
 
 // A Device Type
@@ -242,16 +256,17 @@
 func (m *DeviceType) String() string { return proto.CompactTextString(m) }
 func (*DeviceType) ProtoMessage()    {}
 func (*DeviceType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{0}
+	return fileDescriptor_200940f73d155856, []int{0}
 }
+
 func (m *DeviceType) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeviceType.Unmarshal(m, b)
 }
 func (m *DeviceType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_DeviceType.Marshal(b, m, deterministic)
 }
-func (dst *DeviceType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceType.Merge(dst, src)
+func (m *DeviceType) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeviceType.Merge(m, src)
 }
 func (m *DeviceType) XXX_Size() int {
 	return xxx_messageInfo_DeviceType.Size(m)
@@ -323,16 +338,17 @@
 func (m *DeviceTypes) String() string { return proto.CompactTextString(m) }
 func (*DeviceTypes) ProtoMessage()    {}
 func (*DeviceTypes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{1}
+	return fileDescriptor_200940f73d155856, []int{1}
 }
+
 func (m *DeviceTypes) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeviceTypes.Unmarshal(m, b)
 }
 func (m *DeviceTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_DeviceTypes.Marshal(b, m, deterministic)
 }
-func (dst *DeviceTypes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceTypes.Merge(dst, src)
+func (m *DeviceTypes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeviceTypes.Merge(m, src)
 }
 func (m *DeviceTypes) XXX_Size() int {
 	return xxx_messageInfo_DeviceTypes.Size(m)
@@ -364,16 +380,17 @@
 func (m *PmConfig) String() string { return proto.CompactTextString(m) }
 func (*PmConfig) ProtoMessage()    {}
 func (*PmConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{2}
+	return fileDescriptor_200940f73d155856, []int{2}
 }
+
 func (m *PmConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_PmConfig.Unmarshal(m, b)
 }
 func (m *PmConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_PmConfig.Marshal(b, m, deterministic)
 }
-func (dst *PmConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmConfig.Merge(dst, src)
+func (m *PmConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PmConfig.Merge(m, src)
 }
 func (m *PmConfig) XXX_Size() int {
 	return xxx_messageInfo_PmConfig.Size(m)
@@ -426,16 +443,17 @@
 func (m *PmGroupConfig) String() string { return proto.CompactTextString(m) }
 func (*PmGroupConfig) ProtoMessage()    {}
 func (*PmGroupConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{3}
+	return fileDescriptor_200940f73d155856, []int{3}
 }
+
 func (m *PmGroupConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_PmGroupConfig.Unmarshal(m, b)
 }
 func (m *PmGroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_PmGroupConfig.Marshal(b, m, deterministic)
 }
-func (dst *PmGroupConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmGroupConfig.Merge(dst, src)
+func (m *PmGroupConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PmGroupConfig.Merge(m, src)
 }
 func (m *PmGroupConfig) XXX_Size() int {
 	return xxx_messageInfo_PmGroupConfig.Size(m)
@@ -492,16 +510,17 @@
 func (m *PmConfigs) String() string { return proto.CompactTextString(m) }
 func (*PmConfigs) ProtoMessage()    {}
 func (*PmConfigs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{4}
+	return fileDescriptor_200940f73d155856, []int{4}
 }
+
 func (m *PmConfigs) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_PmConfigs.Unmarshal(m, b)
 }
 func (m *PmConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_PmConfigs.Marshal(b, m, deterministic)
 }
-func (dst *PmConfigs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmConfigs.Merge(dst, src)
+func (m *PmConfigs) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PmConfigs.Merge(m, src)
 }
 func (m *PmConfigs) XXX_Size() int {
 	return xxx_messageInfo_PmConfigs.Size(m)
@@ -583,16 +602,17 @@
 func (m *Image) String() string { return proto.CompactTextString(m) }
 func (*Image) ProtoMessage()    {}
 func (*Image) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{5}
+	return fileDescriptor_200940f73d155856, []int{5}
 }
+
 func (m *Image) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Image.Unmarshal(m, b)
 }
 func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Image.Marshal(b, m, deterministic)
 }
-func (dst *Image) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Image.Merge(dst, src)
+func (m *Image) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Image.Merge(m, src)
 }
 func (m *Image) XXX_Size() int {
 	return xxx_messageInfo_Image.Size(m)
@@ -664,16 +684,17 @@
 func (m *Images) String() string { return proto.CompactTextString(m) }
 func (*Images) ProtoMessage()    {}
 func (*Images) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{6}
+	return fileDescriptor_200940f73d155856, []int{6}
 }
+
 func (m *Images) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Images.Unmarshal(m, b)
 }
 func (m *Images) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Images.Marshal(b, m, deterministic)
 }
-func (dst *Images) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Images.Merge(dst, src)
+func (m *Images) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Images.Merge(m, src)
 }
 func (m *Images) XXX_Size() int {
 	return xxx_messageInfo_Images.Size(m)
@@ -728,16 +749,17 @@
 func (m *ImageDownload) String() string { return proto.CompactTextString(m) }
 func (*ImageDownload) ProtoMessage()    {}
 func (*ImageDownload) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{7}
+	return fileDescriptor_200940f73d155856, []int{7}
 }
+
 func (m *ImageDownload) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ImageDownload.Unmarshal(m, b)
 }
 func (m *ImageDownload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_ImageDownload.Marshal(b, m, deterministic)
 }
-func (dst *ImageDownload) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageDownload.Merge(dst, src)
+func (m *ImageDownload) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ImageDownload.Merge(m, src)
 }
 func (m *ImageDownload) XXX_Size() int {
 	return xxx_messageInfo_ImageDownload.Size(m)
@@ -850,16 +872,17 @@
 func (m *ImageDownloads) String() string { return proto.CompactTextString(m) }
 func (*ImageDownloads) ProtoMessage()    {}
 func (*ImageDownloads) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{8}
+	return fileDescriptor_200940f73d155856, []int{8}
 }
+
 func (m *ImageDownloads) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ImageDownloads.Unmarshal(m, b)
 }
 func (m *ImageDownloads) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_ImageDownloads.Marshal(b, m, deterministic)
 }
-func (dst *ImageDownloads) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageDownloads.Merge(dst, src)
+func (m *ImageDownloads) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ImageDownloads.Merge(m, src)
 }
 func (m *ImageDownloads) XXX_Size() int {
 	return xxx_messageInfo_ImageDownloads.Size(m)
@@ -900,16 +923,17 @@
 func (m *Port) String() string { return proto.CompactTextString(m) }
 func (*Port) ProtoMessage()    {}
 func (*Port) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{9}
+	return fileDescriptor_200940f73d155856, []int{9}
 }
+
 func (m *Port) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Port.Unmarshal(m, b)
 }
 func (m *Port) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Port.Marshal(b, m, deterministic)
 }
-func (dst *Port) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Port.Merge(dst, src)
+func (m *Port) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Port.Merge(m, src)
 }
 func (m *Port) XXX_Size() int {
 	return xxx_messageInfo_Port.Size(m)
@@ -1023,16 +1047,17 @@
 func (m *Port_PeerPort) String() string { return proto.CompactTextString(m) }
 func (*Port_PeerPort) ProtoMessage()    {}
 func (*Port_PeerPort) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{9, 0}
+	return fileDescriptor_200940f73d155856, []int{9, 0}
 }
+
 func (m *Port_PeerPort) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Port_PeerPort.Unmarshal(m, b)
 }
 func (m *Port_PeerPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Port_PeerPort.Marshal(b, m, deterministic)
 }
-func (dst *Port_PeerPort) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Port_PeerPort.Merge(dst, src)
+func (m *Port_PeerPort) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Port_PeerPort.Merge(m, src)
 }
 func (m *Port_PeerPort) XXX_Size() int {
 	return xxx_messageInfo_Port_PeerPort.Size(m)
@@ -1068,16 +1093,17 @@
 func (m *Ports) String() string { return proto.CompactTextString(m) }
 func (*Ports) ProtoMessage()    {}
 func (*Ports) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{10}
+	return fileDescriptor_200940f73d155856, []int{10}
 }
+
 func (m *Ports) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Ports.Unmarshal(m, b)
 }
 func (m *Ports) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Ports.Marshal(b, m, deterministic)
 }
-func (dst *Ports) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Ports.Merge(dst, src)
+func (m *Ports) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Ports.Merge(m, src)
 }
 func (m *Ports) XXX_Size() int {
 	return xxx_messageInfo_Ports.Size(m)
@@ -1152,16 +1178,17 @@
 func (m *Device) String() string { return proto.CompactTextString(m) }
 func (*Device) ProtoMessage()    {}
 func (*Device) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{11}
+	return fileDescriptor_200940f73d155856, []int{11}
 }
+
 func (m *Device) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Device.Unmarshal(m, b)
 }
 func (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Device.Marshal(b, m, deterministic)
 }
-func (dst *Device) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Device.Merge(dst, src)
+func (m *Device) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Device.Merge(m, src)
 }
 func (m *Device) XXX_Size() int {
 	return xxx_messageInfo_Device.Size(m)
@@ -1411,87 +1438,15 @@
 	return nil
 }
 
-// XXX_OneofFuncs is for the internal use of the proto package.
-func (*Device) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
-	return _Device_OneofMarshaler, _Device_OneofUnmarshaler, _Device_OneofSizer, []interface{}{
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Device) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
 		(*Device_Ipv4Address)(nil),
 		(*Device_Ipv6Address)(nil),
 		(*Device_HostAndPort)(nil),
 	}
 }
 
-func _Device_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
-	m := msg.(*Device)
-	// address
-	switch x := m.Address.(type) {
-	case *Device_Ipv4Address:
-		b.EncodeVarint(14<<3 | proto.WireBytes)
-		b.EncodeStringBytes(x.Ipv4Address)
-	case *Device_Ipv6Address:
-		b.EncodeVarint(15<<3 | proto.WireBytes)
-		b.EncodeStringBytes(x.Ipv6Address)
-	case *Device_HostAndPort:
-		b.EncodeVarint(21<<3 | proto.WireBytes)
-		b.EncodeStringBytes(x.HostAndPort)
-	case nil:
-	default:
-		return fmt.Errorf("Device.Address has unexpected type %T", x)
-	}
-	return nil
-}
-
-func _Device_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
-	m := msg.(*Device)
-	switch tag {
-	case 14: // address.ipv4_address
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		x, err := b.DecodeStringBytes()
-		m.Address = &Device_Ipv4Address{x}
-		return true, err
-	case 15: // address.ipv6_address
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		x, err := b.DecodeStringBytes()
-		m.Address = &Device_Ipv6Address{x}
-		return true, err
-	case 21: // address.host_and_port
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		x, err := b.DecodeStringBytes()
-		m.Address = &Device_HostAndPort{x}
-		return true, err
-	default:
-		return false, nil
-	}
-}
-
-func _Device_OneofSizer(msg proto.Message) (n int) {
-	m := msg.(*Device)
-	// address
-	switch x := m.Address.(type) {
-	case *Device_Ipv4Address:
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(len(x.Ipv4Address)))
-		n += len(x.Ipv4Address)
-	case *Device_Ipv6Address:
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(len(x.Ipv6Address)))
-		n += len(x.Ipv6Address)
-	case *Device_HostAndPort:
-		n += 2 // tag and wire
-		n += proto.SizeVarint(uint64(len(x.HostAndPort)))
-		n += len(x.HostAndPort)
-	case nil:
-	default:
-		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
-	}
-	return n
-}
-
 type Device_ProxyAddress struct {
 	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
 	DeviceType           string   `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
@@ -1509,16 +1464,17 @@
 func (m *Device_ProxyAddress) String() string { return proto.CompactTextString(m) }
 func (*Device_ProxyAddress) ProtoMessage()    {}
 func (*Device_ProxyAddress) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{11, 0}
+	return fileDescriptor_200940f73d155856, []int{11, 0}
 }
+
 func (m *Device_ProxyAddress) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Device_ProxyAddress.Unmarshal(m, b)
 }
 func (m *Device_ProxyAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Device_ProxyAddress.Marshal(b, m, deterministic)
 }
-func (dst *Device_ProxyAddress) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Device_ProxyAddress.Merge(dst, src)
+func (m *Device_ProxyAddress) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Device_ProxyAddress.Merge(m, src)
 }
 func (m *Device_ProxyAddress) XXX_Size() int {
 	return xxx_messageInfo_Device_ProxyAddress.Size(m)
@@ -1589,16 +1545,17 @@
 func (m *Devices) String() string { return proto.CompactTextString(m) }
 func (*Devices) ProtoMessage()    {}
 func (*Devices) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{12}
+	return fileDescriptor_200940f73d155856, []int{12}
 }
+
 func (m *Devices) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Devices.Unmarshal(m, b)
 }
 func (m *Devices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_Devices.Marshal(b, m, deterministic)
 }
-func (dst *Devices) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Devices.Merge(dst, src)
+func (m *Devices) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Devices.Merge(m, src)
 }
 func (m *Devices) XXX_Size() int {
 	return xxx_messageInfo_Devices.Size(m)
@@ -1637,16 +1594,17 @@
 func (m *SimulateAlarmRequest) String() string { return proto.CompactTextString(m) }
 func (*SimulateAlarmRequest) ProtoMessage()    {}
 func (*SimulateAlarmRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_device_8624dad2b773c06a, []int{13}
+	return fileDescriptor_200940f73d155856, []int{13}
 }
+
 func (m *SimulateAlarmRequest) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SimulateAlarmRequest.Unmarshal(m, b)
 }
 func (m *SimulateAlarmRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	return xxx_messageInfo_SimulateAlarmRequest.Marshal(b, m, deterministic)
 }
-func (dst *SimulateAlarmRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SimulateAlarmRequest.Merge(dst, src)
+func (m *SimulateAlarmRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SimulateAlarmRequest.Merge(m, src)
 }
 func (m *SimulateAlarmRequest) XXX_Size() int {
 	return xxx_messageInfo_SimulateAlarmRequest.Size(m)
@@ -1728,6 +1686,12 @@
 }
 
 func init() {
+	proto.RegisterEnum("voltha.PmConfig_PmType", PmConfig_PmType_name, PmConfig_PmType_value)
+	proto.RegisterEnum("voltha.ImageDownload_ImageDownloadState", ImageDownload_ImageDownloadState_name, ImageDownload_ImageDownloadState_value)
+	proto.RegisterEnum("voltha.ImageDownload_ImageDownloadFailureReason", ImageDownload_ImageDownloadFailureReason_name, ImageDownload_ImageDownloadFailureReason_value)
+	proto.RegisterEnum("voltha.ImageDownload_ImageActivateState", ImageDownload_ImageActivateState_name, ImageDownload_ImageActivateState_value)
+	proto.RegisterEnum("voltha.Port_PortType", Port_PortType_name, Port_PortType_value)
+	proto.RegisterEnum("voltha.SimulateAlarmRequest_OperationType", SimulateAlarmRequest_OperationType_name, SimulateAlarmRequest_OperationType_value)
 	proto.RegisterType((*DeviceType)(nil), "voltha.DeviceType")
 	proto.RegisterType((*DeviceTypes)(nil), "voltha.DeviceTypes")
 	proto.RegisterType((*PmConfig)(nil), "voltha.PmConfig")
@@ -1744,17 +1708,11 @@
 	proto.RegisterType((*Device_ProxyAddress)(nil), "voltha.Device.ProxyAddress")
 	proto.RegisterType((*Devices)(nil), "voltha.Devices")
 	proto.RegisterType((*SimulateAlarmRequest)(nil), "voltha.SimulateAlarmRequest")
-	proto.RegisterEnum("voltha.PmConfig_PmType", PmConfig_PmType_name, PmConfig_PmType_value)
-	proto.RegisterEnum("voltha.ImageDownload_ImageDownloadState", ImageDownload_ImageDownloadState_name, ImageDownload_ImageDownloadState_value)
-	proto.RegisterEnum("voltha.ImageDownload_ImageDownloadFailureReason", ImageDownload_ImageDownloadFailureReason_name, ImageDownload_ImageDownloadFailureReason_value)
-	proto.RegisterEnum("voltha.ImageDownload_ImageActivateState", ImageDownload_ImageActivateState_name, ImageDownload_ImageActivateState_value)
-	proto.RegisterEnum("voltha.Port_PortType", Port_PortType_name, Port_PortType_value)
-	proto.RegisterEnum("voltha.SimulateAlarmRequest_OperationType", SimulateAlarmRequest_OperationType_name, SimulateAlarmRequest_OperationType_value)
 }
 
-func init() { proto.RegisterFile("voltha_protos/device.proto", fileDescriptor_device_8624dad2b773c06a) }
+func init() { proto.RegisterFile("voltha_protos/device.proto", fileDescriptor_200940f73d155856) }
 
-var fileDescriptor_device_8624dad2b773c06a = []byte{
+var fileDescriptor_200940f73d155856 = []byte{
 	// 2378 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4d, 0x6f, 0xdb, 0xc8,
 	0xf9, 0x8f, 0x64, 0x93, 0x12, 0x1f, 0xbd, 0x98, 0x99, 0x38, 0x09, 0x63, 0xff, 0x0d, 0xe7, 0xaf,