use of org.opendaylight.protocol.bgp.parser.impl.message.update.AigpAttributeParser in project bgpcep by opendaylight.
the class BGPActivator method registerAttributeParsers.
private static void registerAttributeParsers(final List<AutoCloseable> regs, final BGPExtensionProviderContext context) {
final BgpPrefixSidAttributeParser prefixSidAttributeParser = new BgpPrefixSidAttributeParser(context.getBgpPrefixSidTlvRegistry());
regs.add(context.registerAttributeSerializer(BgpPrefixSid.class, prefixSidAttributeParser));
regs.add(context.registerAttributeParser(BgpPrefixSidAttributeParser.TYPE, prefixSidAttributeParser));
final OriginAttributeParser originAttributeParser = new OriginAttributeParser();
regs.add(context.registerAttributeSerializer(Origin.class, originAttributeParser));
regs.add(context.registerAttributeParser(OriginAttributeParser.TYPE, originAttributeParser));
final AigpAttributeParser aigpAttributeParser = new AigpAttributeParser();
regs.add(context.registerAttributeSerializer(Aigp.class, aigpAttributeParser));
regs.add(context.registerAttributeParser(AigpAttributeParser.TYPE, aigpAttributeParser));
final AsPathAttributeParser asPathAttributeParser = new AsPathAttributeParser(context.getReferenceCache());
regs.add(context.registerAttributeSerializer(AsPath.class, asPathAttributeParser));
regs.add(context.registerAttributeParser(AsPathAttributeParser.TYPE, asPathAttributeParser));
final NextHopAttributeParser nextHopAttributeParser = new NextHopAttributeParser();
regs.add(context.registerAttributeSerializer(NextHop.class, nextHopAttributeParser));
regs.add(context.registerAttributeParser(NextHopAttributeParser.TYPE, nextHopAttributeParser));
final MultiExitDiscriminatorAttributeParser multiExitDiscriminatorAttributeParser = new MultiExitDiscriminatorAttributeParser();
regs.add(context.registerAttributeSerializer(MultiExitDisc.class, multiExitDiscriminatorAttributeParser));
regs.add(context.registerAttributeParser(MultiExitDiscriminatorAttributeParser.TYPE, multiExitDiscriminatorAttributeParser));
final LocalPreferenceAttributeParser localPreferenceAttributeParser = new LocalPreferenceAttributeParser();
regs.add(context.registerAttributeSerializer(LocalPref.class, localPreferenceAttributeParser));
regs.add(context.registerAttributeParser(LocalPreferenceAttributeParser.TYPE, localPreferenceAttributeParser));
final AtomicAggregateAttributeParser atomicAggregateAttributeParser = new AtomicAggregateAttributeParser();
regs.add(context.registerAttributeSerializer(AtomicAggregate.class, atomicAggregateAttributeParser));
regs.add(context.registerAttributeParser(AtomicAggregateAttributeParser.TYPE, atomicAggregateAttributeParser));
final AggregatorAttributeParser as4AggregatorAttributeParser = new AggregatorAttributeParser(context.getReferenceCache());
regs.add(context.registerAttributeSerializer(Aggregator.class, as4AggregatorAttributeParser));
regs.add(context.registerAttributeParser(AggregatorAttributeParser.TYPE, as4AggregatorAttributeParser));
final CommunitiesAttributeParser communitiesAttributeParser = new CommunitiesAttributeParser(context.getReferenceCache());
regs.add(context.registerAttributeSerializer(Communities.class, communitiesAttributeParser));
regs.add(context.registerAttributeParser(CommunitiesAttributeParser.TYPE, communitiesAttributeParser));
final OriginatorIdAttributeParser originatorIdAttributeParser = new OriginatorIdAttributeParser();
regs.add(context.registerAttributeSerializer(OriginatorId.class, originatorIdAttributeParser));
regs.add(context.registerAttributeParser(OriginatorIdAttributeParser.TYPE, originatorIdAttributeParser));
final ClusterIdAttributeParser clusterIdAttributeParser = new ClusterIdAttributeParser();
regs.add(context.registerAttributeSerializer(ClusterId.class, clusterIdAttributeParser));
regs.add(context.registerAttributeParser(ClusterIdAttributeParser.TYPE, clusterIdAttributeParser));
final NlriRegistry nlriReg = context.getNlriRegistry();
final MPReachAttributeParser mpReachAttributeParser = new MPReachAttributeParser(nlriReg);
regs.add(context.registerAttributeSerializer(MpReachNlri.class, mpReachAttributeParser));
regs.add(context.registerAttributeParser(MPReachAttributeParser.TYPE, mpReachAttributeParser));
final MPUnreachAttributeParser mpUnreachAttributeParser = new MPUnreachAttributeParser(nlriReg);
regs.add(context.registerAttributeSerializer(MpUnreachNlri.class, mpUnreachAttributeParser));
regs.add(context.registerAttributeParser(MPUnreachAttributeParser.TYPE, mpUnreachAttributeParser));
final ExtendedCommunitiesAttributeParser extendedCommunitiesAttributeParser = new ExtendedCommunitiesAttributeParser(context.getExtendedCommunityRegistry());
regs.add(context.registerAttributeSerializer(ExtendedCommunities.class, extendedCommunitiesAttributeParser));
regs.add(context.registerAttributeParser(ExtendedCommunitiesAttributeParser.TYPE, extendedCommunitiesAttributeParser));
regs.add(context.registerAttributeParser(AS4AggregatorAttributeParser.TYPE, new AS4AggregatorAttributeParser()));
regs.add(context.registerAttributeParser(AS4PathAttributeParser.TYPE, new AS4PathAttributeParser()));
regs.add(context.registerAttributeSerializer(UnrecognizedAttributes.class, new UnrecognizedAttributesSerializer()));
}
use of org.opendaylight.protocol.bgp.parser.impl.message.update.AigpAttributeParser in project bgpcep by opendaylight.
the class PathAttributeParserTest method testSerializingAigpAttribute.
@Test
public void testSerializingAigpAttribute() throws BGPDocumentedException, BGPParsingException {
final byte[] value = new byte[] { 1, 0, 11, 0, 0, 0, 0, 0, 0, 0, 8 };
final ByteBuf inputData = Unpooled.buffer();
final ByteBuf testBuffer = Unpooled.buffer();
AttributeUtil.formatAttribute(AttributeUtil.OPTIONAL, AigpAttributeParser.TYPE, Unpooled.copiedBuffer(value), inputData);
final BGPExtensionProviderContext providerContext = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance();
final Attributes pathAttributes = providerContext.getAttributeRegistry().parseAttributes(inputData, null);
final Aigp aigp = pathAttributes.getAigp();
final AttributesBuilder pathAttributesBuilder = new AttributesBuilder();
pathAttributesBuilder.setAigp(aigp);
final AigpAttributeParser parser = new AigpAttributeParser();
parser.serializeAttribute(pathAttributesBuilder.build(), testBuffer);
final byte[] unparserData = inputData.copy(0, inputData.writerIndex()).array();
final byte[] serializedData = testBuffer.copy(0, inputData.writerIndex()).array();
assertTrue("Buffers should be the same.", Arrays.equals(unparserData, serializedData));
}
Aggregations