blob: 755b92a2d8cc8be0ac10bc6e225f4e5d61e8614c [file] [log] [blame]
syntax = "proto3";
option go_package = "github.com/opencord/voltha-protos/v4/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/openflow_13.proto";
import public "voltha_protos/logical_device.proto";
import "google/protobuf/timestamp.proto";
import "voltha_protos/tech_profile.proto";
package voltha;
message StrType {
string val = 1;
}
message IntType {
int64 val = 1;
}
message BoolType {
bool val = 1;
}
message Packet {
bytes payload = 1;
}
message ErrorCode {
enum codes {
UNSUPPORTED_REQUEST = 0;
INVALID_PARAMETERS = 1;
DEADLINE_EXCEEDED = 2;
}
}
message Error {
ErrorCode.codes code = 1;
string reason = 2;
}
enum MessageType {
REQUEST = 0;
RESPONSE = 1;
DEVICE_DISCOVERED=2;
}
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 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 SwitchCapability {
openflow_13.ofp_desc desc = 1;
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 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 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 InterAdapterOmciMessage {
bytes message = 1; // OMCI_REQUEST or OMCI_RESPONSE
common.ConnectStatus.Types connect_status = 2;
voltha.Device.ProxyAddress proxy_address = 3;
}
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;
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
}
}
message InterAdapterDeleteGemPortMessage {
uint32 uni_id = 1;
string tp_instance_path = 2;
uint32 gem_port_id = 3;
}
message InterAdapterDeleteTcontMessage {
uint32 uni_id = 1;
string tp_instance_path = 2;
uint32 alloc_id = 3;
}
message InterAdapterResponseBody {
bool status = 1;
oneof payload {
google.protobuf.Any body = 2;
InterAdapterOmciMessage omci = 3; // OMCI_REQUEST or OMCI_RESPONSE
}
}
message InterAdapterMessage {
InterAdapterHeader header = 1;
google.protobuf.Any body = 2;
}