use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem in project lispflowmapping by opendaylight.
the class MapNotifySerializationTest method serialize__deserialize.
@Test
public void serialize__deserialize() throws Exception {
MapNotifyBuilder mnBuilder = new MapNotifyBuilder();
mnBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
mnBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32")).build()).build());
mnBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(new MappingRecordBuilder().setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32")).build()).build());
mnBuilder.setNonce(6161616161L);
mnBuilder.setKeyId((short) 0x0001);
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 };
mnBuilder.setAuthenticationData(authenticationData);
MapNotify mn = mnBuilder.build();
ArrayAssert.assertEquals(MapNotifySerializer.getInstance().serialize(mn).array(), MapNotifySerializer.getInstance().serialize(MapNotifySerializer.getInstance().deserialize(MapNotifySerializer.getInstance().serialize(mn))).array());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem in project lispflowmapping by opendaylight.
the class MapRegisterSerializationTest method serialize__NoPrefixInEidToLocator.
@Test
public void serialize__NoPrefixInEidToLocator() throws Exception {
MapRegisterBuilder mrBuilder = new MapRegisterBuilder();
mrBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(new MappingRecordBuilder().build()).build());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(new MappingRecordBuilder().setEid(null).build()).build());
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(new MappingRecordBuilder().setEid(LispAddressUtil.getNoAddressEid()).build()).build());
ByteBuffer bb = MapRegisterSerializer.getInstance().serialize(mrBuilder.build());
// jump to first record prefix AFI
bb.position(bb.position() + 16);
assertEquals(0, bb.getShort());
// jump to second record prefix AFI
bb.position(bb.position() + 10);
assertEquals(0, bb.getShort());
// jump to third record prefix AFI
bb.position(bb.position() + 10);
assertEquals(0, bb.getShort());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem in project lispflowmapping by opendaylight.
the class MapRegisterSerializationTest method deserialize__Locators.
@Test
public void deserialize__Locators() throws Exception {
MapRegister mr = MapRegisterSerializer.getInstance().deserialize(hexToByteBuffer("38 00 01 01 " + //
"FF BB 00 00 00 00 00 00 00 01 00 14 f1 b8 ab f0 " + //
"66 bb 2e ef 12 70 74 46 6f 6b 8e ca bf 1e 68 40 " + //
"00 00 00 0a " + //
"03 " + // Locator Count
"20 10 00 00 00 00 01 99 10 fe 01 " + // Locator 1
"01 64 1f 00 " + // priorities + weights
"00 05 " + // Flags
"00 01 c0 a8 88 0a " + // Locator 2
"67 00 30 34 " + // priorities + weights
"00 02 " + // Flags
"00 01 cc aa AA 11 " + // Locator 3
"60 11 34 A4 " + // priorities + weights
"00 03 " + // Flags
"00 01 c0 a8 88 0a "), null);
assertEquals(1, mr.getMappingRecordItem().size());
MappingRecordItem eidToLocator = mr.getMappingRecordItem().get(0);
assertEquals(3, eidToLocator.getMappingRecord().getLocatorRecord().size());
LocatorRecord loc0 = eidToLocator.getMappingRecord().getLocatorRecord().get(0);
LocatorRecord loc1 = eidToLocator.getMappingRecord().getLocatorRecord().get(1);
LocatorRecord loc2 = eidToLocator.getMappingRecord().getLocatorRecord().get(2);
assertEquals((byte) 0x01, loc0.getPriority().byteValue());
assertEquals((byte) 0x67, loc1.getPriority().byteValue());
assertEquals((byte) 0x60, loc2.getPriority().byteValue());
assertEquals((byte) 0x64, loc0.getWeight().byteValue());
assertEquals((byte) 0x00, loc1.getWeight().byteValue());
assertEquals((byte) 0x11, loc2.getWeight().byteValue());
assertEquals((byte) 0x1F, loc0.getMulticastPriority().byteValue());
assertEquals((byte) 0x30, loc1.getMulticastPriority().byteValue());
assertEquals((byte) 0x34, loc2.getMulticastPriority().byteValue());
assertEquals((byte) 0x00, loc0.getMulticastWeight().byteValue());
assertEquals((byte) 0x34, loc1.getMulticastWeight().byteValue());
assertEquals((byte) 0xA4, loc2.getMulticastWeight().byteValue());
assertTrue(loc0.isLocalLocator());
assertFalse(loc1.isLocalLocator());
assertFalse(loc2.isLocalLocator());
assertFalse(loc0.isRlocProbed());
assertTrue(loc1.isRlocProbed());
assertTrue(loc2.isRlocProbed());
assertTrue(loc0.isRouted());
assertFalse(loc1.isRouted());
assertTrue(loc2.isRouted());
assertEquals(LispAddressUtil.asIpv4Rloc("192.168.136.10"), loc0.getRloc());
assertEquals(LispAddressUtil.asIpv4Rloc("204.170.170.17"), loc1.getRloc());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem in project lispflowmapping by opendaylight.
the class MapRegisterSerializationTest method serialize__deserialize.
@Test
public void serialize__deserialize() throws Exception {
MapRegisterBuilder mrBuilder = new MapRegisterBuilder();
mrBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
MappingRecordBuilder recordBuilder = new MappingRecordBuilder();
recordBuilder.setLocatorRecord(new ArrayList<LocatorRecord>());
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.1/32"));
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("0.0.0.73/32"));
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
recordBuilder.setAction(Action.NoAction);
recordBuilder.setMapVersion((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 };
mrBuilder.setAuthenticationData(authenticationData);
MapRegister mapRegister = mrBuilder.build();
ArrayAssert.assertEquals(MapRegisterSerializer.getInstance().serialize(mapRegister).array(), MapRegisterSerializer.getInstance().serialize(MapRegisterSerializer.getInstance().deserialize(MapRegisterSerializer.getInstance().serialize(mapRegister), null)).array());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem in project lispflowmapping by opendaylight.
the class MapReplySerializationTest method serialize__MultipleRecordsWithoutRLOCs.
@Test
public void serialize__MultipleRecordsWithoutRLOCs() throws Exception {
MapReplyBuilder mrBuilder = new MapReplyBuilder();
mrBuilder.setMappingRecordItem(new ArrayList<MappingRecordItem>());
MappingRecordBuilder recordBuilder = new MappingRecordBuilder();
recordBuilder.setEid(LispAddressUtil.asIpv6PrefixEid("0:0:0:0:0:0:0:8/128"));
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
recordBuilder.setEid(LispAddressUtil.asIpv4PrefixEid("8.2.4.5/32"));
mrBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(recordBuilder.build()).build());
ByteBuffer packet = MapReplySerializer.getInstance().serialize(mrBuilder.build());
assertEquals(2, packet.get(3));
// EID in first record
packet.position(24);
byte[] expected = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08 };
byte[] actual = new byte[16];
packet.get(actual);
ArrayAssert.assertEquals(expected, actual);
// EID in second record
packet.position(packet.position() + 12);
assertEquals(0x08020405, packet.getInt());
}
Aggregations