use of org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler in project bgpcep by opendaylight.
the class BGPActivator method registerCapabilityParsers.
private static void registerCapabilityParsers(final List<AutoCloseable> regs, final BGPExtensionProviderContext context) {
final AddressFamilyRegistry afiReg = context.getAddressFamilyRegistry();
final SubsequentAddressFamilyRegistry safiReg = context.getSubsequentAddressFamilyRegistry();
final MultiProtocolCapabilityHandler multi = new MultiProtocolCapabilityHandler(afiReg, safiReg);
regs.add(context.registerCapabilityParser(MultiProtocolCapabilityHandler.CODE, multi));
regs.add(context.registerCapabilitySerializer(MultiprotocolCapability.class, multi));
final AddPathCapabilityHandler addPath = new AddPathCapabilityHandler(afiReg, safiReg);
regs.add(context.registerCapabilityParser(AddPathCapabilityHandler.CODE, addPath));
regs.add(context.registerCapabilitySerializer(AddPathCapability.class, addPath));
final RouteRefreshCapabilityHandler routeRefresh = new RouteRefreshCapabilityHandler();
regs.add(context.registerCapabilityParser(RouteRefreshCapabilityHandler.CODE, routeRefresh));
regs.add(context.registerCapabilitySerializer(RouteRefreshCapability.class, routeRefresh));
final As4CapabilityHandler as4 = new As4CapabilityHandler();
regs.add(context.registerCapabilityParser(As4CapabilityHandler.CODE, as4));
regs.add(context.registerCapabilitySerializer(As4BytesCapability.class, as4));
final GracefulCapabilityHandler grace = new GracefulCapabilityHandler(afiReg, safiReg);
regs.add(context.registerCapabilitySerializer(GracefulRestartCapability.class, grace));
regs.add(context.registerCapabilityParser(GracefulCapabilityHandler.CODE, grace));
final CapabilityParameterParser cpp = new CapabilityParameterParser(context.getCapabilityRegistry());
regs.add(context.registerParameterParser(CapabilityParameterParser.TYPE, cpp));
regs.add(context.registerParameterSerializer(BgpParameters.class, cpp));
final BgpExtendedMessageCapabilityHandler bgpextmessage = new BgpExtendedMessageCapabilityHandler();
regs.add(context.registerCapabilityParser(BgpExtendedMessageCapabilityHandler.CODE, bgpextmessage));
regs.add(context.registerCapabilitySerializer(BgpExtendedMessageCapability.class, bgpextmessage));
}
use of org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler in project bgpcep by opendaylight.
the class MultiProtocolCapabilityHandlerTest method testUnhandledAfi.
@Test(expected = IllegalArgumentException.class)
public void testUnhandledAfi() {
final CParameters capabilityToSerialize = new CParametersBuilder().addAugmentation(CParameters1.class, new CParameters1Builder().setMultiprotocolCapability(new MultiprotocolCapabilityBuilder().setAfi(MultiProtocolCapabilityHandlerTest.AFI).setSafi(MultiProtocolCapabilityHandlerTest.SAFI).build()).build()).build();
final ByteBuf bytes = Unpooled.buffer();
final MultiProtocolCapabilityHandler handler = new MultiProtocolCapabilityHandler(this.afirExpection, this.safir);
handler.serializeCapability(capabilityToSerialize, bytes);
}
use of org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler in project bgpcep by opendaylight.
the class MultiProtocolCapabilityHandlerTest method noSerializationTest.
@Test
public void noSerializationTest() {
final CParameters capabilityNoAugmentation = new CParametersBuilder().addAugmentation(CParameters1.class, null).build();
final CParameters capabilityNoMP = new CParametersBuilder().addAugmentation(CParameters1.class, new CParameters1Builder().build()).build();
final ByteBuf bytes = Unpooled.buffer();
final MultiProtocolCapabilityHandler handler = new MultiProtocolCapabilityHandler(this.afir, this.safirException);
handler.serializeCapability(capabilityNoAugmentation, bytes);
assertEquals(0, bytes.readableBytes());
handler.serializeCapability(capabilityNoMP, bytes);
assertEquals(0, bytes.readableBytes());
}
use of org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler in project bgpcep by opendaylight.
the class MultiProtocolCapabilityHandlerTest method testCapabilityHandler.
@Test
public void testCapabilityHandler() throws BGPDocumentedException, BGPParsingException {
final CParameters capabilityToSerialize = new CParametersBuilder().addAugmentation(CParameters1.class, new CParameters1Builder().setMultiprotocolCapability(new MultiprotocolCapabilityBuilder().setAfi(MultiProtocolCapabilityHandlerTest.AFI).setSafi(MultiProtocolCapabilityHandlerTest.SAFI).build()).build()).build();
final ByteBuf bytes = Unpooled.buffer();
final MultiProtocolCapabilityHandler handler = new MultiProtocolCapabilityHandler(this.afir, this.safir);
handler.serializeCapability(capabilityToSerialize, bytes);
final CParameters newCaps = handler.parseCapability(bytes);
assertEquals(capabilityToSerialize.hashCode(), newCaps.hashCode());
}
use of org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler in project bgpcep by opendaylight.
the class MultiProtocolCapabilityHandlerTest method testUnhandledSafi.
@Test(expected = IllegalArgumentException.class)
public void testUnhandledSafi() {
final CParameters capabilityToSerialize = new CParametersBuilder().addAugmentation(CParameters1.class, new CParameters1Builder().setMultiprotocolCapability(new MultiprotocolCapabilityBuilder().setAfi(MultiProtocolCapabilityHandlerTest.AFI).setSafi(MultiProtocolCapabilityHandlerTest.SAFI).build()).build()).build();
final ByteBuf bytes = Unpooled.buffer();
final MultiProtocolCapabilityHandler handler = new MultiProtocolCapabilityHandler(this.afir, this.safirException);
handler.serializeCapability(capabilityToSerialize, bytes);
}
Aggregations