// Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package pathcomp; import "context.proto"; service PathCompService { rpc Compute(PathCompRequest) returns (PathCompReply) {} } message Algorithm_ShortestPath {} message Algorithm_KShortestPath { uint32 k_inspection = 1; uint32 k_return = 2; } message Algorithm_KDisjointPath { uint32 num_disjoint = 1; } message PathCompRequest { repeated context.Service services = 1; oneof algorithm { Algorithm_ShortestPath shortest_path = 10; Algorithm_KShortestPath k_shortest_path = 11; Algorithm_KDisjointPath k_disjoint_path = 12; } } message PathCompReply { // Services requested completed with possible missing fields, and // sub-services required for supporting requested services on the // underlying layers. repeated context.Service services = 1; // Connections supporting the requested services and sub-services // required for the underlying layers. repeated context.Connection connections = 2; }