Link.proto 1.4 KB
syntax = "proto3";
option java_package = "org.onosproject.grpc.net";

package Link;

enum LinkType {
  // Signifies that this is a direct single-segment link.
  DIRECT = 0;

  // Signifies that this link is potentially comprised from multiple
  //underlying segments or hops, and as such should be used to tag
  // links traversing optical paths, tunnels or intervening 'dark'
  // switches.
  INDIRECT = 1;

  // Signifies that this link is an edge, i.e. host link.
  EDGE = 2;

  // Signifies that this link represents a logical link backed by
  // some form of a tunnel, e.g., GRE, MPLS, ODUk, OCH.
  TUNNEL = 3;

  // Signifies that this link is realized by fiber (either single channel or WDM).
  OPTICAL = 4;

  // Signifies that this link is a virtual link or a pseudo-wire.
  VIRTUAL = 5;
}

message ConnectPoint {
  oneof element_id {
    // DeviceID as String DeviceId#toString
    string device_id = 1;

    // TODO add support to other element_id if required
  }
  // PortNumber as String PortNumber#toString
  string port_number = 2;
}

enum LinkState {
    ACTIVE = 0;
    INACTIVE = 1;
}

// Corresponds to org.onosproject.net.Link.
message LinkCore {
  LinkState state = 1;
  ConnectPoint src = 2;
  ConnectPoint dst = 3;
  LinkType type = 4;
  map<string, string> annotations = 5;
}

message LinkDescription {
  ConnectPoint src = 1;
  ConnectPoint dst = 2;
  LinkType type = 3;
  map<string, string> annotations = 4;
}