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.lisp.util;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LcafSourceDestAddress;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LispAFIAddress;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafsourcedestaddress.DstAddress;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafsourcedestaddress.SrcAddress;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.LispAddressContainer;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.LcafSourceDest;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
21 * @author Florin Coras
25 public class LcafSourceDestHelper {
26 private final static Logger LOG = LoggerFactory.getLogger(LcafSourceDestHelper.class);
27 public static LispAFIAddress getSrcAfi(LispAddressContainer addr) {
28 if (!isSrcDst(addr)) {
29 return LispAFIConvertor.toAFI(addr);
31 return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) addr.getAddress()).getLcafSourceDestAddr()
32 .getSrcAddress().getPrimitiveAddress());
35 public static LispAFIAddress getSrcAfi(LispAFIAddress addr) {
36 if (!isSrcDst(addr)) {
39 return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddress) addr)
40 .getSrcAddress().getPrimitiveAddress());
43 public static LispAFIAddress getDstAfi(LispAddressContainer addr) {
44 if (!isSrcDst(addr)) {
45 return LispAFIConvertor.toAFI(addr);
47 return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) addr.getAddress()).getLcafSourceDestAddr()
48 .getDstAddress().getPrimitiveAddress());
51 public static LispAFIAddress getDstAfi(LispAFIAddress addr) {
52 if (!isSrcDst(addr)) {
55 return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddress) addr)
56 .getDstAddress().getPrimitiveAddress());
59 public static LispAddressContainer getSrc(LispAddressContainer addr) {
60 if (!isSrcDst(addr)) {
63 return LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) addr
64 .getAddress()).getLcafSourceDestAddr().getSrcAddress().getPrimitiveAddress())); }
66 public static LispAddressContainer getDst(LispAddressContainer addr) {
67 if (!isSrcDst(addr)) {
70 return LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) addr
71 .getAddress()).getLcafSourceDestAddr().getDstAddress().getPrimitiveAddress()));
74 public static short getSrcMask(LispAddressContainer addr) {
75 if (!isSrcDst(addr)) {
78 return ((LcafSourceDest) addr.getAddress()).getLcafSourceDestAddr().getSrcMaskLength();
81 public static short getDstMask(LispAddressContainer addr) {
82 if (!isSrcDst(addr)) {
85 return ((LcafSourceDest) addr.getAddress()).getLcafSourceDestAddr().getDstMaskLength();
88 public static short getSrcMask(LispAFIAddress addr) {
89 if (!isSrcDst(addr)) {
92 return ((LcafSourceDestAddress) addr).getSrcMaskLength();
95 public static short getDstMask(LispAFIAddress addr) {
96 if (!isSrcDst(addr)) {
99 return ((LcafSourceDestAddress) addr).getDstMaskLength();
102 public static DstAddress getDstAddress(LispAFIAddress addr) {
103 if (!isSrcDst(addr)) {
106 return ((LcafSourceDestAddress)addr).getDstAddress();
109 public static SrcAddress getSrcAddress(LispAFIAddress addr) {
110 if (!isSrcDst(addr)) {
113 return ((LcafSourceDestAddress)addr).getSrcAddress();
116 public static DstAddress getDstAddress(LispAddressContainer addr) {
117 if (!isSrcDst(addr)) {
120 return ((LcafSourceDest)addr.getAddress()).getLcafSourceDestAddr().getDstAddress();
123 public static SrcAddress getSrcAddress(LispAddressContainer addr) {
124 if (!isSrcDst(addr)) {
127 return ((LcafSourceDest)addr.getAddress()).getLcafSourceDestAddr().getSrcAddress();
131 private static boolean isSrcDst(LispAFIAddress addr) {
132 if (!(addr instanceof LcafSourceDestAddress)) {
133 LOG.warn("Address {} is not a valid SourceDest LCAF", addr);
139 private static boolean isSrcDst(LispAddressContainer addr) {
140 if (!(addr.getAddress() instanceof LcafSourceDest)) {
141 LOG.warn("Address {} is not a valid SourceDest LCAF", addr);