private void registerNlriHandler(final BGPExtensionProviderContext context, final List<AutoCloseable> regs) { final NextHopParserSerializer nextHopParser = new NextHopParserSerializer() {}; final EvpnNlriParser nlriHandler = new EvpnNlriParser(); regs.add(context.registerNlriParser(L2vpnAddressFamily.class, EvpnSubsequentAddressFamily.class, nlriHandler, nextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); regs.add(context.registerNlriSerializer(EvpnRoutes.class, nlriHandler)); }
@Override protected List<AutoCloseable> startImpl(final BGPExtensionProviderContext context) { final List<AutoCloseable> regs = new ArrayList<>(6); final Ipv4NextHopParserSerializer ipv4NextHopParser = new Ipv4NextHopParserSerializer(); final Ipv4NlriParser ipv4Codec = new Ipv4NlriParser(); regs.add(context.registerNlriParser(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, ipv4Codec, ipv4NextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); regs.add(context.registerNlriSerializer(Ipv4Routes.class, ipv4Codec)); final Ipv6NextHopParserSerializer ipv6NextHopParser = new Ipv6NextHopParserSerializer(); final Ipv6NlriParser ipv6Codec = new Ipv6NlriParser(); regs.add(context.registerNlriParser(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, ipv6Codec, ipv6NextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); regs.add(context.registerNlriSerializer(Ipv6Routes.class, ipv6Codec)); final Ipv6BgpPrefixSidParser tlvHandler = new Ipv6BgpPrefixSidParser(); regs.add(context.registerBgpPrefixSidTlvParser(tlvHandler.getType(), tlvHandler)); regs.add(context.registerBgpPrefixSidTlvSerializer(Ipv6SidTlv.class, tlvHandler)); return regs; }
@Override protected List<AutoCloseable> startImpl(final BGPExtensionProviderContext context) { final List<AutoCloseable> regs = new ArrayList<>(); final SimpleNlriTypeRegistry nlriTypeReg = SimpleNlriTypeRegistry.getInstance(); regs.add(context.registerAddressFamily(LinkstateAddressFamily.class, LINKSTATE_AFI)); regs.add(context.registerSubsequentAddressFamily(LinkstateSubsequentAddressFamily.class, LINKSTATE_SAFI)); final NextHopParserSerializer linkstateNextHopParser = new NextHopParserSerializer() { }; final LinkstateNlriParser parser = new LinkstateNlriParser(); regs.add(context.registerNlriParser(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class, parser, linkstateNextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); regs.add(context.registerNlriSerializer(LinkstateRoutes.class, parser)); regs.add(context.registerAttributeSerializer(Attributes1.class, new LinkstateAttributeParser(this.ianaLinkstateAttributeType, this.rsvpTeObjectRegistry))); final LinkstateAttributeParser linkstateAttributeParser = new LinkstateAttributeParser(this.ianaLinkstateAttributeType, this.rsvpTeObjectRegistry); regs.add(context.registerAttributeParser(linkstateAttributeParser.getType(), linkstateAttributeParser)); registerNlriCodecs(regs, nlriTypeReg); registerNlriTlvCodecs(regs, nlriTypeReg); registerBindingSubTlvs(regs); return regs; }
regs.add(context.registerNlriSerializer(FlowspecRoutes.class, fsIpv4Handler)); regs.add(context.registerNlriSerializer(FlowspecIpv6Routes.class, fsIpv6Handler)); regs.add(context.registerNlriSerializer(FlowspecL3vpnIpv4Routes.class, fsL3vpnIpv4Handler)); regs.add(context.registerNlriSerializer(FlowspecL3vpnIpv6Routes.class, fsL3vpnIpv6Handler));