778 lines
15 KiB
Protocol Buffer
778 lines
15 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package core;
|
|
|
|
service CoreApi {
|
|
// session rpc
|
|
rpc CreateSession (CreateSessionRequest) returns (CreateSessionResponse) {
|
|
}
|
|
rpc DeleteSession (DeleteSessionRequest) returns (DeleteSessionResponse) {
|
|
}
|
|
rpc GetSessions (GetSessionsRequest) returns (GetSessionsResponse) {
|
|
}
|
|
rpc GetSession (GetSessionRequest) returns (GetSessionResponse) {
|
|
}
|
|
rpc GetSessionOptions (GetSessionOptionsRequest) returns (GetSessionOptionsResponse) {
|
|
}
|
|
rpc SetSessionOptions (SetSessionOptionsRequest) returns (SetSessionOptionsResponse) {
|
|
}
|
|
rpc GetSessionLocation (GetSessionLocationRequest) returns (GetSessionLocationResponse) {
|
|
}
|
|
rpc SetSessionLocation (SetSessionLocationRequest) returns (SetSessionLocationResponse) {
|
|
}
|
|
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
|
}
|
|
|
|
// event streams
|
|
rpc NodeEvents (NodeEventsRequest) returns (stream NodeEvent) {
|
|
}
|
|
rpc LinkEvents (LinkEventsRequest) returns (stream LinkEvent) {
|
|
}
|
|
rpc SessionEvents (SessionEventsRequest) returns (stream SessionEvent) {
|
|
}
|
|
rpc ConfigEvents (ConfigEventsRequest) returns (stream ConfigEvent) {
|
|
}
|
|
rpc ExceptionEvents (ExceptionEventsRequest) returns (stream ExceptionEvent) {
|
|
}
|
|
rpc FileEvents (FileEventsRequest) returns (stream FileEvent) {
|
|
}
|
|
|
|
// node rpc
|
|
rpc CreateNode (CreateNodeRequest) returns (CreateNodeResponse) {
|
|
}
|
|
rpc GetNode (GetNodeRequest) returns (GetNodeResponse) {
|
|
}
|
|
rpc EditNode (EditNodeRequest) returns (EditNodeResponse) {
|
|
}
|
|
rpc DeleteNode (DeleteNodeRequest) returns (DeleteNodeResponse) {
|
|
}
|
|
|
|
// link rpc
|
|
rpc GetNodeLinks (GetNodeLinksRequest) returns (GetNodeLinksResponse) {
|
|
}
|
|
rpc CreateLink (CreateLinkRequest) returns (CreateLinkResponse) {
|
|
}
|
|
rpc EditLink (EditLinkRequest) returns (EditLinkResponse) {
|
|
}
|
|
rpc DeleteLink (DeleteLinkRequest) returns (DeleteLinkResponse) {
|
|
}
|
|
|
|
// hook rpc
|
|
rpc GetHooks (GetHooksRequest) returns (GetHooksResponse) {
|
|
}
|
|
rpc AddHook (AddHookRequest) returns (AddHookResponse) {
|
|
}
|
|
|
|
// mobility rpc
|
|
rpc GetMobilityConfigs (GetMobilityConfigsRequest) returns (GetMobilityConfigsResponse) {
|
|
}
|
|
rpc GetMobilityConfig (GetMobilityConfigRequest) returns (GetMobilityConfigResponse) {
|
|
}
|
|
rpc SetMobilityConfig (SetMobilityConfigRequest) returns (SetMobilityConfigResponse) {
|
|
}
|
|
rpc MobilityAction (MobilityActionRequest) returns (MobilityActionResponse) {
|
|
}
|
|
|
|
|
|
// service rpc
|
|
rpc GetServices (GetServicesRequest) returns (GetServicesResponse) {
|
|
}
|
|
rpc GetServiceDefaults (GetServiceDefaultsRequest) returns (GetServiceDefaultsResponse) {
|
|
}
|
|
rpc SetServiceDefaults (SetServiceDefaultsRequest) returns (SetServiceDefaultsResponse) {
|
|
}
|
|
rpc GetNodeService (GetNodeServiceRequest) returns (GetNodeServiceResponse) {
|
|
}
|
|
rpc GetNodeServiceFile (GetNodeServiceFileRequest) returns (GetNodeServiceFileResponse) {
|
|
}
|
|
rpc SetNodeService (SetNodeServiceRequest) returns (SetNodeServiceResponse) {
|
|
}
|
|
rpc SetNodeServiceFile (SetNodeServiceFileRequest) returns (SetNodeServiceFileResponse) {
|
|
}
|
|
rpc ServiceAction (ServiceActionRequest) returns (ServiceActionResponse) {
|
|
}
|
|
|
|
// wlan rpc
|
|
rpc GetWlanConfig (GetWlanConfigRequest) returns (GetWlanConfigResponse) {
|
|
}
|
|
rpc SetWlanConfig (SetWlanConfigRequest) returns (SetWlanConfigResponse) {
|
|
}
|
|
|
|
// emane rpc
|
|
rpc GetEmaneConfig (GetEmaneConfigRequest) returns (GetEmaneConfigResponse) {
|
|
}
|
|
rpc SetEmaneConfig (SetEmaneConfigRequest) returns (SetEmaneConfigResponse) {
|
|
}
|
|
rpc GetEmaneModels (GetEmaneModelsRequest) returns (GetEmaneModelsResponse) {
|
|
}
|
|
rpc GetEmaneModelConfig (GetEmaneModelConfigRequest) returns (GetEmaneModelConfigResponse) {
|
|
}
|
|
rpc SetEmaneModelConfig (SetEmaneModelConfigRequest) returns (SetEmaneModelConfigResponse) {
|
|
}
|
|
rpc GetEmaneModelConfigs (GetEmaneModelConfigsRequest) returns (GetEmaneModelConfigsResponse) {
|
|
}
|
|
|
|
// xml rpc
|
|
rpc SaveXml (SaveXmlRequest) returns (SaveXmlResponse) {
|
|
}
|
|
rpc OpenXml (OpenXmlRequest) returns (OpenXmlResponse) {
|
|
}
|
|
}
|
|
|
|
// rpc request/response messages
|
|
message CreateSessionRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message CreateSessionResponse {
|
|
int32 id = 1;
|
|
SessionState state = 2;
|
|
}
|
|
|
|
message DeleteSessionRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message DeleteSessionResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetSessionsRequest {
|
|
}
|
|
|
|
message GetSessionsResponse {
|
|
repeated SessionSummary sessions = 1;
|
|
}
|
|
|
|
message GetSessionRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message GetSessionResponse {
|
|
Session session = 1;
|
|
}
|
|
|
|
message GetSessionOptionsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message GetSessionOptionsResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message SetSessionOptionsRequest {
|
|
int32 id = 1;
|
|
map<string, string> config = 2;
|
|
}
|
|
|
|
message SetSessionOptionsResponse {
|
|
bool result = 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 NodeEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message NodeEvent {
|
|
Node node = 1;
|
|
}
|
|
|
|
message LinkEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message LinkEvent {
|
|
MessageType message_type = 1;
|
|
Link link = 2;
|
|
}
|
|
|
|
message SessionEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message SessionEvent {
|
|
int32 node = 1;
|
|
int32 event = 2;
|
|
string name = 3;
|
|
bytes data = 4;
|
|
float time = 5;
|
|
int32 session = 6;
|
|
}
|
|
|
|
message ConfigEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message ConfigEvent {
|
|
MessageType message_type = 1;
|
|
int32 node = 2;
|
|
string object = 3;
|
|
int32 type = 4;
|
|
repeated int32 data_types = 5;
|
|
string data_values = 6;
|
|
string captions = 7;
|
|
string bitmap = 8;
|
|
string possible_values = 9;
|
|
string groups = 10;
|
|
string session = 11;
|
|
int32 interface = 12;
|
|
int32 network_id = 13;
|
|
string opaque = 14;
|
|
}
|
|
|
|
message ExceptionEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message ExceptionEvent {
|
|
int32 node = 1;
|
|
int32 session = 2;
|
|
ExceptionLevel level = 3;
|
|
string source = 4;
|
|
string date = 5;
|
|
string text = 6;
|
|
string opaque = 7;
|
|
}
|
|
|
|
message FileEventsRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message FileEvent {
|
|
MessageType message_type = 1;
|
|
int32 node = 2;
|
|
string name = 3;
|
|
string mode = 4;
|
|
int32 number = 5;
|
|
string type = 6;
|
|
string source = 7;
|
|
int32 session = 8;
|
|
bytes data = 9;
|
|
bytes compressed_data = 10;
|
|
}
|
|
|
|
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 GetHooksRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetHooksResponse {
|
|
repeated Hook hooks = 1;
|
|
}
|
|
|
|
message AddHookRequest {
|
|
int32 session = 1;
|
|
Hook hook = 2;
|
|
}
|
|
|
|
message AddHookResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetMobilityConfigsRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetMobilityConfigsResponse {
|
|
message MobilityConfig {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
map<int32, MobilityConfig> configs = 1;
|
|
}
|
|
|
|
message GetMobilityConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message GetMobilityConfigResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message SetMobilityConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
map<string, string> config = 3;
|
|
}
|
|
|
|
message SetMobilityConfigResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message MobilityActionRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
MobilityAction action = 3;
|
|
}
|
|
|
|
message MobilityActionResponse {
|
|
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 GetNodeServiceFileRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string service = 3;
|
|
string file = 4;
|
|
}
|
|
|
|
message GetNodeServiceFileResponse {
|
|
bytes data = 1;
|
|
}
|
|
|
|
message SetNodeServiceRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string service = 3;
|
|
repeated string startup = 4;
|
|
repeated string validate = 5;
|
|
repeated string shutdown = 6;
|
|
}
|
|
|
|
message SetNodeServiceResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message SetNodeServiceFileRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string service = 3;
|
|
string file = 4;
|
|
bytes data = 5;
|
|
}
|
|
|
|
message SetNodeServiceFileResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message ServiceActionRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string service = 3;
|
|
ServiceAction action = 4;
|
|
}
|
|
|
|
message ServiceActionResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetWlanConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message GetWlanConfigResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message SetWlanConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
map<string, string> config = 3;
|
|
}
|
|
|
|
message SetWlanConfigResponse {
|
|
bool result = 1;
|
|
}
|
|
|
|
message GetEmaneConfigRequest {
|
|
int32 session = 1;
|
|
}
|
|
|
|
message GetEmaneConfigResponse {
|
|
repeated ConfigGroup groups = 1;
|
|
}
|
|
|
|
message SetEmaneConfigRequest {
|
|
int32 session = 1;
|
|
map<string, string> config = 2;
|
|
}
|
|
|
|
message SetEmaneConfigResponse {
|
|
bool result = 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 SetEmaneModelConfigRequest {
|
|
int32 session = 1;
|
|
int32 id = 2;
|
|
string model = 3;
|
|
map<string, string> config = 4;
|
|
}
|
|
|
|
message SetEmaneModelConfigResponse {
|
|
bool result = 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 MessageType {
|
|
NOTHING = 0;
|
|
ADD = 1;
|
|
DELETE = 2;
|
|
CRI = 4;
|
|
LOCAL = 8;
|
|
STRING = 16;
|
|
TEXT = 32;
|
|
TTY = 64;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
enum ServiceAction {
|
|
START = 0;
|
|
STOP = 1;
|
|
RESTART = 2;
|
|
VALIDATE = 3;
|
|
}
|
|
|
|
enum MobilityAction {
|
|
MOBILITY_START = 0;
|
|
MOBILITY_PAUSE = 1;
|
|
MOBILITY_STOP = 2;
|
|
}
|
|
|
|
enum ExceptionLevel {
|
|
EXCEPTION_DEFAULT = 0;
|
|
FATAL = 1;
|
|
ERROR = 2;
|
|
WARNING = 3;
|
|
NOTICE = 4;
|
|
}
|
|
|
|
message Hook {
|
|
SessionState state = 1;
|
|
string file = 2;
|
|
bytes data = 3;
|
|
}
|
|
|
|
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;
|
|
SessionState state = 2;
|
|
repeated Node nodes = 3;
|
|
repeated Link links = 4;
|
|
}
|
|
|
|
message SessionSummary {
|
|
int32 id = 1;
|
|
SessionState 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;
|
|
}
|