2 * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.lispflowmapping.southbound;
11 import java.nio.ByteBuffer;
12 import java.util.concurrent.Future;
14 import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer;
15 import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer;
16 import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer;
17 import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LfmControlPlaneService;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapNotifyInput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapRegisterInput;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapReplyInput;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapRequestInput;
23 import org.opendaylight.yangtools.yang.common.RpcResult;
24 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
28 import com.google.common.util.concurrent.Futures;
31 * This class holds all RPCs methods for LispSouthbound Plugin.
34 * @author Florin Coras (fcoras@cisco.com)
35 * @author Lorand Jakab (lojakab@cisco.com)
38 public class LfmControlPlaneRpc implements LfmControlPlaneService {
40 protected static final Logger LOG = LoggerFactory.getLogger(LfmControlPlaneRpc.class);
42 private final String MAP_NOTIFY = "MapNotify";
43 private final String MAP_REPlY = "MapReply";
44 private final String MAP_REQUEST = "MapRequest";
45 private final String MAP_REGISTER = "MapRegister";
46 private final LispSouthboundPlugin lispSbPlugin;
48 public LfmControlPlaneRpc(LispSouthboundPlugin lispSbPlugin) {
49 this.lispSbPlugin = lispSbPlugin;
54 public Future<RpcResult<Void>> sendMapNotify(SendMapNotifyInput mapNotifyInput) {
55 LOG.trace("sendMapNotify called!!");
56 if (mapNotifyInput != null) {
57 ByteBuffer outBuffer = MapNotifySerializer.getInstance().serialize(mapNotifyInput.getMapNotify());
58 lispSbPlugin.handleSerializedLispBuffer(mapNotifyInput.getTransportAddress(), outBuffer, MAP_NOTIFY);
60 LOG.warn("MapNotify was null");
61 return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
63 return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
67 public Future<RpcResult<Void>> sendMapReply(SendMapReplyInput mapReplyInput) {
68 LOG.trace("sendMapReply called!!");
69 if (mapReplyInput != null) {
70 ByteBuffer outBuffer = MapReplySerializer.getInstance().serialize(mapReplyInput.getMapReply());
71 lispSbPlugin.handleSerializedLispBuffer(mapReplyInput.getTransportAddress(), outBuffer, MAP_REPlY);
73 LOG.warn("MapReply was null");
74 return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
76 return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
80 public Future<RpcResult<Void>> sendMapRequest(SendMapRequestInput mapRequestInput) {
81 LOG.trace("sendMapRequest called!!");
82 if (mapRequestInput != null) {
83 ByteBuffer outBuffer = MapRequestSerializer.getInstance().serialize(mapRequestInput.getMapRequest());
84 lispSbPlugin.handleSerializedLispBuffer(mapRequestInput.getTransportAddress(), outBuffer, MAP_REQUEST);
86 LOG.debug("MapRequest was null");
87 return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
89 return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());
93 public Future<RpcResult<Void>> sendMapRegister(SendMapRegisterInput mapRegisterInput) {
94 LOG.trace("sendMapRegister called!!");
95 if (mapRegisterInput != null) {
96 ByteBuffer outBuffer = MapRegisterSerializer.getInstance().serialize(mapRegisterInput.getMapRegister());
97 lispSbPlugin.handleSerializedLispBuffer(mapRegisterInput.getTransportAddress(), outBuffer, MAP_REGISTER);
99 LOG.debug("MapRegister was null");
100 return Futures.immediateFuture(RpcResultBuilder.<Void> failed().build());
102 return Futures.immediateFuture(RpcResultBuilder.<Void> success().build());