Skip to content
Snippets Groups Projects
pnd.proto 3.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • Manuel Kieweg's avatar
    Manuel Kieweg committed
    syntax = "proto3";
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    package gosdn.pnd;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    import "google/protobuf/descriptor.proto";
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    import "github.com/openconfig/gnmi/proto/gnmi/gnmi.proto";
    
    import "gosdn/transport/transport.proto";
    import "gosdn/southbound/southbound.proto";
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    option go_package = "code.fbi.h-da.de/cocsn/api/go/gosdn/pnd";
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    service pnd {
      rpc Get(GetRequest) returns (GetResponse);
      rpc Set(SetRequest) returns (SetResponse);
    
      rpc Delete(DeleteRequest) returns (DeleteResponse);
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    message GetRequest {
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
    
      oneof request {
        getPnd pnd = 2;
        getOnd ond = 3;
        getSbi sbi = 4;
        getChange change = 5;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
        getPath path = 7;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      }
    
      string pid = 6;
    }
    
    message getPnd {}
    
    message getOnd {
      bool all = 1;
      repeated string did = 2;
    }
    
    message getSbi {
      bool all = 1;
      repeated string sid = 2;
    }
    
    message getChange {
      bool all = 1;
      repeated string cuid = 2;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    message getPath {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string did = 1;
      string path = 2;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    message GetResponse {
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
        PrincipalNetworkDomain pnd = 2;
    
        repeated OrchestratedNetworkingDevice ond = 3;
    
        repeated .gosdn.southbound.SouthboundInterface sbi = 5;
    
        repeated Change change = 7;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    message PrincipalNetworkDomain {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string id = 1;
      string name = 2;
      string description = 3;
    
      repeated OrchestratedNetworkingDevice ond = 4;
    
      repeated .gosdn.southbound.SouthboundInterface sbi = 5;
    
      repeated Change change = 6;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    message OrchestratedNetworkingDevice {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string id = 1;
      string name = 2;
    
      repeated gnmi.Notification device = 3;
    
      .gosdn.southbound.SouthboundInterface sbi = 4;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    message Change {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string id = 1;
      int64 age = 2;
      enum State {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
        PENDING = 0;
        COMMITTED = 1;
        CONFIRMED = 2;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
        INCONSISTENT = 3;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      }
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      State state = 3;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    message SetRequest {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
    
      repeated setOnd ond = 2;
      repeated setSbi sbi = 3;
      repeated setChange change = 4;
      repeated ChangeRequest changeRequest = 5;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string pid = 6;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      string address = 1;
    
      .gosdn.southbound.SouthboundInterface sbi = 2;
      string deviceName = 3;
      .gosdn.transport.TransportOption transportOption = 4;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      enum Operation {
        CREATE = 0;
        COMMIT = 1;
        CONFIRM = 2;
      }
      string cuid = 1;
      Operation op = 2;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    message SetResponse{
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
      enum status {
        OK = 0;
        ERROR = 1;
      }
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
      status Status = 2;
      repeated SetResponse responses = 3;
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    }
    
    message ChangeRequest {
      string id = 1;
      string path = 2;
      string value = 3;
      ApiOperation apiOp = 4;
    
    }
    
    enum ApiOperation {
      UPDATE = 0;
      REPLACE = 1;
      DELETE = 2;
    
    }
    
    message DeleteRequest {
      enum Type {
        OND = 0;
        SBI = 1;
        PND = 2;
      }
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
      Type type = 2;
      string uuid = 3;
    
      string pid = 4;
    
    }
    
    message DeleteResponse {
      int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
      enum status {
        OK = 0;
        ERROR = 1;
      }
      status Status = 2;
    }