import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.junit.After;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes.MpUnreachNlri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes.MpUnreachNlriBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv6AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.next.hop.c.next.hop.Ipv4NextHopCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.next.hop.c.next.hop.ipv4.next.hop._case.Ipv4NextHopBuilder;
verify(this.activator.nlriParser, times(1)).parseNlri(Mockito.any(ByteBuf.class), Mockito.any(MpReachNlriBuilder.class));
}
+ @Test
+ public void testMpReachWithZeroNextHop() throws BGPParsingException {
+ final NlriRegistry nlriReg = this.ctx.getNlriRegistry();
+ final byte[] mpReachBytes = {
+ 0x00, 0x01, 0x01, 0x00, 0x00
+ };
+ final MpReachNlri mpReach = new MpReachNlriBuilder()
+ .setAfi(Ipv4AddressFamily.class)
+ .setSafi(UnicastSubsequentAddressFamily.class)
+ .build();
+ final ByteBuf buffer = Unpooled.buffer(mpReachBytes.length);
+ nlriReg.serializeMpReach(mpReach, buffer);
+ assertArrayEquals(mpReachBytes, buffer.array());
+ assertEquals(mpReach, nlriReg.parseMpReach(Unpooled.wrappedBuffer(mpReachBytes)));
+ }
+
+ @Test
+ public void testMpReachIpv6() throws BGPParsingException {
+ final NlriRegistry nlriReg = this.ctx.getNlriRegistry();
+ final byte[] mpReachBytes = {
+ 0x00, 0x02, 0x01, 0x00, 0x00
+ };
+ final MpReachNlri mpReach = new MpReachNlriBuilder()
+ .setAfi(Ipv6AddressFamily.class)
+ .setSafi(UnicastSubsequentAddressFamily.class)
+ .build();
+ final ByteBuf buffer = Unpooled.buffer(mpReachBytes.length);
+ nlriReg.serializeMpReach(mpReach, buffer);
+ assertArrayEquals(mpReachBytes, buffer.array());
+ assertEquals(mpReach, nlriReg.parseMpReach(Unpooled.wrappedBuffer(mpReachBytes)));
+ }
+
@Test
public void testMpUnReachParser() throws BGPParsingException {
final NlriRegistry nlriReg = this.ctx.getNlriRegistry();