DeviceService.proto 2.26 KB
syntax = "proto3";
option java_package = "org.onosproject.grpc.net.device";

import "Device.proto";
import "Port.proto";

package Device;

message DeviceConnected {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  DeviceDescription device_description = 2;
}

message DeviceDisconnected {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
}

message UpdatePorts {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  repeated Port.PortDescription port_descriptions= 2;
}

message PortStatusChanged {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  Port.PortDescription port_description= 2;
}

message ReceivedRoleReply {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  MastershipRole requested = 2;
  MastershipRole response = 3;
}

message UpdatePortStatistics {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  repeated Port.PortStatistics port_statistics = 2;
}

message RegisterProvider {
  // DeviceProvider's ProviderId scheme
  string provider_scheme = 1;
}

message DeviceProviderServiceMsg {
  oneof method {
    DeviceConnected device_connected= 1;
    DeviceDisconnected device_disconnected = 2;
    UpdatePorts update_ports= 3;
    PortStatusChanged port_status_changed = 4;
    ReceivedRoleReply received_role_reply = 5;
    UpdatePortStatistics update_port_statistics = 6;

    // This message is for return value of DeviceProvider#isReachable
    IsReachableResponse is_reachable_response = 7;

    // This MUST be the 1st message over the stream
    RegisterProvider register_provider = 8;
  }
}

message TriggerProbe {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
}

message RoleChanged {
  // DeviceID as String DeviceId#toString
  string device_id = 1;
  MastershipRole new_role = 2;
}

message IsReachableRequest {
  int32 xid = 1;
  // DeviceID as String DeviceId#toString
  string device_id = 2;
}

message IsReachableResponse {
  int32 xid = 1;
  bool is_reachable = 2;
}

message DeviceProviderMsg {
  oneof method {
    TriggerProbe trigger_probe = 1;
    RoleChanged role_changed = 2;
    IsReachableRequest is_reachable_request= 3;
  }
}

service DeviceProviderRegistryRpc {
  rpc Register(stream DeviceProviderServiceMsg) returns (stream DeviceProviderMsg);
}