aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/incubator/rpc-grpc/src/main/proto/Device.proto
blob: aae46d9606d960113313aa22900d955b16b75b67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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<string, string> 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);
}