2 * Copyright (c) 2014 Contextream, Inc. and others. 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
8 package org.opendaylight.lispflowmapping.implementation.dao;
10 import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor;
11 import org.opendaylight.lispflowmapping.implementation.util.MaskUtil;
12 import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer;
16 public class MappingServiceKeyUtil {
18 public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer, int mask) {
19 LispAFIAddress address = LispAFIConvertor.toAFI(lispAddressContainer);
20 if (MaskUtil.isMaskable(address)) {
21 LispAddressContainer normalizedAddress = LispAFIConvertor.toContainer(MaskUtil.normalize(address, mask));
22 return new MappingServiceKey(normalizedAddress, mask);
24 return new MappingServiceNoMaskKey(lispAddressContainer);
28 public static IMappingServiceKey generateMappingServiceKey(LispAFIAddress address, int mask) {
29 if (MaskUtil.isMaskable(address)) {
30 LispAddressContainer normalizedAddress = LispAFIConvertor.toContainer(MaskUtil.normalize(address, mask));
31 return new MappingServiceKey(normalizedAddress, mask);
33 return new MappingServiceNoMaskKey(LispAFIConvertor.toContainer(address));
37 public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer) {
38 LispAFIAddress address = LispAFIConvertor.toAFI(lispAddressContainer);
39 if (MaskUtil.isMaskable(address)) {
40 return generateMappingServiceKey(lispAddressContainer, MaskUtil.getMaxMask(address));
42 return generateMappingServiceKey(lispAddressContainer, 0);