blob: b5fcbfc3750164408f9bccea61be806e26ca009e [file] [log] [blame]
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;
}