[VOL-4371] Voltha protos cleanup
Details can be found at:
https://docs.google.com/document/d/1UzfuiPzxYYTULyERk8nKfgzW9QAnwEdtfw_J4UoFyYo/edit
Change-Id: Iad2efddf306234e282af5d518fd435a6b50b1c41
diff --git a/protos/voltha_protos/adapter.proto b/protos/voltha_protos/adapter.proto
index 3b13266..cb4b9f9 100755
--- a/protos/voltha_protos/adapter.proto
+++ b/protos/voltha_protos/adapter.proto
@@ -1,13 +1,11 @@
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
-option java_package = "org.opencord.voltha";
+option java_package = "org.opencord.voltha.adapter";
option java_outer_classname = "VolthaAdapter";
-package voltha;
+package adapter;
-
-import "voltha_protos/meta.proto";
import "google/protobuf/any.proto";
message AdapterConfig {
@@ -22,15 +20,15 @@
// the adapter ID has to be unique,
// it will be generated as Type + CurrentReplica
- string id = 1 [(access) = READ_ONLY];
- string vendor = 2 [(access) = READ_ONLY];
- string version = 3 [(access) = READ_ONLY];
+ string id = 1;
+ string vendor = 2;
+ string version = 3;
// Adapter configuration
AdapterConfig config = 16;
// Custom descriptors and custom configuration
- google.protobuf.Any additional_description = 64 [(access) = READ_ONLY];
+ google.protobuf.Any additional_description = 64;
repeated string logical_device_ids = 4; // Logical devices "owned"
diff --git a/protos/voltha_protos/adapter_service.proto b/protos/voltha_protos/adapter_service.proto
new file mode 100755
index 0000000..5ff553e
--- /dev/null
+++ b/protos/voltha_protos/adapter_service.proto
@@ -0,0 +1,88 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/adapter_service";
+option java_package = "org.opencord.voltha.adapter_service";
+option java_outer_classname = "VolthaAdapterService";
+
+package adapter_service;
+
+import "google/protobuf/empty.proto";
+import "voltha_protos/common.proto";
+import "voltha_protos/core_adapter.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/extensions.proto";
+import "voltha_protos/health.proto";
+import "voltha_protos/voltha.proto";
+import "voltha_protos/omci_test.proto";
+import "voltha_protos/events.proto";
+
+// AdapterService is a gRPC service to serve requests from Voltha RW_Core.
+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 (health.HealthStatus);
+
+ // Device
+ rpc AdoptDevice(device.Device) returns(google.protobuf.Empty);
+ rpc ReconcileDevice(device.Device) returns(google.protobuf.Empty);
+ rpc DeleteDevice(device.Device) returns(google.protobuf.Empty);
+ rpc DisableDevice(device.Device) returns(google.protobuf.Empty);
+ rpc ReEnableDevice(device.Device) returns(google.protobuf.Empty);
+ rpc RebootDevice(device.Device) returns(google.protobuf.Empty);
+ rpc SelfTestDevice(device.Device) returns(google.protobuf.Empty);
+ rpc GetOfpDeviceInfo(device.Device) returns(core_adapter.SwitchCapability);
+ rpc ChildDeviceLost(device.Device) returns(google.protobuf.Empty);
+
+ // Ports
+ rpc EnablePort(device.Port) returns(google.protobuf.Empty);
+ rpc DisablePort(device.Port) returns(google.protobuf.Empty);
+
+ // Flows
+ rpc UpdateFlowsBulk(core_adapter.BulkFlows) returns(google.protobuf.Empty);
+ rpc UpdateFlowsIncrementally(core_adapter.IncrementalFlows) returns(google.protobuf.Empty);
+
+ //Packets
+ rpc SendPacketOut(core_adapter.PacketOut) returns(google.protobuf.Empty);
+
+ // PM
+ rpc UpdatePmConfig(core_adapter.PmConfigsInfo) returns(google.protobuf.Empty);
+
+ // Image
+ rpc DownloadOnuImage(device.DeviceImageDownloadRequest) returns (device.DeviceImageResponse);
+ rpc GetOnuImageStatus(device.DeviceImageRequest) returns (device.DeviceImageResponse);
+ rpc AbortOnuImageUpgrade(device.DeviceImageRequest) returns (device.DeviceImageResponse);
+ rpc GetOnuImages(common.ID) returns (device.OnuImages);
+ rpc ActivateOnuImage(device.DeviceImageRequest) returns (device.DeviceImageResponse);
+ rpc CommitOnuImage(device.DeviceImageRequest) returns (device.DeviceImageResponse);
+
+ // Deprecated Image APIs
+ rpc DownloadImage(core_adapter.ImageDownloadMessage) returns (device.ImageDownload) {
+ option deprecated = true;
+ };
+ rpc GetImageDownloadStatus(core_adapter.ImageDownloadMessage) returns (device.ImageDownload) {
+ option deprecated = true;
+ };
+ rpc CancelImageDownload(core_adapter.ImageDownloadMessage) returns (device.ImageDownload) {
+ option deprecated = true;
+ };
+ rpc ActivateImageUpdate(core_adapter.ImageDownloadMessage) returns (device.ImageDownload) {
+ option deprecated = true;
+ };
+ rpc RevertImageUpdate(core_adapter.ImageDownloadMessage) returns (device.ImageDownload) {
+ option deprecated = true;
+ };
+
+ // Tests
+ rpc StartOmciTest(core_adapter.OMCITest) returns(omci.TestResponse);
+ rpc SimulateAlarm(core_adapter.SimulateAlarmMessage) returns (common.OperationResp);
+
+ // Events
+ rpc SuppressEvent(event.EventFilter) returns(google.protobuf.Empty);
+ rpc UnSuppressEvent(event.EventFilter) returns(google.protobuf.Empty);
+
+ // Get/Set
+ rpc GetExtValue(core_adapter.GetExtValueMessage) returns (extension.ReturnValues);
+ rpc SetExtValue(core_adapter.SetExtValueMessage) returns (google.protobuf.Empty);
+ rpc GetSingleValue(extension.SingleGetValueRequest) returns (extension.SingleGetValueResponse);
+ rpc SetSingleValue(extension.SingleSetValueRequest) returns (extension.SingleSetValueResponse);
+}
diff --git a/protos/voltha_protos/adapter_services.proto b/protos/voltha_protos/adapter_services.proto
deleted file mode 100755
index 967511e..0000000
--- a/protos/voltha_protos/adapter_services.proto
+++ /dev/null
@@ -1,99 +0,0 @@
-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
index 19d81d7..9efbdd9 100755
--- a/protos/voltha_protos/common.proto
+++ b/protos/voltha_protos/common.proto
@@ -100,28 +100,4 @@
// Additional Info
string additional_info = 2;
}
-message ValueType {
- enum Type {
- EMPTY = 0;
- DISTANCE = 1;
- }
-}
-message ValueSpecifier {
- string id = 1;
- ValueType.Type value = 2;
-}
-message ReturnValues {
- uint32 Set = 1; // Specifies what values are
- // set/valid in return
-
- uint32 Unsupported = 2; // Specifies requested values not
- // supported by the device
-
- uint32 Error = 3; // Specifies requested values not
- // fetched because of error
-
- uint32 Distance = 4; // Value of distance Set includes
- // DISTANCE
-
-}
diff --git a/protos/voltha_protos/core.proto b/protos/voltha_protos/core.proto
index ad8f83a..c0563c7 100755
--- a/protos/voltha_protos/core.proto
+++ b/protos/voltha_protos/core.proto
@@ -3,13 +3,7 @@
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;
+package core;
message DeviceTransientState {
// Transient State for devices
@@ -27,38 +21,8 @@
DELETING_POST_ADAPTER_RESPONSE = 4;
// State to represent that the device deletion is failed
DELETE_FAILED = 5;
- // State to represent that reconcile is in progress
- RECONCILE_IN_PROGRESS = 6;
+ // State to represent that reconcile is in progress
+ RECONCILE_IN_PROGRESS = 6;
}
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/core_adapter.proto b/protos/voltha_protos/core_adapter.proto
new file mode 100755
index 0000000..e58aaaa
--- /dev/null
+++ b/protos/voltha_protos/core_adapter.proto
@@ -0,0 +1,131 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/core_adapter";
+option java_package = "org.opencord.voltha.core_adapter";
+
+import "voltha_protos/common.proto";
+import "voltha_protos/voltha.proto";
+import "voltha_protos/openflow_13.proto";
+import "voltha_protos/adapter.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/extensions.proto";
+import "voltha_protos/omci_test.proto";
+
+package core_adapter;
+
+// Core-Adapter messages
+
+message AdapterRegistration {
+ adapter.Adapter adapter = 1;
+ device.DeviceTypes dTypes = 2;
+}
+
+message ChildDeviceFilter {
+ string parent_id = 1;
+ string serial_number = 2;
+ uint32 onu_id = 3;
+ uint32 parent_port_no = 4;
+}
+
+message PortFilter {
+ string device_id = 1;
+ uint32 port = 2;
+ device.Port.PortType port_type = 3;
+}
+
+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 DeviceStateFilter {
+ string device_id = 1;
+ string parent_device_id = 2;
+ common.OperStatus.Types oper_status = 3;
+ common.ConnectStatus.Types conn_status = 4;
+}
+
+message PortState {
+ string device_id = 1;
+ device.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;
+}
+
+message BulkFlows {
+ device.Device device = 1;
+ openflow_13.Flows flows = 2;
+ openflow_13.FlowGroups groups = 3;
+ openflow_13.FlowMetadata flow_metadata = 4;
+}
+
+message IncrementalFlows {
+ device.Device device = 1;
+ openflow_13.FlowChanges flows = 2;
+ openflow_13.FlowGroupChanges groups = 3;
+ openflow_13.FlowMetadata flow_metadata = 4;
+}
+
+message PmConfigsInfo {
+ string device_id = 1;
+ device.PmConfigs pm_configs = 2;
+}
+
+message SwitchCapability {
+ openflow_13.ofp_desc desc = 1;
+ openflow_13.ofp_switch_features switch_features = 2;
+}
+
+message ImageDownloadMessage {
+ device.Device device = 1;
+ device.ImageDownload image = 2;
+}
+
+message OMCITest {
+ device.Device device = 1;
+ omci.OmciTestRequest request = 2;
+}
+
+message SimulateAlarmMessage {
+ device.Device device = 1;
+ device.SimulateAlarmRequest request = 2;
+}
+
+message GetExtValueMessage {
+ device.Device parent_device = 1;
+ device.Device child_device = 2;
+ extension.ValueType.Type value_type=3;
+}
+
+message SetExtValueMessage {
+ device.Device device = 1;
+ extension.ValueSet value=3;
+}
diff --git a/protos/voltha_protos/core_services.proto b/protos/voltha_protos/core_services.proto
new file mode 100755
index 0000000..b6c16da
--- /dev/null
+++ b/protos/voltha_protos/core_services.proto
@@ -0,0 +1,45 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/core_service";
+option java_package = "org.opencord.voltha.core_service";
+option java_outer_classname = "VolthaCoreService";
+
+package core_service;
+
+import "google/protobuf/empty.proto";
+import "voltha_protos/core_adapter.proto";
+import "voltha_protos/common.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/health.proto";
+
+// The CoreService is a gRPC service implemented by the Voltha RW-Core for the
+// sole purpose of serving requests/updates from the Voltha adapters.
+service CoreService {
+ // in coreProxy interface
+ rpc GetHealthStatus(google.protobuf.Empty) returns (health.HealthStatus);
+ rpc RegisterAdapter (core_adapter.AdapterRegistration) returns (google.protobuf.Empty);
+ rpc DeviceUpdate (device.Device) returns (google.protobuf.Empty);
+ rpc PortCreated (device.Port) returns (google.protobuf.Empty);
+ rpc PortsStateUpdate (core_adapter.PortStateFilter) returns (google.protobuf.Empty);
+ rpc DeleteAllPorts (common.ID) returns (google.protobuf.Empty);
+ rpc GetDevicePort (core_adapter.PortFilter) returns (device.Port);
+ rpc ListDevicePorts (common.ID) returns (device.Ports);
+ rpc DeviceStateUpdate (core_adapter.DeviceStateFilter) returns (google.protobuf.Empty);
+ rpc DevicePMConfigUpdate (device.PmConfigs) returns (google.protobuf.Empty);
+ rpc ChildDeviceDetected (core_adapter.DeviceDiscovery) returns (device.Device);
+ rpc ChildDevicesLost (common.ID) returns (google.protobuf.Empty);
+ rpc ChildDevicesDetected (common.ID) returns (google.protobuf.Empty);
+ rpc GetDevice (common.ID) returns (device.Device);
+ rpc GetChildDevice (core_adapter.ChildDeviceFilter) returns (device.Device);
+ rpc GetChildDevices (common.ID) returns (device.Devices);
+ rpc SendPacketIn (core_adapter.PacketIn) returns (google.protobuf.Empty);
+ rpc DeviceReasonUpdate (core_adapter.DeviceReason) returns (google.protobuf.Empty);
+ rpc PortStateUpdate (core_adapter.PortState) returns (google.protobuf.Empty);
+
+ // Additional API found in the Core - unused?
+ rpc ReconcileChildDevices (common.ID) returns (google.protobuf.Empty);
+ rpc GetChildDeviceWithProxyAddress (device.Device.ProxyAddress) returns (device.Device);
+ rpc GetPorts (core_adapter.PortFilter) returns (device.Ports);
+ rpc ChildrenStateUpdate (core_adapter.DeviceStateFilter) returns (google.protobuf.Empty);
+ rpc UpdateImageDownload (device.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
index f1ac063..9f05ed9 100755
--- a/protos/voltha_protos/device.proto
+++ b/protos/voltha_protos/device.proto
@@ -1,15 +1,14 @@
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
-option java_package = "org.opencord.voltha";
+option java_package = "org.opencord.voltha.device";
option java_outer_classname = "VolthaDevice";
-package voltha;
+package device;
import "google/protobuf/any.proto";
import "voltha_protos/common.proto";
-import "voltha_protos/meta.proto";
import "voltha_protos/openflow_13.proto";
// A Device Type
@@ -67,9 +66,9 @@
string id = 1; // To work around a chameleon POST bug
uint32 default_freq = 2; // Default sample rate
// Forces group names and group semantics
- bool grouped = 3 [(access) = READ_ONLY];
+ bool grouped = 3;
// Allows Pm to set an individual sample frequency
- bool freq_override = 4 [(access) = READ_ONLY];
+ bool freq_override = 4;
repeated PmGroupConfig groups = 5; // The groups if grouped is true
repeated PmConfig metrics = 6; // The metrics themselves if grouped is false.
uint32 max_skew = 7; //Default value is set to 5 seconds
@@ -135,6 +134,7 @@
// Older version of the API please see DeviceImageDownloadRequest
// Deprecated in voltha 2.8, will be removed
message ImageDownload {
+ option deprecated = true;
enum ImageDownloadState {
DOWNLOAD_UNKNOWN = 0;
DOWNLOAD_SUCCEEDED = 1;
@@ -206,6 +206,7 @@
// Deprecated in voltha 2.8, will be removed
message ImageDownloads {
+ option deprecated = true;
repeated ImageDownload items = 2;
}
@@ -338,33 +339,33 @@
// A Physical Device instance
message Device {
// Voltha's device identifier
- string id = 1 [(access) = READ_ONLY];
+ string id = 1 ;
// Device type, refers to one of the registered device types
- string type = 2 [(access) = READ_ONLY];
+ string type = 2 ;
// Is this device a root device. Each logical switch has one root
// device that is associated with the logical flow switch.
- bool root = 3 [(access) = READ_ONLY];
+ bool root = 3 ;
// Parent device id, in the device tree (for a root device, the parent_id
// is the logical_device.id)
- string parent_id = 4 [(access) = READ_ONLY];
- uint32 parent_port_no = 20 [(access) = READ_ONLY];
+ string parent_id = 4;
+ uint32 parent_port_no = 20;
// Vendor, version, serial number, etc.
- string vendor = 5 [(access) = READ_ONLY];
- string model = 6 [(access) = READ_ONLY];
- string hardware_version = 7 [(access) = READ_ONLY];
- string firmware_version = 8 [(access) = READ_ONLY];
+ string vendor = 5;
+ string model = 6;
+ string hardware_version = 7;
+ string firmware_version = 8;
// List of software on the device
- Images images = 9 [(access) = READ_ONLY];
- string serial_number = 10 [(access) = READ_ONLY];
- string vendor_id = 24 [(access) = READ_ONLY];
+ Images images = 9;
+ string serial_number = 10;
+ string vendor_id = 24;
- // Adapter that takes care of device
- // Deprecated and replaced by adapter_endpoint
- string adapter = 11 [(access) = READ_ONLY];
+ // adapter is deprecated and replaced by adapter_endpoint
+ reserved 11;
+ //string adapter = 11;
// Indicates how to reach the adapter instance that manages this device
string adapter_endpoint = 25;
@@ -404,25 +405,72 @@
common.AdminState.Types admin_state = 16;
- common.OperStatus.Types oper_status = 17 [(access) = READ_ONLY];
+ common.OperStatus.Types oper_status = 17 ;
- string reason = 22 [(access) = READ_ONLY]; // Used in FAILED state
+ string reason = 22 ; // Used in FAILED state
- common.ConnectStatus.Types connect_status = 18 [(access) = READ_ONLY];
+ common.ConnectStatus.Types connect_status = 18 ;
// TODO additional common attribute here
// Device type specific attributes
google.protobuf.Any custom = 64;
- // PmConfigs will eventually converted to a child node of the
- // device to falicitata callbacks and to simplify manipulation.
- PmConfigs pm_configs = 131 [(child_node) = {}];
+ // PmConfigs type
+ PmConfigs pm_configs = 131 ;
- repeated ImageDownload image_downloads = 133 [(child_node) = {key: "name"}];
+ repeated ImageDownload image_downloads = 133;
}
+message DeviceImageDownloadRequest {
+
+ // Device Id
+ // allows for operations on multiple devices.
+ repeated common.ID device_id = 1;
+
+ //The image for the device containing all the information
+ Image image = 2;
+
+ //Activate the image if the download to the device is successful
+ bool activateOnSuccess = 3;
+
+ //Automatically commit the image if the activation on the device is successful
+ bool commitOnSuccess = 4;
+}
+
+message DeviceImageRequest {
+
+ //Device Id
+ //allows for operations on multiple adapters.
+ repeated common.ID device_id = 1;
+
+ // Image Version, this is the sole identifier of the image. it's the vendor specified OMCI version
+ // must be known at the time of initiating a download, activate, commit image on an onu.
+ string version = 2;
+
+ //Automatically commit the image if the activation on the device is successful
+ bool commitOnSuccess = 3;
+}
+
+message DeviceImageResponse {
+
+ //Image state for the different devices
+ repeated DeviceImageState device_image_states = 1;
+}
+
+// Device Self Test Response
+message SelfTestResponse {
+
+ enum SelfTestResult {
+ SUCCESS = 0;
+ FAILURE = 1;
+ NOT_SUPPORTED = 2;
+ UNKNOWN_ERROR = 3;
+ }
+ SelfTestResult result = 1;
+}
+
message Devices {
repeated Device items = 1;
}
diff --git a/protos/voltha_protos/events.proto b/protos/voltha_protos/events.proto
index e9d36ba..9376805 100755
--- a/protos/voltha_protos/events.proto
+++ b/protos/voltha_protos/events.proto
@@ -1,15 +1,43 @@
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
-option java_package = "org.opencord.voltha";
+option java_package = "org.opencord.voltha.events";
-package voltha;
+package event;
-import "voltha_protos/meta.proto";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
import "voltha_protos/common.proto";
+
+message EventFilterRuleKey {
+
+ enum EventFilterRuleType {
+ filter_all = 0;
+ category = 1;
+ sub_category = 2;
+ kpi_event_type = 3;
+ config_event_type = 4;
+ device_event_type = 5;
+ }
+}
+
+message EventFilterRule {
+ EventFilterRuleKey.EventFilterRuleType key = 1;
+ string value = 2;
+}
+message EventFilter {
+ string id = 1 ;
+ bool enable = 2;
+ string device_id = 3;
+ string event_type = 4;
+ repeated EventFilterRule rules = 5;
+}
+
+message EventFilters {
+ repeated EventFilter filters = 1;
+}
+
message ConfigEventType {
enum Types {
add = 0; // A new config has been added
diff --git a/protos/voltha_protos/extensions.proto b/protos/voltha_protos/extensions.proto
index 81c7942..9e5b0c1 100755
--- a/protos/voltha_protos/extensions.proto
+++ b/protos/voltha_protos/extensions.proto
@@ -19,9 +19,43 @@
package extension;
-import public "voltha_protos/ext_config.proto";
+import "voltha_protos/ext_config.proto";
import "google/protobuf/empty.proto";
+message ValueSet {
+ string id = 1;
+ oneof value{
+ config.AlarmConfig alarm_config = 2;
+ }
+}
+
+message ValueType {
+ enum Type {
+ EMPTY = 0;
+ DISTANCE = 1;
+ }
+}
+
+message ValueSpecifier {
+ string id = 1;
+ ValueType.Type value = 2;
+}
+
+message ReturnValues {
+ uint32 Set = 1; // Specifies what values are
+ // set/valid in return
+
+ uint32 Unsupported = 2; // Specifies requested values not
+ // supported by the device
+
+ uint32 Error = 3; // Specifies requested values not
+ // fetched because of error
+
+ uint32 Distance = 4; // Value of distance Set includes
+ // DISTANCE
+
+}
+
message GetDistanceRequest {
string onuDeviceId = 1;
}
diff --git a/protos/voltha_protos/health.proto b/protos/voltha_protos/health.proto
index 8ed3cbc..d152d9a 100755
--- a/protos/voltha_protos/health.proto
+++ b/protos/voltha_protos/health.proto
@@ -1,13 +1,12 @@
syntax = "proto3";
-option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
-option java_package = "org.opencord.voltha";
+option go_package = "github.com/opencord/voltha-protos/v5/go/health";
+option java_package = "org.opencord.voltha.health";
-package voltha;
+package health;
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
-import "voltha_protos/meta.proto";
// Encode health status of a Voltha instance
message HealthStatus {
@@ -20,7 +19,7 @@
}
// Current state of health of this Voltha instance
- HealthState state = 1 [(access) = READ_ONLY];
+ HealthState state = 1 ;
}
// Health related services
diff --git a/protos/voltha_protos/ietf_interfaces.proto b/protos/voltha_protos/ietf_interfaces.proto
index 89f59b9..51b1612 100755
--- a/protos/voltha_protos/ietf_interfaces.proto
+++ b/protos/voltha_protos/ietf_interfaces.proto
@@ -1,7 +1,7 @@
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v5/go/ietf";
-option java_package = "org.opencord.voltha";
+option java_package = "org.opencord.voltha.ietf";
package ietf;
diff --git a/protos/voltha_protos/inter_adapter.proto b/protos/voltha_protos/inter_adapter.proto
new file mode 100755
index 0000000..e622ce9
--- /dev/null
+++ b/protos/voltha_protos/inter_adapter.proto
@@ -0,0 +1,61 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/inter_adapter";
+option java_package = "org.opencord.voltha.inter_adapter";
+
+import "voltha_protos/common.proto";
+import "voltha_protos/voltha.proto";
+import "voltha_protos/tech_profile.proto";
+import "voltha_protos/openolt.proto";
+import "voltha_protos/device.proto";
+
+package inter_adapter;
+
+
+// Inter-Adapter messages
+
+message OmciMessage {
+ bytes message = 1;
+ common.ConnectStatus.Types connect_status = 2;
+ device.Device.ProxyAddress proxy_address = 3;
+ string parent_device_id = 4;
+ string child_device_id = 5;
+}
+
+message TechProfileDownloadMessage {
+ string device_id = 1;
+ uint32 uni_id = 2;
+ string tp_instance_path = 3;
+ oneof tech_tp_instance {
+ 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 DeleteGemPortMessage {
+ string device_id = 1;
+ uint32 uni_id = 2;
+ string tp_instance_path = 3;
+ uint32 gem_port_id = 4;
+}
+
+message DeleteTcontMessage {
+ string device_id = 1;
+ uint32 uni_id = 2;
+ string tp_instance_path = 3;
+ uint32 alloc_id = 4;
+}
+
+message OnuIndicationMessage {
+ string device_id = 1;
+ openolt.OnuIndication onu_indication = 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/inter_container.proto b/protos/voltha_protos/inter_container.proto
deleted file mode 100755
index 6c946af..0000000
--- a/protos/voltha_protos/inter_container.proto
+++ /dev/null
@@ -1,186 +0,0 @@
-syntax = "proto3";
-
-option go_package = "github.com/opencord/voltha-protos/v5/go/inter_container";
-option java_package = "org.opencord.voltha";
-
-import "voltha_protos/common.proto";
-import "voltha_protos/voltha.proto";
-import "voltha_protos/openflow_13.proto";
-import "voltha_protos/tech_profile.proto";
-import "voltha_protos/openolt.proto";
-import "voltha_protos/adapter.proto";
-import "voltha_protos/device.proto";
-
-package voltha;
-
-//
-// Core-Adapter messages
-// ****
-// ****
-// ****
-message AdapterRegistration {
- Adapter adapter = 1;
- DeviceTypes dTypes = 2;
-}
-
-message ChildDeviceFilter {
- string parent_id = 1;
- string serial_number = 2;
- uint32 onu_id = 3;
- uint32 parent_port_no = 4;
-}
-
-message PortFilter {
- string device_id = 1;
- uint32 port = 2;
- Port.PortType port_type = 3;
-}
-
-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 DeviceStateFilter {
- string device_id = 1;
- string parent_device_id = 2;
- common.OperStatus.Types oper_status = 3;
- common.ConnectStatus.Types conn_status = 4;
-}
-
-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;
-}
-
-message BulkFlows {
- Device device = 1;
- openflow_13.Flows flows = 2;
- openflow_13.FlowGroups groups = 3;
- voltha.FlowMetadata flow_metadata = 4;
-}
-
-message IncrementalFlows {
- Device device = 1;
- openflow_13.FlowChanges flows = 2;
- openflow_13.FlowGroupChanges groups = 3;
- voltha.FlowMetadata flow_metadata = 4;
-}
-
-message PmConfigsInfo {
- string device_id = 1;
- PmConfigs pm_configs = 2;
-}
-
-message SwitchCapability {
- openflow_13.ofp_desc desc = 1;
- openflow_13.ofp_switch_features switch_features = 2;
-}
-
-message ImageDownloadMessage {
- Device device = 1;
- ImageDownload image = 2;
-}
-
-message OMCITest {
- Device device = 1;
- OmciTestRequest request = 2;
-}
-
-message SimulateAlarmMessage {
- Device device = 1;
- SimulateAlarmRequest request = 2;
-}
-
-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 TechProfileDownloadMessage {
- string device_id = 1;
- uint32 uni_id = 2;
- string tp_instance_path = 3;
- oneof tech_tp_instance {
- 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 DeleteGemPortMessage {
- string device_id = 1;
- uint32 uni_id = 2;
- string tp_instance_path = 3;
- uint32 gem_port_id = 4;
-}
-
-message DeleteTcontMessage {
- string device_id = 1;
- uint32 uni_id = 2;
- string tp_instance_path = 3;
- uint32 alloc_id = 4;
-}
-
-message OnuIndicationMessage {
- string device_id = 1;
- openolt.OnuIndication onu_indication = 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
index 9931251..dddcbb0 100755
--- a/protos/voltha_protos/logical_device.proto
+++ b/protos/voltha_protos/logical_device.proto
@@ -1,13 +1,12 @@
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v5/go/voltha";
-option java_package = "org.opencord.voltha";
+option java_package = "org.opencord.voltha.logical_device";
option java_outer_classname = "OFLogicalDevice";
-package voltha;
+package logical_device;
import "google/api/annotations.proto";
-import "voltha_protos/meta.proto";
import "voltha_protos/openflow_13.proto";
message LogicalPortId {
diff --git a/protos/voltha_protos/meta.proto b/protos/voltha_protos/meta.proto
deleted file mode 100755
index 4dd6d5d..0000000
--- a/protos/voltha_protos/meta.proto
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2015, Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// This file contains annotation definitions that can be used to describe
-// a configuration tree.
-
-syntax = "proto3";
-
-option go_package = "github.com/opencord/voltha-protos/v5/go/common";
-option java_package = "org.opencord.voltha.common";
-
-package voltha;
-
-import "google/protobuf/descriptor.proto";
-
-message ChildNode {
- string key = 1;
-}
-
-enum Access {
-
- // read-write, stored attribute
- CONFIG = 0;
-
- // read-only field, stored with the model, covered by its hash
- READ_ONLY = 1;
-
- // A read-only attribute that is not stored in the model, not covered
- // by its hash, its value is filled real-time upon each request.
- REAL_TIME = 2;
-
-}
-
-extend google.protobuf.FieldOptions {
-
- // If present, it indicates that this field is stored as external child node
- // or children nodes in Voltha's internal configuration tree.
- // If the field is a container field and if the option specifies a key
- // the child objects will be addressible by that key.
- ChildNode child_node = 7761772;
-
- // This annotation can be used to indicate that a field is read-only,
- // from the perspective of NBI access. Backend plugins and system
- // internals can update the field but the update requests through the
- // NBI will ignore for instance a field that is marked as read-only (RO).
- Access access = 7761773;
-}
diff --git a/protos/voltha_protos/olt_inter_adapter_service.proto b/protos/voltha_protos/olt_inter_adapter_service.proto
new file mode 100755
index 0000000..5d4773f
--- /dev/null
+++ b/protos/voltha_protos/olt_inter_adapter_service.proto
@@ -0,0 +1,20 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/olt_inter_adapter_service";
+option java_package = "org.opencord.voltha.olt_inter_adapter_service";
+option java_outer_classname = "VolthaOltInterAdapterService";
+
+package olt_inter_adapter_service;
+
+import "google/protobuf/empty.proto";
+import "voltha_protos/inter_adapter.proto";
+import "voltha_protos/health.proto";
+
+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 (health.HealthStatus);
+
+ rpc ProxyOmciRequest(inter_adapter.OmciMessage) returns (google.protobuf.Empty);
+ rpc GetTechProfileInstance(inter_adapter.TechProfileInstanceRequestMessage) returns (inter_adapter.TechProfileDownloadMessage);
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/omci_alarm_db.proto b/protos/voltha_protos/omci_alarm_db.proto
index 2fd6d57..940a844 100755
--- a/protos/voltha_protos/omci_alarm_db.proto
+++ b/protos/voltha_protos/omci_alarm_db.proto
@@ -20,49 +20,44 @@
package omci;
-import "voltha_protos/meta.proto";
-
message AlarmAttributeData {
- string name = 1 [(voltha.access) = READ_ONLY];
+ string name = 1;
string value = 2;
}
message AlarmInstanceData {
- uint32 instance_id = 1 [(voltha.access) = READ_ONLY];
+ uint32 instance_id = 1;
string created = 2;
string modified = 3;
- repeated AlarmAttributeData attributes = 4
- [(voltha.child_node) = {key: "name"}];
+ repeated AlarmAttributeData attributes = 4;
}
message AlarmClassData {
- uint32 class_id = 1 [(voltha.access) = READ_ONLY];
+ uint32 class_id = 1;
- repeated AlarmInstanceData instances= 2
- [(voltha.child_node) = {key: "instance_id"}];
+ repeated AlarmInstanceData instances= 2;
}
message AlarmManagedEntity {
- uint32 class_id = 1 [(voltha.access) = READ_ONLY];
- string name = 2 [(voltha.access) = READ_ONLY];
+ uint32 class_id = 1;
+ string name = 2;
}
message AlarmMessageType {
- uint32 message_type = 1 [(voltha.access) = READ_ONLY];
+ uint32 message_type = 1;
}
message AlarmDeviceData {
- string device_id = 1 [(voltha.access) = READ_ONLY];
+ string device_id = 1;
string created = 2;
uint32 last_alarm_sequence = 3;
string last_sync_time = 4;
uint32 version = 5;
- repeated AlarmClassData classes = 6
- [(voltha.child_node) = {key: "class_id"}];
+ repeated AlarmClassData classes = 6;
repeated AlarmManagedEntity managed_entities = 7;
repeated AlarmMessageType message_types = 8;
diff --git a/protos/voltha_protos/omci_mib_db.proto b/protos/voltha_protos/omci_mib_db.proto
index 1813845..62f1656 100755
--- a/protos/voltha_protos/omci_mib_db.proto
+++ b/protos/voltha_protos/omci_mib_db.proto
@@ -20,48 +20,42 @@
package omci;
-import "voltha_protos/meta.proto";
-
-
message MibAttributeData {
- string name = 1 [(voltha.access) = READ_ONLY];
+ string name = 1;
string value = 2;
}
message MibInstanceData {
- uint32 instance_id = 1 [(voltha.access) = READ_ONLY];
+ uint32 instance_id = 1;
string created = 2;
string modified = 3;
- repeated MibAttributeData attributes = 4
- [(voltha.child_node) = {key: "name"}];
+ repeated MibAttributeData attributes = 4;
}
message MibClassData {
- uint32 class_id = 1 [(voltha.access) = READ_ONLY];
+ uint32 class_id = 1;
- repeated MibInstanceData instances= 2
- [(voltha.child_node) = {key: "instance_id"}];
+ repeated MibInstanceData instances= 2;
}
message ManagedEntity {
- uint32 class_id = 1 [(voltha.access) = READ_ONLY];
- string name = 2 [(voltha.access) = READ_ONLY];
+ uint32 class_id = 1;
+ string name = 2;
}
message MessageType {
- uint32 message_type = 1 [(voltha.access) = READ_ONLY];
+ uint32 message_type = 1;
}
message MibDeviceData {
- string device_id = 1 [(voltha.access) = READ_ONLY];
+ string device_id = 1;
string created = 2;
string last_sync_time = 3;
uint32 mib_data_sync = 4;
uint32 version = 5;
- repeated MibClassData classes = 6
- [(voltha.child_node) = {key: "class_id"}];
+ repeated MibClassData classes = 6;
repeated ManagedEntity managed_entities = 7;
repeated MessageType message_types = 8;
diff --git a/protos/voltha_protos/omci_test.proto b/protos/voltha_protos/omci_test.proto
new file mode 100755
index 0000000..cd4f507
--- /dev/null
+++ b/protos/voltha_protos/omci_test.proto
@@ -0,0 +1,21 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/omci";
+
+package omci;
+
+option java_package = "org.opencord.voltha.omci";
+
+message OmciTestRequest {
+ string id = 1;
+ string uuid = 2;
+}
+
+message TestResponse{
+ enum TestResponseResult {
+ SUCCESS = 0;
+ FAILURE = 1;
+ }
+ TestResponseResult result = 1;
+}
+
diff --git a/protos/voltha_protos/onu_inter_adapter_service.proto b/protos/voltha_protos/onu_inter_adapter_service.proto
new file mode 100755
index 0000000..ee4dff7
--- /dev/null
+++ b/protos/voltha_protos/onu_inter_adapter_service.proto
@@ -0,0 +1,23 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service";
+option java_package = "org.opencord.voltha.onu_inter_adapter_service";
+option java_outer_classname = "VolthaOnuInterAdapterService";
+
+package onu_inter_adapter_service;
+
+import "google/protobuf/empty.proto";
+import "voltha_protos/inter_adapter.proto";
+import "voltha_protos/health.proto";
+
+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 (health.HealthStatus);
+
+ rpc OnuIndication(inter_adapter.OnuIndicationMessage) returns (google.protobuf.Empty);
+ rpc OmciIndication(inter_adapter.OmciMessage) returns (google.protobuf.Empty);
+ rpc DownloadTechProfile(inter_adapter.TechProfileDownloadMessage) returns (google.protobuf.Empty);
+ rpc DeleteGemPort(inter_adapter.DeleteGemPortMessage) returns (google.protobuf.Empty);
+ rpc DeleteTCont(inter_adapter.DeleteTcontMessage) returns (google.protobuf.Empty);
+}
\ No newline at end of file
diff --git a/protos/voltha_protos/openflow_13.proto b/protos/voltha_protos/openflow_13.proto
index 3a6a315..2f6791e 100755
--- a/protos/voltha_protos/openflow_13.proto
+++ b/protos/voltha_protos/openflow_13.proto
@@ -2308,4 +2308,10 @@
ofp_port_status port_status = 2;
ofp_error_msg error = 3;
}
+}
+
+// Additional information required to process flow at device adapters
+message FlowMetadata {
+ // Meters associated with flow-update to adapter
+ repeated openflow_13.ofp_meter_config meters = 1;
}
\ No newline at end of file
diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
index b68727a..03fe064 100755
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -20,9 +20,9 @@
package openolt;
import "google/api/annotations.proto";
-import public "voltha_protos/tech_profile.proto";
-import public "voltha_protos/common.proto";
+import "voltha_protos/tech_profile.proto";
import "voltha_protos/ext_config.proto";
+import "voltha_protos/extensions.proto";
service Openolt {
@@ -196,7 +196,7 @@
};
}
- rpc GetExtValue(ValueParam) returns (common.ReturnValues) {
+ rpc GetExtValue(ValueParam) returns (extension.ReturnValues) {
option (google.api.http) = {
post: "/v1/GetExtValue"
body: "*"
@@ -750,7 +750,7 @@
message ValueParam {
Onu onu = 1;
- common.ValueType.Type value = 2;
+ extension.ValueType.Type value = 2;
}
message PonRxPowerData {
diff --git a/protos/voltha_protos/voltha.proto b/protos/voltha_protos/voltha.proto
index 1d4dc78..359858e 100755
--- a/protos/voltha_protos/voltha.proto
+++ b/protos/voltha_protos/voltha.proto
@@ -13,71 +13,30 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
-import public "voltha_protos/meta.proto";
import public "voltha_protos/common.proto";
-import public "voltha_protos/health.proto";
-import public "voltha_protos/logical_device.proto";
-import public "voltha_protos/device.proto";
-import public "voltha_protos/adapter.proto";
-import public "voltha_protos/openflow_13.proto";
+import "voltha_protos/health.proto";
+import "voltha_protos/logical_device.proto";
+import "voltha_protos/device.proto";
+import "voltha_protos/adapter.proto";
+import "voltha_protos/openflow_13.proto";
+import "voltha_protos/events.proto";
+import "voltha_protos/extensions.proto";
import "voltha_protos/omci_mib_db.proto";
import "voltha_protos/omci_alarm_db.proto";
-import "voltha_protos/ext_config.proto";
+import "voltha_protos/omci_test.proto";
option java_package = "org.opencord.voltha";
option java_outer_classname = "VolthaProtos";
option csharp_namespace = "Opencord.Voltha.Voltha";
-message DeviceGroup {
-
- string id = 1 [(access) = READ_ONLY];
-
- repeated LogicalDevice logical_devices = 2 [(child_node) = {key: "id"}];
-
- repeated Device devices = 3 [(child_node) = {key: "id"}];
-}
-
-message DeviceGroups {
- repeated DeviceGroup items = 1;
-}
-
-
-message EventFilterRuleKey {
-
- enum EventFilterRuleType {
- filter_all = 0;
- category = 1;
- sub_category = 2;
- kpi_event_type = 3;
- config_event_type = 4;
- device_event_type = 5;
- }
-}
-
-message EventFilterRule {
- EventFilterRuleKey.EventFilterRuleType key = 1;
- string value = 2;
-}
-message EventFilter {
- string id = 1 [(access) = READ_ONLY];
- bool enable = 2;
- string device_id = 3;
- string event_type = 4;
- repeated EventFilterRule rules = 5;
-}
-
-message EventFilters {
- repeated EventFilter filters = 1;
-}
-
// CoreInstance represents a core instance. It is data held in memory when a core
// is running. This data is not persistent.
message CoreInstance {
- string instance_id = 1 [(access) = READ_ONLY];
+ string instance_id = 1;
- HealthStatus health = 2 [(child_node) = {}];
+ health.HealthStatus health = 2;
}
@@ -85,123 +44,33 @@
repeated CoreInstance items = 1;
}
-message OmciTestRequest {
- string id = 1;
- string uuid = 2;
-}
-
-message TestResponse{
- enum TestResponseResult {
- SUCCESS = 0;
- FAILURE = 1;
- }
- TestResponseResult result = 1;
-}
-
-message ValueSet {
- string id = 1;
- oneof value{
- config.AlarmConfig alarm_config = 2;
- }
-}
// Voltha represents the Voltha cluster data. Each Core instance will hold a subset of
// the entire cluster. However, some items (e.g. adapters) will be held by all cores
// for better performance
message Voltha {
- string version = 1 [(access) = READ_ONLY];
+ string version = 1 ;
- repeated Adapter adapters = 2 [(child_node) = {key: "id"}];
+ repeated adapter.Adapter adapters = 2;
- repeated LogicalDevice logical_devices = 3 [(child_node) = {key: "id"}];
+ repeated logical_device.LogicalDevice logical_devices = 3;
- repeated Device devices = 4 [(child_node) = {key: "id"}];
+ repeated device.Device devices = 4;
- repeated DeviceType device_types = 5 [(child_node) = {key: "id"}];
+ repeated device.DeviceType device_types = 5;
- repeated DeviceGroup device_groups = 6 [(child_node) = {key: "id"}];
+ reserved 6;
+ // device_groups is not used
+ // repeated DeviceGroup device_groups = 6;
- repeated EventFilter event_filters = 7 [(child_node) = {key: "id"}];
+ repeated event.EventFilter event_filters = 7;
repeated
- omci.MibDeviceData omci_mib_database = 28
- [(child_node) = {key: "device_id"}];
+ omci.MibDeviceData omci_mib_database = 28;
repeated
- omci.AlarmDeviceData omci_alarm_database = 29
- [(child_node) = {key: "device_id"}];
-}
-
-// Device Self Test Response
-message SelfTestResponse {
-
- enum SelfTestResult {
- SUCCESS = 0;
- FAILURE = 1;
- NOT_SUPPORTED = 2;
- UNKNOWN_ERROR = 3;
- }
- SelfTestResult result = 1;
-}
-
-message OfAgentSubscriber {
- // ID of ofagent instance
- string ofagent_id = 1;
-
- // ID of voltha instance to which the ofagent is subscribed
- string voltha_id = 2;
-}
-
-// Identifies a membership group a Core belongs to
-message Membership {
- // Group name
- string group_name = 1;
-
- // Unique ID of a container within that group
- string id = 2;
-}
-
-message DeviceImageDownloadRequest {
-
- // Device Id
- // allows for operations on multiple devices.
- repeated common.ID device_id = 1;
-
- //The image for the device containing all the information
- Image image = 2;
-
- //Activate the image if the download to the device is successful
- bool activateOnSuccess = 3;
-
- //Automatically commit the image if the activation on the device is successful
- bool commitOnSuccess = 4;
-}
-
-message DeviceImageRequest {
-
- //Device Id
- //allows for operations on multiple adapters.
- repeated common.ID device_id = 1;
-
- // Image Version, this is the sole identifier of the image. it's the vendor specified OMCI version
- // must be known at the time of initiating a download, activate, commit image on an onu.
- string version = 2;
-
- //Automatically commit the image if the activation on the device is successful
- bool commitOnSuccess = 3;
-}
-
-message DeviceImageResponse {
-
- //Image state for the different devices
- repeated DeviceImageState device_image_states = 1;
-}
-
-// Additional information required to process flow at device adapters
-message FlowMetadata {
- // Meters associated with flow-update to adapter
- repeated openflow_13.ofp_meter_config meters = 1;
+ omci.AlarmDeviceData omci_alarm_database = 29;
}
/*
@@ -209,22 +78,6 @@
*
*/
service VolthaService {
-
- // Get the membership group of a Voltha Core
- rpc GetMembership(google.protobuf.Empty) returns(Membership) {
- option (google.api.http) = {
- get: "/api/v1/membership"
- };
- }
-
- // Set the membership group of a Voltha Core
- rpc UpdateMembership(Membership) returns(google.protobuf.Empty) {
- option (google.api.http) = {
- post: "/api/v1/membership"
- body: "*"
- };
- }
-
// Get high level information on the Voltha cluster
rpc GetVoltha(google.protobuf.Empty) returns(Voltha) {
option (google.api.http) = {
@@ -247,7 +100,7 @@
}
// List all active adapters (plugins) in the Voltha cluster
- rpc ListAdapters(google.protobuf.Empty) returns(Adapters) {
+ rpc ListAdapters(google.protobuf.Empty) returns(adapter.Adapters) {
option (google.api.http) = {
get: "/api/v1/adapters"
};
@@ -255,42 +108,42 @@
// List all logical devices managed by the Voltha cluster
- rpc ListLogicalDevices(google.protobuf.Empty) returns(LogicalDevices) {
+ rpc ListLogicalDevices(google.protobuf.Empty) returns(logical_device.LogicalDevices) {
option (google.api.http) = {
get: "/api/v1/logical_devices"
};
}
// Get additional information on a given logical device
- rpc GetLogicalDevice(common.ID) returns(LogicalDevice) {
+ rpc GetLogicalDevice(common.ID) returns(logical_device.LogicalDevice) {
option (google.api.http) = {
get: "/api/v1/logical_devices/{id}"
};
}
// List ports of a logical device
- rpc ListLogicalDevicePorts(common.ID) returns(LogicalPorts) {
+ rpc ListLogicalDevicePorts(common.ID) returns(logical_device.LogicalPorts) {
option (google.api.http) = {
get: "/api/v1/logical_devices/{id}/ports"
};
}
// Gets a logical device port
- rpc GetLogicalDevicePort(LogicalPortId) returns(LogicalPort) {
+ rpc GetLogicalDevicePort(logical_device.LogicalPortId) returns(logical_device.LogicalPort) {
option (google.api.http) = {
get: "/api/v1/logical_devices/{id}/ports/{port_id}"
};
}
// Enables a logical device port
- rpc EnableLogicalDevicePort(LogicalPortId) returns(google.protobuf.Empty) {
+ rpc EnableLogicalDevicePort(logical_device.LogicalPortId) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/logical_devices/{id}/ports/{port_id}/enable"
};
}
// Disables a logical device port
- rpc DisableLogicalDevicePort(LogicalPortId) returns(google.protobuf.Empty) {
+ rpc DisableLogicalDevicePort(logical_device.LogicalPortId) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/logical_devices/{id}/ports/{port_id}/disable"
};
@@ -345,7 +198,7 @@
}
// List all physical devices controlled by the Voltha cluster
- rpc ListDevices(google.protobuf.Empty) returns(Devices) {
+ rpc ListDevices(google.protobuf.Empty) returns(device.Devices) {
option (google.api.http) = {
get: "/api/v1/devices"
};
@@ -367,14 +220,14 @@
}
// Get more information on a given physical device
- rpc GetDevice(common.ID) returns(Device) {
+ rpc GetDevice(common.ID) returns(device.Device) {
option (google.api.http) = {
get: "/api/v1/devices/{id}"
};
}
// Pre-provision a new physical device
- rpc CreateDevice(Device) returns(Device) {
+ rpc CreateDevice(device.Device) returns(device.Device) {
option (google.api.http) = {
post: "/api/v1/devices"
body: "*"
@@ -421,7 +274,8 @@
// Request an image download to the standby partition
// of a device.
// Note that the call is expected to be non-blocking.
- rpc DownloadImage(ImageDownload) returns(common.OperationResp) {
+ rpc DownloadImage(device.ImageDownload) returns(common.OperationResp) {
+ option deprecated = true;
option (google.api.http) = {
post: "/api/v1/devices/{id}/image_downloads/{name}"
body: "*"
@@ -431,7 +285,8 @@
// Get image download status on a device
// The request retrieves progress on device and updates db record
// Deprecated in voltha 2.8, will be removed
- rpc GetImageDownloadStatus(ImageDownload) returns(ImageDownload) {
+ rpc GetImageDownloadStatus(device.ImageDownload) returns(device.ImageDownload) {
+ option deprecated = true;
option (google.api.http) = {
get: "/api/v1/devices/{id}/image_downloads/{name}/status"
};
@@ -439,7 +294,8 @@
// Get image download db record
// Deprecated in voltha 2.8, will be removed
- rpc GetImageDownload(ImageDownload) returns(ImageDownload) {
+ rpc GetImageDownload(device.ImageDownload) returns(device.ImageDownload) {
+ option deprecated = true;
option (google.api.http) = {
get: "/api/v1/devices/{id}/image_downloads/{name}"
};
@@ -447,7 +303,8 @@
// List image download db records for a given device
// Deprecated in voltha 2.8, will be removed
- rpc ListImageDownloads(common.ID) returns(ImageDownloads) {
+ rpc ListImageDownloads(common.ID) returns(device.ImageDownloads) {
+ option deprecated = true;
option (google.api.http) = {
get: "/api/v1/devices/{id}/image_downloads"
};
@@ -455,7 +312,8 @@
// Cancel an existing image download process on a device
// Deprecated in voltha 2.8, will be removed
- rpc CancelImageDownload(ImageDownload) returns(common.OperationResp) {
+ rpc CancelImageDownload(device.ImageDownload) returns(common.OperationResp) {
+ option deprecated = true;
option (google.api.http) = {
delete: "/api/v1/devices/{id}/image_downloads/{name}"
};
@@ -469,7 +327,8 @@
// activated image running on device
// Note that the call is expected to be non-blocking.
// Deprecated in voltha 2.8, will be removed
- rpc ActivateImageUpdate(ImageDownload) returns(common.OperationResp) {
+ rpc ActivateImageUpdate(device.ImageDownload) returns(common.OperationResp) {
+ option deprecated = true;
option (google.api.http) = {
post: "/api/v1/devices/{id}/image_downloads/{name}/image_update"
body: "*"
@@ -484,7 +343,8 @@
// previous image running on device
// Note that the call is expected to be non-blocking.
// Deprecated in voltha 2.8, will be removed
- rpc RevertImageUpdate(ImageDownload) returns(common.OperationResp) {
+ rpc RevertImageUpdate(device.ImageDownload) returns(common.OperationResp) {
+ option deprecated = true;
option (google.api.http) = {
post: "/api/v1/devices/{id}/image_downloads/{name}/image_revert"
body: "*"
@@ -493,7 +353,7 @@
// Downloads a certain image to the standby partition of the devices
// Note that the call is expected to be non-blocking.
- rpc DownloadImageToDevice (DeviceImageDownloadRequest) returns (DeviceImageResponse) {
+ rpc DownloadImageToDevice (device.DeviceImageDownloadRequest) returns (device.DeviceImageResponse) {
option (google.api.http) = {
get: "/api/v1/devices/images/download_images"
};
@@ -501,7 +361,7 @@
// Get image status on a number of devices devices
// Polled from northbound systems to get state of download/activate/commit
- rpc GetImageStatus (DeviceImageRequest) returns (DeviceImageResponse) {
+ rpc GetImageStatus (device.DeviceImageRequest) returns (device.DeviceImageResponse) {
option (google.api.http) = {
get: "/api/v1/devices/images/images_status"
};
@@ -511,14 +371,14 @@
// To be used carefully, stops any further operations for the Image on the given devices
// Might also stop if possible existing work, but no guarantees are given,
// depends on implementation and procedure status.
- rpc AbortImageUpgradeToDevice (DeviceImageRequest) returns (DeviceImageResponse) {
+ rpc AbortImageUpgradeToDevice (device.DeviceImageRequest) returns (device.DeviceImageResponse) {
option (google.api.http) = {
get: "/api/v1/devices/images/abort_upgrade_images"
};
}
// Get Both Active and Standby image for a given device
- rpc GetOnuImages (common.ID) returns (OnuImages) {
+ rpc GetOnuImages (common.ID) returns (device.OnuImages) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/onu_images"
};
@@ -531,7 +391,7 @@
// If no reboot, then a reboot is required to make the
// activated image running on device
// Note that the call is expected to be non-blocking.
- rpc ActivateImage (DeviceImageRequest) returns (DeviceImageResponse) {
+ rpc ActivateImage (device.DeviceImageRequest) returns (device.DeviceImageResponse) {
option (google.api.http) = {
post: "/api/v1/devices/images/activate_images"
body: "*"
@@ -544,7 +404,7 @@
// If no reboot, then a reboot is required to make the
// activated image running on device upon next reboot
// Note that the call is expected to be non-blocking.
- rpc CommitImage (DeviceImageRequest) returns (DeviceImageResponse) {
+ rpc CommitImage (device.DeviceImageRequest) returns (device.DeviceImageResponse) {
option (google.api.http) = {
post: "/api/v1/devices/images/commit_images"
body: "*"
@@ -552,21 +412,21 @@
}
// List ports of a device
- rpc ListDevicePorts (common.ID) returns (Ports) {
+ rpc ListDevicePorts (common.ID) returns (device.Ports) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/ports"
};
}
// List pm config of a device
- rpc ListDevicePmConfigs (common.ID) returns (PmConfigs) {
+ rpc ListDevicePmConfigs (common.ID) returns (device.PmConfigs) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/pm_configs"
};
}
// Update the pm config of a device
- rpc UpdateDevicePmConfigs(voltha.PmConfigs) returns(google.protobuf.Empty) {
+ rpc UpdateDevicePmConfigs(device.PmConfigs) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/api/v1/devices/{id}/pm_configs"
body: "*"
@@ -588,26 +448,19 @@
}
// List device types known to Voltha
- rpc ListDeviceTypes(google.protobuf.Empty) returns(DeviceTypes) {
+ rpc ListDeviceTypes(google.protobuf.Empty) returns(device.DeviceTypes) {
option (google.api.http) = {
get: "/api/v1/device_types"
};
}
// Get additional information on a device type
- rpc GetDeviceType(common.ID) returns(DeviceType) {
+ rpc GetDeviceType(common.ID) returns(device.DeviceType) {
option (google.api.http) = {
get: "/api/v1/device_types/{id}"
};
}
- // List all device sharding groups
- rpc ListDeviceGroups(google.protobuf.Empty) returns(DeviceGroups) {
- option (google.api.http) = {
- get: "/api/v1/device_groups"
- };
- }
-
// Stream control packets to the dataplane
rpc StreamPacketsOut(stream openflow_13.PacketOut)
returns(google.protobuf.Empty) {
@@ -625,14 +478,7 @@
// This does not have an HTTP representation
}
- // Get additional information on a device group
- rpc GetDeviceGroup(common.ID) returns(DeviceGroup) {
- option (google.api.http) = {
- get: "/api/v1/device_groups/{id}"
- };
- }
-
- rpc CreateEventFilter(EventFilter) returns(EventFilter) {
+ rpc CreateEventFilter(event.EventFilter) returns(event.EventFilter) {
option (google.api.http) = {
post: "/api/v1/event_filters"
body: "*"
@@ -640,39 +486,39 @@
}
// Get all filters present for a device
- rpc GetEventFilter(common.ID) returns(EventFilters) {
+ rpc GetEventFilter(common.ID) returns(event.EventFilters) {
option (google.api.http) = {
get: "/api/v1/event_filters/{id}"
};
}
- rpc UpdateEventFilter(EventFilter) returns(EventFilter) {
+ rpc UpdateEventFilter(event.EventFilter) returns(event.EventFilter) {
option (google.api.http) = {
put: "/api/v1/event_filters/{id}"
body: "*"
};
}
- rpc DeleteEventFilter(EventFilter) returns(google.protobuf.Empty) {
+ rpc DeleteEventFilter(event.EventFilter) returns(google.protobuf.Empty) {
option (google.api.http) = {
delete: "/api/v1/event_filters/{id}"
};
}
// Get all the filters present
- rpc ListEventFilters(google.protobuf.Empty) returns(EventFilters) {
+ rpc ListEventFilters(google.protobuf.Empty) returns(event.EventFilters) {
option (google.api.http) = {
get: "/api/v1/event_filters"
};
}
- rpc GetImages(common.ID) returns(Images) {
+ rpc GetImages(common.ID) returns(device.Images) {
option (google.api.http) = {
get: "/api/v1/devices/{id}/images"
};
}
- rpc SelfTest(common.ID) returns(SelfTestResponse) {
+ rpc SelfTest(common.ID) returns(device.SelfTestResponse) {
option (google.api.http) = {
post: "/api/v1/devices/{id}/self_test"
};
@@ -693,40 +539,38 @@
}
// Simulate an Alarm
- rpc SimulateAlarm(SimulateAlarmRequest) returns(common.OperationResp) {
+ rpc SimulateAlarm(device.SimulateAlarmRequest) returns(common.OperationResp) {
option (google.api.http) = {
post: "/api/v1/devices/{id}/simulate_larm"
body: "*"
};
}
- rpc Subscribe (OfAgentSubscriber) returns (OfAgentSubscriber) {
- }
- rpc EnablePort(voltha.Port) returns(google.protobuf.Empty) {
+ rpc EnablePort(device.Port) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1/EnablePort"
body: "*"
};
}
- rpc DisablePort(voltha.Port) returns(google.protobuf.Empty) {
+ rpc DisablePort(device.Port) returns(google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1/DisablePort"
body: "*"
};
}
- rpc GetExtValue(common.ValueSpecifier) returns(common.ReturnValues) {
+ rpc GetExtValue(extension.ValueSpecifier) returns(extension.ReturnValues) {
option (google.api.http) = {
get: "/api/v1/GetExtValue"
};
}
- rpc SetExtValue(ValueSet) returns(google.protobuf.Empty) {
+ rpc SetExtValue(extension.ValueSet) returns(google.protobuf.Empty) {
option (google.api.http) = {
get: "/api/v1/SetExtValue"
};
}
// omci start and stop cli implementation
- rpc StartOmciTestAction(OmciTestRequest) returns(TestResponse) {
+ rpc StartOmciTestAction(omci.OmciTestRequest) returns(omci.TestResponse) {
option (google.api.http) = {
post: "/api/v1/start_omci_test"
body: "*"