import org.opendaylight.lispflowmapping.interfaces.lisp.IMapNotifyHandler;
import org.opendaylight.lispflowmapping.interfaces.lisp.IMapServerAsync;
import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService;
+import org.opendaylight.lispflowmapping.lisp.authentication.LispAuthenticationUtil;
import org.opendaylight.lispflowmapping.lisp.type.LispMessage;
import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItem;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapnotifymessage.MapNotifyBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkey;
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;
} else {
MapNotifyBuilderHelper.setFromMapRegister(builder, mapRegister);
}
+ List<MappingRecordItem> mappings = builder.getMappingRecordItem();
+ if (mappings != null && mappings.get(0) != null && mappings.get(0).getMappingRecord() != null &&
+ mappings.get(0).getMappingRecord().getEid() != null) {
+ MappingAuthkey authkey = mapService.getAuthenticationKey(mappings.get(0).getMappingRecord().getEid());
+ if (authkey != null) {
+ builder.setAuthenticationData(LispAuthenticationUtil.createAuthenticationData(builder.build(),
+ authkey.getKeyString()));
+ }
+ }
notifyHandler.handleMapNotify(builder.build(), rlocs);
}
}
mapRegister.getMappingRecordItem().iterator().next().getMappingRecord(), false);
Mockito.verify(mapService).addData(MappingOrigin.Southbound, IPV4_EID_1, SubKeys.SUBSCRIBERS,
subscriberSetMock_1);
- Mockito.verify(notifyHandler).handleMapNotify(getDefaultMapNotifyBuilder(mapRegister).build(), null);
+ Mockito.verify(notifyHandler).handleMapNotify(getDefaultMapNotifyBuilder(mapRegister)
+ .setAuthenticationData(null).build(), null);
// only 1 subscriber has timed out.
assertEquals(1, subscriberSetMock_1.size());
mapServer.handleMapRegister(mapRegister);
Mockito.verify(mapService).addMapping(MappingOrigin.Southbound, IPV4_EID_1, mapRegister.getSiteId(),
mapRegister.getMappingRecordItem().iterator().next().getMappingRecord(), true);
- Mockito.verify(notifyHandler).handleMapNotify(mapNotifyBuilder.build(), null);
+ Mockito.verify(notifyHandler).handleMapNotify(mapNotifyBuilder.setAuthenticationData(null).build(), null);
}
@Test
.setNonce(mapRegister.getNonce())
.setKeyId(mapRegister.getKeyId())
.setMergeEnabled(mapRegister.isMergeEnabled())
- .setMappingRecordItem(new ArrayList<>());
+ .setMappingRecordItem(new ArrayList<>())
+ .setAuthenticationData(new byte[]{});
mapNotifyBuilder.getMappingRecordItem().add(getDefaultMappingRecordItemBuilder().build());
return mapNotifyBuilder;
package org.opendaylight.lispflowmapping.lisp.authentication;
import java.nio.ByteBuffer;
+
+import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer;
import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapNotify;
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.eid.container.Eid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkey;
key.getKeyString());
}
+ public static byte[] createAuthenticationData(final MapNotify mapNotify, String authKey) {
+ return createAuthenticationData(MapNotifySerializer.getInstance().serialize(mapNotify), authKey);
+ }
+
public static byte[] createAuthenticationData(final ByteBuffer buffer, String authKey) {
final short keyId = buffer.getShort(MAP_REGISTER_AND_MAP_NOTIFY_KEY_ID_POS);
final ILispAuthentication authentication = LispAuthenticationFactory.getAuthentication(