syntax = "proto3"; option java_package = "org.onosproject.grpc"; import "Port.proto"; package Device; enum DeviceType { OTHER = 0; SWITCH = 1; ROUTER = 2; ROADM = 3; OTN = 4; ROADM_OTN = 5; FIREWALL = 6; BALANCER = 7; IPS = 8; IDS = 9; CONTROLLER = 10; VIRTUAL = 11; FIBER_SWITCH = 12; MICROWAVE = 13; } message DeviceDescription { string device_Uri = 1; DeviceType type = 2; string manufacturer = 3; string hw_version = 4; string sw_version = 5; string serial_number = 6; string chassis_id = 7; map annotations = 8; } enum MastershipRole { NONE = 0; MASTER = 1; STANDBY = 2; } 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); }