439 lines
8.4 KiB
Protocol Buffer
439 lines
8.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package core;
|
|
|
|
service CoreApi {
|
|
rpc CreateSession (CreateSessionRequest) returns (CreateSessionResponse) {
|
|
}
|
|
rpc DeleteSession (DeleteSessionRequest) returns (DeleteSessionResponse) {
|
|
}
|
|
rpc GetSessions (SessionsRequest) returns (SessionsResponse) {
|
|
}
|
|
rpc GetSession (SessionRequest) returns (SessionResponse) {
|
|
}
|
|
rpc GetSessionOptions (SessionOptionsRequest) returns (SessionOptionsResponse) {
|
|
}
|
|
rpc GetSessionLocation (GetSessionLocationRequest) returns (GetSessionLocationResponse) {
|
|
}
|
|
rpc SetSessionLocation (SetSessionLocationRequest) returns (SetSessionLocationResponse) {
|
|
}
|
|
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
|
}
|
|
rpc CreateNode (CreateNodeRequest) returns (CreateNodeResponse) {
|
|
}
|
|
rpc GetNode (GetNodeRequest) returns (GetNodeResponse) {
|
|
}
|
|
rpc EditNode (EditNodeRequest) returns (EditNodeResponse) {
|
|
}
|
|
rpc DeleteNode (DeleteNodeRequest) returns (DeleteNodeResponse) {
|
|
}
|
|
rpc GetNodeLinks (GetNodeLinksRequest) returns (GetNodeLinksResponse) {
|
|
}
|
|
rpc CreateLink (CreateLinkRequest) returns (CreateLinkResponse) {
|
|
}
|
|
rpc EditLink (EditLinkRequest) returns (EditLinkResponse) {
|
|
}
|
|
rpc DeleteLink (DeleteLinkRequest) returns (DeleteLinkResponse) {
|
|
}
|
|
rpc GetServices (GetServicesRequest) returns (GetServicesResponse) {
|
|
}
|
|
rpc GetServiceDefaults (GetServiceDefaultsRequest) returns (GetServiceDefaultsResponse) {
|
|
}
|
|
rpc SetServiceDefaults (SetServiceDefaultsRequest) returns (SetServiceDefaultsResponse) {
|
|
}
|
|
rpc GetNodeService (GetNodeServiceRequest) returns (GetNodeServiceResponse) {
|
|
}
|
|
rpc GetEmaneConfig (GetEmaneConfigRequest) returns (GetEmaneConfigResponse) {
|
|
}
|
|
rpc GetEmaneModels (GetEmaneModelsRequest) returns (GetEmaneModelsResponse) {
|
|
}
|
|
rpc GetEmaneModelConfig (GetEmaneModelConfigRequest) returns (GetEmaneModelConfigResponse) {
|
|
}
|
|
rpc GetEmaneModelConfigs (GetEmaneModelConfigsRequest) returns (GetEmaneModelConfigsResponse) {
|
|
}
|
|
rpc SaveXml (SaveXmlRequest) returns (SaveXmlResponse) {
|
|
}
|
|
rpc OpenXml (OpenXmlRequest) returns (OpenXmlResponse) {
|
|
}
|
|
}
|
|
|
|
// rpc request/response messages
|
|
message CreateSessionRequest {
|
|
|
|
}
|
|
|
|
message CreateSessionResponse {
|
|
int32 id = 1;
|
|
int32 state = 2;
|
|
}
|
|
|
|
message DeleteSessionRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message DeleteSessionResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message SessionsRequest {
|
|
}
|
|
|
|
message SessionsResponse {
|
|
repeated Session sessions = 1;
|
|
}
|
|
|
|
message SessionRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message SessionResponse {
|
|
int32 state = 1;
|
|
repeated Node nodes = 2;
|
|
repeated Link links = 3;
|
|
}
|
|
|
|
message SessionOptionsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message SessionOptionsResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message GetSessionLocationRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message GetSessionLocationResponse {
|
|
Position position = 1;
|
|
float scale = 2;
|
|
}
|
|
|
|
message SetSessionLocationRequest {
|
|
int32 id = 1;
|
|
Position position = 2;
|
|
float scale = 3;
|
|
}
|
|
|
|
message SetSessionLocationResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message SetSessionStateRequest {
|
|
int32 id = 1;
|
|
SessionState state = 2;
|
|
}
|
|
|
|
message SetSessionStateResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message CreateNodeRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
NodeType type = 3;
|
|
string name = 4;
|
|
string model = 5;
|
|
string icon = 6;
|
|
repeated string services = 7;
|
|
Position position = 8;
|
|
string emane = 9;
|
|
string opaque = 10;
|
|
}
|
|
|
|
message CreateNodeResponse {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message GetNodeRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message GetNodeResponse {
|
|
Node node = 1;
|
|
repeated Interface interfaces = 2;
|
|
}
|
|
|
|
message EditNodeRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
Position position = 3;
|
|
}
|
|
|
|
message EditNodeResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message DeleteNodeRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message DeleteNodeResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetNodeLinksRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message GetNodeLinksResponse {
|
|
repeated Link links = 1;
|
|
}
|
|
|
|
message CreateLinkRequest {
|
|
int32 session = 1;
|
|
Link link = 2;
|
|
}
|
|
|
|
message CreateLinkResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message EditLinkRequest {
|
|
int32 session = 1;
|
|
int32 node_one = 2;
|
|
int32 node_two = 3;
|
|
int32 interface_one = 4;
|
|
int32 interface_two = 5;
|
|
LinkOptions options = 6;
|
|
}
|
|
|
|
message EditLinkResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message DeleteLinkRequest {
|
|
int32 session = 1;
|
|
int32 node_one = 2;
|
|
int32 node_two = 3;
|
|
int32 interface_one = 4;
|
|
int32 interface_two = 5;
|
|
}
|
|
|
|
message DeleteLinkResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetServicesRequest {
|
|
|
|
}
|
|
|
|
message GetServicesResponse {
|
|
repeated Service services = 1;
|
|
}
|
|
|
|
message GetServiceDefaultsRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetServiceDefaultsResponse {
|
|
repeated ServiceDefaults defaults = 1;
|
|
}
|
|
|
|
message SetServiceDefaultsRequest {
|
|
int32 session = 1;
|
|
repeated ServiceDefaults defaults = 2;
|
|
}
|
|
|
|
message SetServiceDefaultsResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetNodeServiceRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string service = 3;
|
|
}
|
|
|
|
message GetNodeServiceResponse {
|
|
NodeServiceData service = 1;
|
|
}
|
|
|
|
message GetEmaneConfigRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetEmaneConfigResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message GetEmaneModelsRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetEmaneModelsResponse {
|
|
repeated string models = 1;
|
|
}
|
|
|
|
message GetEmaneModelConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string model = 3;
|
|
}
|
|
|
|
message GetEmaneModelConfigResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message GetEmaneModelConfigsRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetEmaneModelConfigsResponse {
|
|
message ModelConfig {
|
|
string model = 1;
|
|
repeated ConfigGroup groups = 2;
|
|
}
|
|
map<int32, ModelConfig> configs = 1;
|
|
}
|
|
|
|
message SaveXmlRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message SaveXmlResponse {
|
|
bytes data = 1;
|
|
}
|
|
|
|
message OpenXmlRequest {
|
|
bytes data = 1;
|
|
}
|
|
|
|
message OpenXmlResponse {
|
|
bool result = 1;
|
|
int32 session = 2;
|
|
}
|
|
|
|
// data structures for messages below
|
|
enum SessionState {
|
|
NONE = 0;
|
|
DEFINITION = 1;
|
|
CONFIGURATION = 2;
|
|
INSTANTIATION = 3;
|
|
RUNTIME = 4;
|
|
DATACOLLECT = 5;
|
|
SHUTDOWN = 6;
|
|
}
|
|
|
|
enum NodeType {
|
|
DEFAULT = 0;
|
|
PHYSICAL = 1;
|
|
TBD = 3;
|
|
SWITCH = 4;
|
|
HUB = 5;
|
|
WIRELESS_LAN = 6;
|
|
RJ45 = 7;
|
|
TUNNEL = 8;
|
|
KTUNNEL = 9;
|
|
EMANE = 10;
|
|
TAP_BRIDGE = 11;
|
|
PEER_TO_PEER = 12;
|
|
CONTROL_NET = 13;
|
|
EMANE_NET = 14;
|
|
}
|
|
|
|
enum ServiceValidationMode {
|
|
BLOCKING = 0;
|
|
NON_BLOCKING = 1;
|
|
TIMER = 2;
|
|
}
|
|
|
|
message ServiceDefaults {
|
|
string node_type = 1;
|
|
repeated string services = 2;
|
|
}
|
|
|
|
message Service {
|
|
string group = 1;
|
|
string name = 2;
|
|
}
|
|
|
|
message NodeServiceData {
|
|
repeated string executables = 1;
|
|
repeated string dependencies = 2;
|
|
repeated string dirs = 3;
|
|
repeated string configs = 4;
|
|
repeated string startup = 5;
|
|
repeated string validate = 6;
|
|
ServiceValidationMode validation_mode = 7;
|
|
int32 validation_timer = 8;
|
|
repeated string shutdown = 9;
|
|
string meta = 10;
|
|
}
|
|
|
|
message ConfigGroup {
|
|
string name = 1;
|
|
repeated ConfigOption options = 2;
|
|
}
|
|
|
|
message ConfigOption {
|
|
string label = 1;
|
|
string name = 2;
|
|
string value = 3;
|
|
int32 type = 4;
|
|
repeated string select = 5;
|
|
}
|
|
|
|
message Session {
|
|
int32 id = 1;
|
|
int32 state = 2;
|
|
int32 nodes = 3;
|
|
}
|
|
|
|
message Node {
|
|
int32 id = 1;
|
|
string name = 2;
|
|
int32 type = 3;
|
|
string model = 4;
|
|
Position position = 5;
|
|
repeated string services = 6;
|
|
string emane = 7;
|
|
}
|
|
|
|
message Link {
|
|
int32 node_one = 1;
|
|
int32 node_two = 2;
|
|
int32 type = 3;
|
|
Interface interface_one = 4;
|
|
Interface interface_two = 5;
|
|
LinkOptions options = 6;
|
|
}
|
|
|
|
message LinkOptions {
|
|
string opaque = 1;
|
|
float jitter = 2;
|
|
string key = 3;
|
|
float mburst = 4;
|
|
float mer = 5;
|
|
float per = 6;
|
|
float bandwidth = 7;
|
|
float burst = 8;
|
|
float delay = 9;
|
|
float dup = 10;
|
|
bool unidirectional = 11;
|
|
}
|
|
|
|
message Interface {
|
|
int32 id = 1;
|
|
string name = 2;
|
|
string mac = 3;
|
|
string ip4 = 4;
|
|
int32 ip4mask = 5;
|
|
string ip6 = 6;
|
|
int32 ip6mask = 7;
|
|
int32 netid = 8;
|
|
int32 flowid = 9;
|
|
int32 mtu = 10;
|
|
}
|
|
|
|
message Position {
|
|
float x = 1;
|
|
float y = 2;
|
|
float z = 3;
|
|
float lat = 4;
|
|
float lon = 5;
|
|
float alt = 6;
|
|
}
|