* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.lispflowmapping.serializer;
+import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.util.ArrayList;
-
-import junitx.framework.ArrayAssert;
-
import org.junit.Test;
import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer;
import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length;
import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException;
import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
+import org.opendaylight.lispflowmapping.lisp.util.MaskUtil;
import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRegister;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.SiteId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItemBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapregisternotification.MapRegisterBuilder;
public class MapRegisterSerializationTest extends BaseTestCase {
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32"));
mrBuilder.getMappingRecordItem().add(
- new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
+ new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).setMappingRecordItemId("xyzzy")
+ .build());
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32"));
mrBuilder.getMappingRecordItem().add(
- new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
+ new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).setMappingRecordItemId("xyzzy")
+ .build());
mrBuilder.setNonce(6161616161L);
mrBuilder.setKeyId((short) 0x0001);
mrBuilder.setWantMapNotify(true);
mrBuilder.setProxyMapReply(true);
mrBuilder.setXtrSiteIdPresent(true);
- byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88, (byte) 0x2d, (byte) 0x4d,
- (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64, (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba,
- (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
+ byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88,
+ (byte) 0x2d, (byte) 0x4d, (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64,
+ (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba, (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
mrBuilder.setAuthenticationData(authenticationData);
- byte[] xtrId = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 };
+ XtrId xtrId = new XtrId(new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x00, (byte) 0x01 });
mrBuilder.setXtrId(xtrId);
- byte[] siteId = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 };
+ SiteId siteId = new SiteId(new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x00, (byte) 0x01 });
mrBuilder.setSiteId(siteId);
ByteBuffer bb = MapRegisterSerializer.getInstance().serialize(mrBuilder.build());
byte[] actualAuthenticationData = new byte[20];
bb.get(actualAuthenticationData);
- ArrayAssert.assertEquals(authenticationData, actualAuthenticationData);
+ assertArrayEquals(authenticationData, actualAuthenticationData);
bb.position(bb.position() + 12); // EID in first record
assertEquals(0x1, bb.getInt());
byte[] actualXtrId = new byte[Length.XTRID_SIZE];
bb.get(actualXtrId);
- ArrayAssert.assertEquals(xtrId, actualXtrId);
+ assertArrayEquals(xtrId.getValue(), actualXtrId);
byte[] actualSiteId = new byte[Length.SITEID_SIZE];
bb.get(actualSiteId);
- ArrayAssert.assertEquals(siteId, actualSiteId);
+ assertArrayEquals(siteId.getValue(), actualSiteId);
assertEquals(bb.position(), bb.capacity());
}
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32"));
mrBuilder.getMappingRecordItem().add(
- new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
+ new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).setMappingRecordItemId("xyzzy")
+ .build());
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32"));
mrBuilder.getMappingRecordItem().add(
- new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
+ new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).setMappingRecordItemId("xyzzy")
+ .build());
recordBuilder.setAction(Action.NoAction);
recordBuilder.setMapVersion((short) 0);
- recordBuilder.setMaskLength((short) 0);
recordBuilder.setRecordTtl(0);
mrBuilder.setNonce(6161616161L);
mrBuilder.setKeyId((short) 0x0001);
mrBuilder.setWantMapNotify(true);
mrBuilder.setProxyMapReply(true);
- byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88, (byte) 0x2d, (byte) 0x4d,
- (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64, (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba,
- (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
+ byte[] authenticationData = new byte[] { (byte) 0x16, (byte) 0x98, (byte) 0x96, (byte) 0xeb, (byte) 0x88,
+ (byte) 0x2d, (byte) 0x4d, (byte) 0x22, (byte) 0xe5, (byte) 0x8f, (byte) 0xe6, (byte) 0x89, (byte) 0x64,
+ (byte) 0xb9, (byte) 0x17, (byte) 0xa4, (byte) 0xba, (byte) 0x4e, (byte) 0x8c, (byte) 0x41 };
mrBuilder.setAuthenticationData(authenticationData);
MapRegister mapRegister = mrBuilder.build();
- ArrayAssert.assertEquals(
- MapRegisterSerializer.getInstance().serialize(mapRegister).array(),
+ assertArrayEquals(MapRegisterSerializer.getInstance().serialize(mapRegister).array(),
MapRegisterSerializer.getInstance()
- .serialize(MapRegisterSerializer.getInstance().deserialize(MapRegisterSerializer.getInstance().serialize(mapRegister), null))
- .array());
+ .serialize(MapRegisterSerializer.getInstance().deserialize(MapRegisterSerializer.getInstance()
+ .serialize(mapRegister), null)).array());
}
@Test
mrBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
new MappingRecordBuilder().setRecordTtl(55)
- .setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32")).build()).build());
+ .setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32")).build())
+ .setMappingRecordItemId("xyzzy")
+ .build());
// mrBuilder.addEidToLocator(new EidToLocatorRecord().setPrefix(new
// LispIpv4Address(1)).setRecordTtl(55));
MapRegisterBuilder mrBuilder = new MapRegisterBuilder();
mrBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
- new MappingRecordBuilder().build()).build());
+ new MappingRecordBuilder().build()).setMappingRecordItemId("xyzzy").build());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
- new MappingRecordBuilder().setEid(null).build()).build());
+ new MappingRecordBuilder().setEid(null).build()).setMappingRecordItemId("xyzzy").build());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
- new MappingRecordBuilder().setEid(LispAddressUtil.getNoAddressEid()).build()).build());
+ new MappingRecordBuilder().setEid(LispAddressUtil.getNoAddressEid()).build())
+ .setMappingRecordItemId("xyzzy").build());
ByteBuffer bb = MapRegisterSerializer.getInstance().serialize(mrBuilder.build());
bb.position(bb.position() + 16); // jump to first record prefix AFI
+ "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 " //
+ "ff 00 00 05 00 01 c0 a8 88 0a"), null);
- assertTrue(mr.isProxyMapReply());
- assertTrue(mr.isWantMapNotify());
+ assertTrue(mr.getProxyMapReply());
+ assertTrue(mr.getWantMapNotify());
assertEquals(1, mr.getMappingRecordItem().size());
assertEquals(0xFFBB000000000000L, mr.getNonce().longValue());
assertEquals(0x0000, mr.getKeyId().shortValue());
byte[] expectedAuthenticationData = {};
- ArrayAssert.assertEquals(expectedAuthenticationData, mr.getAuthenticationData());
+ assertArrayEquals(expectedAuthenticationData, mr.getAuthenticationData());
}
@Test
+ "90 87 20 65 9a b7 00 00 00 00 00 00 00 00 ");
MapRegister mr = MapRegisterSerializer.getInstance().deserialize(bb, null);
- assertTrue(mr.isXtrSiteIdPresent());
+ assertTrue(mr.getXtrSiteIdPresent());
- ArrayAssert.assertEquals(bb.array(), MapRegisterSerializer.getInstance().serialize(mr).array());
+ assertArrayEquals(bb.array(), MapRegisterSerializer.getInstance().serialize(mr).array());
}
@Test
), null);
assertEquals(4, mr.getMappingRecordItem().size());
- assertEquals(LispAddressUtil.asIpv4PrefixEid("153.16.254.1/32"), mr.getMappingRecordItem().get(0)
+ assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid("153.16.254.1/32"), mr.getMappingRecordItem().get(0)
.getMappingRecord().getEid());
- assertEquals(LispAddressUtil.asIpv4PrefixEid("151.16.254.1/32"), mr.getMappingRecordItem().get(2)
+ assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid("151.16.254.1/32"), mr.getMappingRecordItem().get(2)
.getMappingRecord().getEid());
assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.11"), mr.getMappingRecordItem().get(1)
.getMappingRecord().getLocatorRecord().get(0).getRloc());
assertEquals((byte) 0x34, loc1.getMulticastWeight().byteValue());
assertEquals((byte) 0xA4, loc2.getMulticastWeight().byteValue());
- assertTrue(loc0.isLocalLocator());
- assertFalse(loc1.isLocalLocator());
- assertFalse(loc2.isLocalLocator());
+ assertTrue(loc0.getLocalLocator());
+ assertFalse(loc1.getLocalLocator());
+ assertFalse(loc2.getLocalLocator());
- assertFalse(loc0.isRlocProbed());
- assertTrue(loc1.isRlocProbed());
- assertTrue(loc2.isRlocProbed());
+ assertFalse(loc0.getRlocProbed());
+ assertTrue(loc1.getRlocProbed());
+ assertTrue(loc2.getRlocProbed());
- assertTrue(loc0.isRouted());
- assertFalse(loc1.isRouted());
- assertTrue(loc2.isRouted());
+ assertTrue(loc0.getRouted());
+ assertFalse(loc1.getRouted());
+ assertTrue(loc2.getRouted());
assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.10"), loc0.getRloc());
assertEquals(LispAddressUtil.asIpv4Rloc("204.170.170.17"), loc1.getRloc());
assertEquals(4, mr.getMappingRecordItem().size());
- MappingRecord record0 = mr.getMappingRecordItem().get(0).getMappingRecord();
- MappingRecord record1 = mr.getMappingRecordItem().get(1).getMappingRecord();
- MappingRecord record2 = mr.getMappingRecordItem().get(2).getMappingRecord();
- MappingRecord record3 = mr.getMappingRecordItem().get(3).getMappingRecord();
+ final MappingRecord record0 = mr.getMappingRecordItem().get(0).getMappingRecord();
+ final MappingRecord record1 = mr.getMappingRecordItem().get(1).getMappingRecord();
+ final MappingRecord record2 = mr.getMappingRecordItem().get(2).getMappingRecord();
+ final MappingRecord record3 = mr.getMappingRecordItem().get(3).getMappingRecord();
assertEquals(10, record0.getRecordTtl().intValue());
assertEquals(13, record3.getRecordTtl().intValue());
- assertEquals(32, record0.getMaskLength().intValue());
- assertEquals(23, record1.getMaskLength().intValue());
+ assertEquals(32, MaskUtil.getMaskForAddress(record0.getEid().getAddress()));
+ assertEquals(23, MaskUtil.getMaskForAddress(record1.getEid().getAddress()));
assertEquals(Action.NoAction, record0.getAction());
assertEquals(Action.SendMapRequest, record1.getAction());
assertEquals(Action.NoAction, record2.getAction());
assertEquals(Action.NativelyForward, record3.getAction());
- assertTrue(record0.isAuthoritative());
- assertTrue(record1.isAuthoritative());
- assertFalse(record2.isAuthoritative());
- assertFalse(record3.isAuthoritative());
+ assertTrue(record0.getAuthoritative());
+ assertTrue(record1.getAuthoritative());
+ assertFalse(record2.getAuthoritative());
+ assertFalse(record3.getAuthoritative());
assertEquals(0x000, record0.getMapVersion().shortValue());
assertEquals(0x111, record1.getMapVersion().shortValue());
+ "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 " //
+ "ff 00 00 05 00 01 c0 a8 88 0a"), null);
- assertTrue(mr.isProxyMapReply());
- assertTrue(mr.isWantMapNotify());
+ assertTrue(mr.getProxyMapReply());
+ assertTrue(mr.getWantMapNotify());
assertEquals(1, mr.getMappingRecordItem().size());
assertEquals(0xFFBB000000000000L, mr.getNonce().longValue());
assertEquals(0x0001, mr.getKeyId().shortValue());
- byte[] expectedAuthenticationData = { (byte) 0x2c, (byte) 0x61, (byte) 0xb9, (byte) 0xc9, (byte) 0x9a, (byte) 0x20, (byte) 0xba, (byte) 0xd8, //
- (byte) 0xf5, (byte) 0x40, (byte) 0xd3, (byte) 0x55, (byte) 0x6f, (byte) 0x5f, (byte) 0x6e, (byte) 0x5a, //
- (byte) 0xb2, (byte) 0x0a, (byte) 0xbf, (byte) 0xb5 };
- ArrayAssert.assertEquals(expectedAuthenticationData, mr.getAuthenticationData());
+ byte[] expectedAuthenticationData = { (byte) 0x2c, (byte) 0x61, (byte) 0xb9, (byte) 0xc9, (byte) 0x9a,
+ (byte) 0x20, (byte) 0xba, (byte) 0xd8, (byte) 0xf5, (byte) 0x40, (byte) 0xd3, (byte) 0x55, (byte) 0x6f,
+ (byte) 0x5f, (byte) 0x6e, (byte) 0x5a, (byte) 0xb2, (byte) 0x0a, (byte) 0xbf, (byte) 0xb5 };
+ assertArrayEquals(expectedAuthenticationData, mr.getAuthenticationData());
}
@Test
+ "00 0a 01 20 10 00 00 00 00 01 99 10 fe 01 01 64 " //
+ "ff 00 00 05 00 01 c0 a8 88 0a"), null);
- assertTrue(mr.isProxyMapReply());
- assertTrue(mr.isWantMapNotify());
+ assertTrue(mr.getProxyMapReply());
+ assertTrue(mr.getWantMapNotify());
assertEquals(1, mr.getMappingRecordItem().size());
assertEquals(0xFFBB000000000000L, mr.getNonce().longValue());
assertEquals(0x0002, mr.getKeyId().shortValue());
- byte[] expectedAuthenticationData = { (byte) 0x70, (byte) 0x30, (byte) 0xd4, (byte) 0xc6, (byte) 0x10, (byte) 0x44, (byte) 0x0d, (byte) 0x83,
- (byte) 0xbe, (byte) 0x4d, (byte) 0xbf, (byte) 0xfd, (byte) 0xa9, (byte) 0x8c, (byte) 0x57, (byte) 0x6d, (byte) 0x68, (byte) 0xa5,
- (byte) 0xbf, (byte) 0x32, (byte) 0x11, (byte) 0xc9, (byte) 0x7b, (byte) 0x58, (byte) 0xc4, (byte) 0xb9, (byte) 0x9f, (byte) 0x06,
- (byte) 0x11, (byte) 0x23, (byte) 0xb9, (byte) 0x38 };
- ArrayAssert.assertEquals(expectedAuthenticationData, mr.getAuthenticationData());
+ byte[] expectedAuthenticationData = { (byte) 0x70, (byte) 0x30, (byte) 0xd4, (byte) 0xc6, (byte) 0x10,
+ (byte) 0x44, (byte) 0x0d, (byte) 0x83, (byte) 0xbe, (byte) 0x4d, (byte) 0xbf, (byte) 0xfd, (byte) 0xa9,
+ (byte) 0x8c, (byte) 0x57, (byte) 0x6d, (byte) 0x68, (byte) 0xa5, (byte) 0xbf, (byte) 0x32, (byte) 0x11,
+ (byte) 0xc9, (byte) 0x7b, (byte) 0x58, (byte) 0xc4, (byte) 0xb9, (byte) 0x9f, (byte) 0x06, (byte) 0x11,
+ (byte) 0x23, (byte) 0xb9, (byte) 0x38 };
+ assertArrayEquals(expectedAuthenticationData, mr.getAuthenticationData());
}
}