2 * Copyright (c) 2016 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.implementation.timebucket.implementation;
11 import org.opendaylight.lispflowmapping.implementation.MappingSystem;
12 import org.opendaylight.lispflowmapping.implementation.timebucket.containers.TimeBucketWheel;
13 import org.opendaylight.lispflowmapping.implementation.timebucket.interfaces.ISouthBoundMappingTimeoutService;
14 import org.opendaylight.lispflowmapping.lisp.type.MappingData;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
20 * Created by Shakib Ahmed on 12/1/16.
22 public class TimeBucketMappingTimeoutService implements ISouthBoundMappingTimeoutService {
23 private static final Logger LOG = LoggerFactory.getLogger(TimeBucketWheel.class);
25 private final TimeBucketWheel timeBucketWheel;
27 public TimeBucketMappingTimeoutService(int numberOfBucket, long mappingRecordValidityInMillis,
28 MappingSystem mappingSystem) {
29 timeBucketWheel = new TimeBucketWheel(numberOfBucket, mappingRecordValidityInMillis, mappingSystem);
33 public int addMapping(Eid key, MappingData mappingData) {
34 long timestamp = System.currentTimeMillis();
35 if (mappingData.getTimestamp() != null) {
36 timestamp = mappingData.getTimestamp().getTime();
38 return timeBucketWheel.add(key, mappingData, timestamp);
42 public int refreshMapping(Eid key, MappingData newMappingData, int presentBucketId) {
43 long timestamp = System.currentTimeMillis();
44 if (newMappingData.getTimestamp() != null) {
45 timestamp = newMappingData.getTimestamp().getTime();
47 return timeBucketWheel.refreshMappping(key, newMappingData, timestamp, presentBucketId);
51 public void removeMappingFromTimeoutService(Eid key, int presentBucketId) {
52 timeBucketWheel.removeMapping(key, presentBucketId);
56 public void removeExpiredMappings() {
57 timeBucketWheel.clearExpiredMappingAndRotate();