Newer
Older
syntax = "proto3";
package context;
service ContextService {
rpc GetContextIds (Empty ) returns (ContextIdList ) {}
rpc GetContexts (Empty ) returns (ContextList ) {}
rpc GetContext (ContextId ) returns (Context ) {}
rpc SetContext (Context ) returns (ContextId ) {}
rpc DeleteContext (ContextId ) returns (Empty ) {}
rpc GetTopologyIds(ContextId ) returns (TopologyIdList) {}
rpc GetTopologies (ContextId ) returns (TopologyList ) {}
rpc GetTopology (TopologyId) returns (Topology ) {}
rpc SetTopology (Topology ) returns (TopologyId ) {}
rpc DeleteTopology(TopologyId) returns (Empty ) {}
rpc GetDeviceIds (Empty ) returns (DeviceIdList ) {}
rpc GetDevices (Empty ) returns (DeviceList ) {}
rpc GetDevice (DeviceId ) returns (Device ) {}
rpc SetDevice (Device ) returns (DeviceId ) {}
rpc RemoveDevice (DeviceId ) returns (Empty ) {}
rpc GetLinkIds (Empty ) returns (LinkIdList ) {}
rpc GetLinks (Empty ) returns (LinkList ) {}
rpc GetLink (LinkId ) returns (Link ) {}
rpc SetLink (Link ) returns (LinkId ) {}
rpc DeleteLink (LinkId ) returns (Empty ) {}
rpc GetServiceIds (ContextId ) returns (ServiceIdList ) {}
rpc GetServices (ContextId ) returns (ServiceList ) {}
rpc GetService (ServiceId ) returns (Service ) {}
rpc SetService (Service ) returns (ServiceId ) {}
rpc DeleteService (ServiceId ) returns (Empty ) {}
}
// ----- Generic -------------------------------------------------------------------------------------------------------
message Empty {}
message Uuid {
string uuid = 1;
// ----- Context -------------------------------------------------------------------------------------------------------
message ContextId {
Uuid context_uuid = 1;
ContextId context_id = 1;
repeated Topology topology = 2;
TeraFlowController controller = 3;
message ContextIdList {
repeated ContextId context_ids = 1;
}
message ContextList {
repeated Context contexts = 1;
}
// ----- Topology ------------------------------------------------------------------------------------------------------
message TopologyId {
ContextId context_id = 1;
Uuid topology_uuid = 2;
TopologyId topology_id = 1;
repeated Device devices = 2;
repeated Link links = 3;
message TopologyIdList {
repeated TopologyId topology_ids = 1;
message TopologyList {
repeated Topology topologies = 1;
// ----- Device --------------------------------------------------------------------------------------------------------
message DeviceId {
Uuid device_uuid = 1;
}
message Device {
DeviceId device_id = 1;
string device_type = 2;
DeviceConfig device_config = 3;
DeviceOperationalStatus devive_operational_status = 4;
repeated DeviceDriver device_drivers = 5;
repeated EndPoint endpoints = 6;
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
repeated ConfigRule config_rules = 1;
}
enum DeviceDriver {
DRIVER_UNDEFINED = 0; // also used for emulated
DRIVER_OPENCONFIG = 1;
DRIVER_TRANSPORT_API = 2;
DRIVER_P4 = 3;
DRIVER_IETF_NETWORK_TOPOLOGY = 4;
DRIVER_ONF_TR_352 = 5;
}
enum DeviceOperationalStatus {
KEEP_STATUS = 0; // Do not change operational status of device (used in configure)
DISABLED = -1;
ENABLED = 1;
}
message DeviceIdList {
repeated DeviceId device_ids = 1;
}
message DeviceList {
repeated Device devices = 1;
}
// ----- Link ----------------------------------------------------------------------------------------------------------
message LinkId {
Uuid link_uuid = 1;
}
message Link {
LinkId link_id = 1;
repeated EndPointId endpoints = 2;
}
message LinkIdList {
repeated LinkId link_ids = 1;
}
message LinkList {
repeated Link links = 1;
}
// ----- Service -------------------------------------------------------------------------------------------------------
message ServiceId {
ContextId context_id = 1;
Uuid service_uuid = 2;
}
message Service {
ServiceId service_id = 1;
ServiceType service_type = 2;
repeated EndPointId endpoints = 3;
repeated Constraint constraints = 4;
ServiceState service_state = 5;
ServiceConfig service_config = 6;
}
enum ServiceType {
SERVICETYPE_UNKNOWN = 0;
SERVICETYPE_L3NM = 1;
SERVICETYPE_L2NM = 2;
SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3;
}
enum ServiceStateEnum {
SERVICESTATUS_PLANNED = 0;
SERVICESTATUS_ACTIVE = 1;
SERVICESTATUS_PENDING_REMOVAL = 2;
}
message ServiceState {
ServiceStateEnum service_state = 1;
}
message ServiceConfig {
repeated ConfigRule config_rules = 1;
}
message ServiceIdList {
repeated ServiceId service_ids = 1;
}
message ServiceList {
repeated Service services = 1;
}
// ----- Endpoint ------------------------------------------------------------------------------------------------------
message EndPointId {
TopologyId topology_id = 1;
DeviceId device_id = 2;
Uuid endpoint_uuid = 3;
// ----- Configuration -------------------------------------------------------------------------------------------------
enum ConfigAction {
CONFIGACTION_UNDEFINED = 0;
CONFIGACTION_SET = 1;
CONFIGACTION_DELETE = 2;
message ConfigRule {
ConfigAction action = 1;
string resource_key = 2;
string resource_value = 3;
// ----- Constraint ----------------------------------------------------------------------------------------------------
message Constraint {
string constraint_type = 1;
string constraint_value = 2;
// ----- Connection ----------------------------------------------------------------------------------------------------
message ConnectionId {
Uuid connection_uuid = 1;
message Connection {
ConnectionId connection_id = 1;
ServiceId related_service_id = 2;
repeated EndPointId path = 3;
}
message ConnectionIdList {
repeated ConnectionId connection_ids = 1;
message ConnectionList {
repeated Connection connections = 1;
}
// ----- Miscellaneous -------------------------------------------------------------------------------------------------
ContextId context_id = 1;
string ip_address = 2;
uint32 port = 3;