use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes in project bgpcep by opendaylight.
the class EvpnRibSupportTest method testBuildMpUnreachNlriUpdate.
@Test
public void testBuildMpUnreachNlriUpdate() {
final Update update = this.ribSupport.buildUpdate(Collections.emptyList(), createRoutes(EVPN_ROUTES), ATTRIBUTES);
assertEquals(UNREACH_NLRI, update.getAttributes().augmentation(AttributesUnreach.class).getMpUnreachNlri().getWithdrawnRoutes().getDestinationType());
assertNull(update.getAttributes().augmentation(AttributesReach.class));
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes in project bgpcep by opendaylight.
the class IPv6RIBSupportTest method testBuildMpUnreachNlriUpdate.
@Test
public void testBuildMpUnreachNlriUpdate() {
final Update update = this.ribSupport.buildUpdate(Collections.emptyList(), createRoutes(ROUTES), ATTRIBUTES);
assertEquals(UNREACH_NLRI, update.getAttributes().augmentation(AttributesUnreach.class).getMpUnreachNlri().getWithdrawnRoutes().getDestinationType());
assertNull(update.getAttributes().augmentation(AttributesReach.class));
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes in project bgpcep by opendaylight.
the class Ipv4NlriParserTest method parseReachNlriMultiPathTest.
@Test
public void parseReachNlriMultiPathTest() {
final MpReachNlri mpReachNlri = new MpReachNlriBuilder().setAdvertizedRoutes(new AdvertizedRoutesBuilder().setDestinationType(new DestinationIpv4CaseBuilder().setDestinationIpv4(new DestinationIpv4Builder().setIpv4Prefixes(PREFIXES).build()).build()).build()).build();
final MpReachNlriBuilder mpReachNlriBuilder = new MpReachNlriBuilder();
mpReachNlriBuilder.setAfi(Ipv4AddressFamily.class).setSafi(UnicastSubsequentAddressFamily.class);
this.parser.parseNlri(Unpooled.wrappedBuffer(MP_NLRI_BYTES), mpReachNlriBuilder, this.constraint);
mpReachNlriBuilder.setAfi(null).setSafi(null);
Assert.assertEquals(mpReachNlri, mpReachNlriBuilder.build());
final Ipv4NlriParser serializer = new Ipv4NlriParser();
final ByteBuf output = Unpooled.buffer(MP_NLRI_BYTES.length);
final Attributes attributes = new AttributesBuilder().addAugmentation(new AttributesReachBuilder().setMpReachNlri(mpReachNlri).build()).build();
serializer.serializeAttribute(attributes, output);
Assert.assertArrayEquals(MP_NLRI_BYTES, output.array());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes in project bgpcep by opendaylight.
the class Ipv4NlriParserTest method parseUnreachNlriMultiPathTest.
@Test
public void parseUnreachNlriMultiPathTest() {
final MpUnreachNlri mpUnreachNlri = new MpUnreachNlriBuilder().setWithdrawnRoutes(new WithdrawnRoutesBuilder().setDestinationType(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329.update.attributes.mp.unreach.nlri.withdrawn.routes.destination.type.DestinationIpv4CaseBuilder().setDestinationIpv4(new DestinationIpv4Builder().setIpv4Prefixes(PREFIXES).build()).build()).build()).build();
final MpUnreachNlriBuilder mpUnreachNlriBuilder = new MpUnreachNlriBuilder();
mpUnreachNlriBuilder.setAfi(Ipv4AddressFamily.class).setSafi(UnicastSubsequentAddressFamily.class);
this.parser.parseNlri(Unpooled.wrappedBuffer(MP_NLRI_BYTES), mpUnreachNlriBuilder, this.constraint);
mpUnreachNlriBuilder.setAfi(null).setSafi(null);
Assert.assertEquals(mpUnreachNlri, mpUnreachNlriBuilder.build());
final Ipv4NlriParser serializer = new Ipv4NlriParser();
final ByteBuf output = Unpooled.buffer(MP_NLRI_BYTES.length);
final Attributes attributes = new AttributesBuilder().addAugmentation(new AttributesUnreachBuilder().setMpUnreachNlri(mpUnreachNlri).build()).build();
serializer.serializeAttribute(attributes, output);
Assert.assertArrayEquals(MP_NLRI_BYTES, output.array());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes in project bgpcep by opendaylight.
the class BGPParserTest method testParseUpdateMessageWithMalformedAttributes.
/*
* Tests withdrawn routes with malformed attribute.
*
* ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff <- marker
* 00 36 <- length (54) - including header
* 02 <- message type
* 00 00 <- withdrawn routes length
* 00 1b <- total path attribute length (27)
* 40 <- attribute flags
* 01 <- attribute type code (origin)
* 01 <- WRONG attribute length
* 00 <- Origin value (IGP)
* 40 <- attribute flags
* 03 <- attribute type code (Next Hop)
* 04 <- attribute length
* 0a 00 00 02 <- value (10.0.0.2)
* 40 <- attribute flags
* 0e <- attribute type code (MP_REACH)
* 0d <- attribute length
* 00 01 <- AFI (Ipv4)
* 01 <- SAFI (Unicast)
* 04 <- next hop length
* ff ff ff ff <- next hop
* 00 <- reserved
* 18 <- length
* 0a 00 01 <- prefix (10.0.1.0)
* //NLRI
* 18 <- length
* 0a 00 02 <- prefix (10.0.2.0)
*/
@Test
public void testParseUpdateMessageWithMalformedAttributes() throws Exception {
final PeerSpecificParserConstraintImpl constraint = new PeerSpecificParserConstraintImpl();
constraint.addPeerConstraint(RevisedErrorHandlingSupport.class, RevisedErrorHandlingSupportImpl.forExternalPeer());
final Update message = (Update) messageRegistry.parseMessage(Unpooled.wrappedBuffer(input.get(0)), constraint);
assertNotNull(message);
assertNull(message.getNlri());
final List<WithdrawnRoutes> withdrawnRoutes = message.getWithdrawnRoutes();
assertNotNull(withdrawnRoutes);
assertEquals(1, withdrawnRoutes.size());
final Attributes attributes = message.getAttributes();
assertNotNull(attributes);
assertNull(attributes.augmentation(AttributesReach.class));
final AttributesUnreach AttributesUnreach = attributes.augmentation(AttributesUnreach.class);
assertNotNull(AttributesUnreach);
final MpUnreachNlri mpUnreachNlri = AttributesUnreach.getMpUnreachNlri();
assertNotNull(mpUnreachNlri);
}
Aggregations