mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-15 17:31:31 +02:00
Fix: Set default state as ADDED for newly added mapping by router
Change-Id: I34eda7f5b229efe273d4a4e61e72082f8f123a2c
This commit is contained in:
parent
c56cded49f
commit
a1f960b651
@ -80,7 +80,7 @@ public interface MappingStore extends Store<MappingEvent, MappingStoreDelegate>
|
|||||||
* @param type store type
|
* @param type store type
|
||||||
* @param mapping the mapping to add
|
* @param mapping the mapping to add
|
||||||
*/
|
*/
|
||||||
void storeMapping(Type type, Mapping mapping);
|
void storeMapping(Type type, MappingEntry mapping);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marks a mapping for deletion. Actual deletion will occur when the
|
* Marks a mapping for deletion. Actual deletion will occur when the
|
||||||
|
@ -191,7 +191,7 @@ public class DistributedMappingStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void storeMapping(Type type, Mapping mapping) {
|
public void storeMapping(Type type, MappingEntry mapping) {
|
||||||
|
|
||||||
getStore(type).put(mapping.id(), mapping);
|
getStore(type).put(mapping.id(), mapping);
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import org.apache.felix.scr.annotations.Service;
|
|||||||
import org.onosproject.mapping.DefaultMappingEntry;
|
import org.onosproject.mapping.DefaultMappingEntry;
|
||||||
import org.onosproject.mapping.Mapping;
|
import org.onosproject.mapping.Mapping;
|
||||||
import org.onosproject.mapping.MappingEntry;
|
import org.onosproject.mapping.MappingEntry;
|
||||||
|
import org.onosproject.mapping.MappingEntry.MappingEntryState;
|
||||||
import org.onosproject.mapping.MappingEvent;
|
import org.onosproject.mapping.MappingEvent;
|
||||||
import org.onosproject.mapping.MappingId;
|
import org.onosproject.mapping.MappingId;
|
||||||
import org.onosproject.mapping.MappingStore;
|
import org.onosproject.mapping.MappingStore;
|
||||||
@ -213,14 +214,15 @@ public class SimpleMappingStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void storeMapping(Type type, Mapping mapping) {
|
public void storeMapping(Type type, MappingEntry mapping) {
|
||||||
|
|
||||||
List<StoredMappingEntry> entries =
|
List<StoredMappingEntry> entries =
|
||||||
getMappingEntriesInternal(type, mapping.deviceId(), mapping.id());
|
getMappingEntriesInternal(type, mapping.deviceId(), mapping.id());
|
||||||
|
|
||||||
synchronized (entries) {
|
synchronized (entries) {
|
||||||
if (!entries.contains(mapping)) {
|
if (!entries.contains(mapping)) {
|
||||||
StoredMappingEntry entry = new DefaultMappingEntry(mapping);
|
StoredMappingEntry entry =
|
||||||
|
new DefaultMappingEntry(mapping, mapping.state());
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -252,7 +254,7 @@ public class SimpleMappingStore
|
|||||||
for (StoredMappingEntry stored : entries) {
|
for (StoredMappingEntry stored : entries) {
|
||||||
if (stored.equals(entry)) {
|
if (stored.equals(entry)) {
|
||||||
if (stored.state() == PENDING_ADD) {
|
if (stored.state() == PENDING_ADD) {
|
||||||
stored.setState(MappingEntry.MappingEntryState.ADDED);
|
stored.setState(MappingEntryState.ADDED);
|
||||||
return new MappingEvent(MAPPING_ADDED, entry);
|
return new MappingEvent(MAPPING_ADDED, entry);
|
||||||
}
|
}
|
||||||
return new MappingEvent(MAPPING_UPDATED, entry);
|
return new MappingEvent(MAPPING_UPDATED, entry);
|
||||||
|
@ -22,10 +22,12 @@ import org.junit.Test;
|
|||||||
import org.onlab.packet.ChassisId;
|
import org.onlab.packet.ChassisId;
|
||||||
import org.onlab.packet.IpPrefix;
|
import org.onlab.packet.IpPrefix;
|
||||||
import org.onosproject.mapping.DefaultMapping;
|
import org.onosproject.mapping.DefaultMapping;
|
||||||
|
import org.onosproject.mapping.DefaultMappingEntry;
|
||||||
import org.onosproject.mapping.DefaultMappingKey;
|
import org.onosproject.mapping.DefaultMappingKey;
|
||||||
import org.onosproject.mapping.DefaultMappingTreatment;
|
import org.onosproject.mapping.DefaultMappingTreatment;
|
||||||
import org.onosproject.mapping.DefaultMappingValue;
|
import org.onosproject.mapping.DefaultMappingValue;
|
||||||
import org.onosproject.mapping.Mapping;
|
import org.onosproject.mapping.Mapping;
|
||||||
|
import org.onosproject.mapping.MappingEntry;
|
||||||
import org.onosproject.mapping.MappingKey;
|
import org.onosproject.mapping.MappingKey;
|
||||||
import org.onosproject.mapping.MappingTreatment;
|
import org.onosproject.mapping.MappingTreatment;
|
||||||
import org.onosproject.mapping.MappingValue;
|
import org.onosproject.mapping.MappingValue;
|
||||||
@ -59,8 +61,8 @@ public class DistributedMappingStoreTest {
|
|||||||
private static final String IP_ADDRESS = "1.2.3.4/24";
|
private static final String IP_ADDRESS = "1.2.3.4/24";
|
||||||
|
|
||||||
private DistributedMappingStore mappingStore;
|
private DistributedMappingStore mappingStore;
|
||||||
private Mapping mapping1;
|
private MappingEntry mapping1;
|
||||||
private Mapping mapping2;
|
private MappingEntry mapping2;
|
||||||
|
|
||||||
private Device device1;
|
private Device device1;
|
||||||
private Device device2;
|
private Device device2;
|
||||||
@ -103,20 +105,23 @@ public class DistributedMappingStoreTest {
|
|||||||
"foo.inc", "0", "0", "0", null,
|
"foo.inc", "0", "0", "0", null,
|
||||||
DefaultAnnotations.builder().build());
|
DefaultAnnotations.builder().build());
|
||||||
|
|
||||||
mapping1 = DefaultMapping.builder()
|
Mapping originalMapping1 = DefaultMapping.builder()
|
||||||
.forDevice(DEVICE_ID_1)
|
.forDevice(DEVICE_ID_1)
|
||||||
.withId(1000L)
|
.withId(1000L)
|
||||||
.withKey(key)
|
.withKey(key)
|
||||||
.withValue(value)
|
.withValue(value)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
mapping2 = DefaultMapping.builder()
|
Mapping originalMapping2 = DefaultMapping.builder()
|
||||||
.forDevice(DEVICE_ID_2)
|
.forDevice(DEVICE_ID_2)
|
||||||
.withId(2000L)
|
.withId(2000L)
|
||||||
.withKey(key)
|
.withKey(key)
|
||||||
.withValue(value)
|
.withValue(value)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
mapping1 = new DefaultMappingEntry(originalMapping1);
|
||||||
|
mapping2 = new DefaultMappingEntry(originalMapping2);
|
||||||
|
|
||||||
mappingStore.activate();
|
mappingStore.activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user