use of org.opendaylight.protocol.bgp.parser.spi.MessageRegistry in project bgpcep by opendaylight.
the class SimpleRegistryTest method testSimpleMessageRegistry.
@Test
public void testSimpleMessageRegistry() throws Exception {
final MessageRegistry msgRegistry = this.ctx.getMessageRegistry();
final byte[] msgBytes = { (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0x00, (byte) 0x13, (byte) 0x00 };
final Notification msg = mock(Notification.class);
doReturn(Notification.class).when(msg).getImplementedInterface();
final ByteBuf buffer = Unpooled.buffer(msgBytes.length);
msgRegistry.serializeMessage(msg, buffer);
msgRegistry.parseMessage(Unpooled.wrappedBuffer(msgBytes), CONSTRAINT);
verify(this.activator.msgParser, times(1)).parseMessageBody(Mockito.any(ByteBuf.class), Mockito.anyInt(), Mockito.any(PeerSpecificParserConstraint.class));
verify(this.activator.msgSerializer, times(1)).serializeMessage(Mockito.any(Notification.class), Mockito.any(ByteBuf.class));
}
use of org.opendaylight.protocol.bgp.parser.spi.MessageRegistry in project bgpcep by opendaylight.
the class AbstractBmpPerPeerMessageParserTest method setUp.
@Before
public void setUp() {
this.ctx = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance();
final MessageRegistry msgRegistry = this.ctx.getMessageRegistry();
this.parser = new AbstractBmpPerPeerMessageParser<Builder<?>>(msgRegistry) {
@Override
public Notification parseMessageBody(final ByteBuf bytes) {
return null;
}
@Override
public int getBmpMessageType() {
return 0;
}
};
}
use of org.opendaylight.protocol.bgp.parser.spi.MessageRegistry in project bgpcep by opendaylight.
the class AbstractBmpPerPeerMessageParserTest method testBgpMessageRegistry.
@Test
public void testBgpMessageRegistry() {
final MessageRegistry msgRegistry = this.ctx.getMessageRegistry();
assertEquals(msgRegistry, this.parser.getBgpMessageRegistry());
}
use of org.opendaylight.protocol.bgp.parser.spi.MessageRegistry in project bgpcep by opendaylight.
the class ParserTest method testOpenMessage.
/*
* ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff <- marker
* 00 3d <- length (61) - including header
* 01 <- message type
* 04 <- BGP version
* 00 64 <- My AS Number (AS TRANS in this case)
* 00 b4 <- Hold Time
* 00 00 00 00 <- BGP Identifier
* 20 <- Optional Parameters Length
* 02 <- opt. param. type (capabilities)
* 06 <- length
* 01 <- capability code (MP Extensions for BGP4)
* 04 <- length
* 00 01 00 01 <- AFI 1, SAFI 1
* 02 <- opt. param. type (capabilities)
* 06 <- length
* 01 <- capability code (MP Extensions for BGP4)
* 04 <- length
* 00 02 00 01 <- AFI 2, SAFI 1
* 02 <- opt. param. type (capabilities)
* 06 <- length
* 01 <- capability code (MP Extensions for BGP4)
* 04 <- length
* 40 04 00 47 <- AFI 16388, SAFI 71
* 02 <- opt. param. type (capabilities)
* 06 <- length
* 41 <- capability code (AS4 octet support)
* 04 <- length
* 00 00 00 64 <- AS number
*/
@Test
public void testOpenMessage() throws Exception {
final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry();
final Notification o = msgReg.parseMessage(Unpooled.copiedBuffer(inputBytes.get(3)), null);
final Open open = (Open) o;
final Set<BgpTableType> types = Sets.newHashSet();
for (final BgpParameters param : open.getBgpParameters()) {
for (final OptionalCapabilities optCapa : param.getOptionalCapabilities()) {
final CParameters cParam = optCapa.getCParameters();
if (cParam != null && cParam.getAugmentation(CParameters1.class) != null && cParam.getAugmentation(CParameters1.class).getMultiprotocolCapability() != null) {
final MultiprotocolCapability mp = cParam.getAugmentation(CParameters1.class).getMultiprotocolCapability();
final BgpTableType type = new BgpTableTypeImpl(mp.getAfi(), mp.getSafi());
types.add(type);
}
}
}
final Set<BgpTableType> expected = Sets.newHashSet();
expected.add(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class));
expected.add(new BgpTableTypeImpl(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class));
expected.add(new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class));
assertEquals(expected, types);
final ByteBuf buffer = Unpooled.buffer();
msgReg.serializeMessage(o, buffer);
assertArrayEquals(inputBytes.get(3), ByteArray.readAllBytes(buffer));
}
Aggregations