/* * Copyright 2015 Open Networking Laboratory * * 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. */ package org.onosproject.segmentrouting; import java.util.List; /** * Segment Routing Service for REST API. */ public interface SegmentRoutingService { /** * Returns all tunnels. * * @return list of tunnels */ List getTunnels(); /** * Creates a tunnel. * * @param tunnel tunnel reference to create * @return WRONG_PATH if the tunnel path is wrong, ID_EXISTS if the tunnel ID * exists already, TUNNEL_EXISTS if the same tunnel exists, INTERNAL_ERROR * if the tunnel creation failed internally, SUCCESS if the tunnel is created * successfully */ TunnelHandler.Result createTunnel(Tunnel tunnel); /** * Returns all policies. * * @return list of policy */ List getPolicies(); /** * Creates a policy. * * @param policy policy reference to create * @return ID_EXISTS if the same policy ID exists, * POLICY_EXISTS if the same policy exists, TUNNEL_NOT_FOUND if the tunnel * does not exists, UNSUPPORTED_TYPE if the policy type is not supported, * SUCCESS if the policy is created successfully. */ PolicyHandler.Result createPolicy(Policy policy); /** * Removes a tunnel. * * @param tunnel tunnel reference to remove * @return TUNNEL_NOT_FOUND if the tunnel to remove does not exists, * INTERNAL_ERROR if the tunnel creation failed internally, SUCCESS * if the tunnel is created successfully. */ TunnelHandler.Result removeTunnel(Tunnel tunnel); /** * Removes a policy. * * @param policy policy reference to remove * @return POLICY_NOT_FOUND if the policy to remove does not exists, * SUCCESS if it is removed successfully */ PolicyHandler.Result removePolicy(Policy policy); }