aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java')
-rwxr-xr-xframework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java1496
1 files changed, 0 insertions, 1496 deletions
diff --git a/framework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java b/framework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java
deleted file mode 100755
index 8e1cd202..00000000
--- a/framework/src/onos/protocols/bgp/bgpio/src/test/java/org/onosproject/bgpio/protocol/BgpUpdateMsgTest.java
+++ /dev/null
@@ -1,1496 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.bgpio.protocol;
-
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
-import static org.hamcrest.core.Is.is;
-
-import org.jboss.netty.buffer.ChannelBuffer;
-import org.jboss.netty.buffer.ChannelBuffers;
-import org.junit.Test;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpPrefix;
-import org.onosproject.bgpio.exceptions.BgpParseException;
-import org.onosproject.bgpio.protocol.linkstate.BgpLinkLsNlriVer4;
-import org.onosproject.bgpio.protocol.linkstate.BgpNodeLSIdentifier;
-import org.onosproject.bgpio.protocol.linkstate.BgpNodeLSNlriVer4;
-import org.onosproject.bgpio.protocol.linkstate.BgpNodeLSNlriVer4.ProtocolType;
-import org.onosproject.bgpio.protocol.linkstate.NodeDescriptors;
-import org.onosproject.bgpio.protocol.ver4.BgpPathAttributes;
-import org.onosproject.bgpio.types.As4Path;
-import org.onosproject.bgpio.types.AsPath;
-import org.onosproject.bgpio.types.AutonomousSystemTlv;
-import org.onosproject.bgpio.types.BgpHeader;
-import org.onosproject.bgpio.types.BgpLSIdentifierTlv;
-import org.onosproject.bgpio.types.BgpValueType;
-import org.onosproject.bgpio.types.IPReachabilityInformationTlv;
-import org.onosproject.bgpio.types.IsIsNonPseudonode;
-import org.onosproject.bgpio.types.IsIsPseudonode;
-import org.onosproject.bgpio.types.Med;
-import org.onosproject.bgpio.types.MpReachNlri;
-import org.onosproject.bgpio.types.MpUnReachNlri;
-import org.onosproject.bgpio.types.Origin;
-import org.onosproject.bgpio.types.NextHop;
-import org.onosproject.bgpio.types.LocalPref;
-import org.onosproject.bgpio.types.Origin.ORIGINTYPE;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-
-/**
- * Test cases for BGP update Message.
- */
-public class BgpUpdateMsgTest {
- protected static final Logger log = LoggerFactory.getLogger(BgpUpdateMsgTest.class);
- public static final byte[] MARKER = new byte[]{(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff};
- public static final byte UPDATE_MSG_TYPE = 0x2;
-
- /**
- * This test case checks update message with no withdrawn routes
- * and path attributes.
- */
- @Test
- public void bgpUpdateMessageTest01() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x17, 0x02, 0x00, 0x00, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 23));
- }
-
- /**
- * In this test case, Marker is set as 0 in input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest02() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- 0x00, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x17, 0x02, 0x00, 0x00, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid message length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest03() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, 0x00, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid message type is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest04() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, 0x00, 0x17, 0x06, 0x00, 0x00, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with withdrawn routes.
- */
- @Test
- public void bgpUpdateMessageTest05() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x1b, 0x02, 0x00, 0x04, 0x18, 0x0a, 0x01, 0x01, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 27));
-
- ListIterator<IpPrefix> listIterator1 = other.withdrawnRoutes().listIterator();
- byte[] prefix = new byte[] {0x0a, 0x01, 0x01, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 24));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
- }
-
- /**
- * In this test case, Invalid withdrawn route length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest06() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x1b, 0x02, 0x00, 0x04, 0x19, 0x0a, 0x01, 0x01, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with path attributes.
- */
- @Test
- public void bgpUpdateMessageTest07() throws BgpParseException {
- byte[] updateMsg = new byte [] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x01, 0x01,
- 0x00, 0x40, 0x02, 0x00, 0x40, 0x03, 0x04, 0x03, 0x03, 0x03, 0x03, (byte) 0x80, 0x04, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x05, 0x04, 0x00, 0x00, 0x00, 0x64, 0x18, 0x0a, 0x1e, 0x03, 0x18, 0x0a, 0x1e,
- 0x02, 0x18, 0x0a, 0x1e, 0x01};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 63));
-
- BgpValueType testPathAttribute;
- Origin origin;
- AsPath asPath;
- NextHop nexthop;
- Med med;
- LocalPref localPref;
-
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next(); // AS PATH value is empty in hex dump
- asPath = (AsPath) testPathAttribute;
- List<Short> asPathValues = asPath.asPathSeq();
- assertThat(asPathValues.isEmpty(), is(true));
-
- testPathAttribute = listIterator.next();
- nexthop = (NextHop) testPathAttribute;
- byte[] nextHopAddr = new byte[] {0x03, 0x03, 0x03, 0x03};
- assertThat(nexthop.nextHop().toOctets(), is(nextHopAddr));
-
- testPathAttribute = listIterator.next();
- med = (Med) testPathAttribute;
- assertThat(med.med(), is(0));
-
- testPathAttribute = listIterator.next();
- localPref = (LocalPref) testPathAttribute;
- assertThat(localPref.localPref(), is(100));
-
- ListIterator<IpPrefix> listIterator1 = other.nlri().listIterator();
- byte[] prefix = new byte[] {0x0a, 0x1e, 0x03, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 24));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
- }
-
- /**
- * In this test case, Invalid ORIGIN flags is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest08() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid ORIGIN value is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest09() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x04, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, update message without path attribute is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest10() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x1a, 0x02, 0x00, 0x04, 0x18, 0x0a, 0x01, 0x01, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, update message with incorrect path attribute length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest11() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x1b, 0x02, 0x00, 0x04, 0x18, 0x0a, 0x01, 0x01, 0x00, 0x01};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid MED flags is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest12() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0xff, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid AS Path flags is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest13() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- (byte) 0xff, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid MP reach flags is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest14() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0xff, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid SAFI is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest15() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x49, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid AFI is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest16() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x06, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid res is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest17() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- (byte) 0xff, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x01, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with node NLRI.
- */
- @Test
- public void bgpUpdateMessageTest18() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 96));
-
- BgpValueType testPathAttribute;
- Origin origin;
- AsPath asPath;
- Med med;
- MpReachNlri mpReach;
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next();
- asPath = (AsPath) testPathAttribute;
- ListIterator<Short> listIterator2 = asPath.asPathSeq().listIterator();
- assertThat(listIterator2.next(), is((short) 65001));
-
- testPathAttribute = listIterator.next();
- med = (Med) testPathAttribute;
- assertThat(med.med(), is(0));
-
- testPathAttribute = listIterator.next();
- mpReach = (MpReachNlri) testPathAttribute;
- assertThat(mpReach.mpReachNlriLen(), is((int) 52));
- assertThat(mpReach.getType(), is((short) 14));
-
- List<BgpLSNlri> testMpReachNlri = new LinkedList<>();
- testMpReachNlri = mpReach.mpReachNlri();
-
- ListIterator<BgpLSNlri> list1 = testMpReachNlri.listIterator();
- BgpLSNlri testnlri = list1.next();
- NlriType nlriType = org.onosproject.bgpio.protocol.NlriType.NODE;
- ProtocolType protocolId = org.onosproject.bgpio.protocol.linkstate.
- BgpNodeLSNlriVer4.ProtocolType.ISIS_LEVEL_TWO;
- assertThat(testnlri.getIdentifier(), is((long) 0));
- assertThat(testnlri.getNlriType(), is(nlriType));
- assertThat(testnlri.getProtocolId(), is(protocolId));
-
- BgpNodeLSNlriVer4 testNodenlri = (BgpNodeLSNlriVer4) testnlri;
-
- BgpNodeLSIdentifier testLocalNodeDescriptors = testNodenlri.getLocalNodeDescriptors();
-
- List<BgpValueType> testSubTlvs = new LinkedList<>();
- NodeDescriptors localNodeDescriptors = testLocalNodeDescriptors.getNodedescriptors();
- testSubTlvs = localNodeDescriptors.getSubTlvs();
- ListIterator<BgpValueType> subtlvlist1 = testSubTlvs.listIterator();
-
- AutonomousSystemTlv testAutonomousSystemTlv = (AutonomousSystemTlv) subtlvlist1.next();
- assertThat(testAutonomousSystemTlv.getAsNum(), is(2222));
- assertThat(testAutonomousSystemTlv.getType(), is((short) 512));
-
- BgpLSIdentifierTlv testBGPLSIdentifierTlv = (BgpLSIdentifierTlv) subtlvlist1.next();
- assertThat(testBGPLSIdentifierTlv.getBgpLsIdentifier(), is(33686018));
- assertThat(testBGPLSIdentifierTlv.getType(), is((short) 513));
-
- IsIsNonPseudonode testIsIsNonPseudonode = (IsIsNonPseudonode) subtlvlist1.next();
- byte[] expISONodeID = new byte[] {0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58};
- assertThat(testIsIsNonPseudonode.getISONodeID(), is(expISONodeID));
- assertThat(testIsIsNonPseudonode.getType(), is((short) 515));
-
- }
-
- /**
- * This test case checks update message with prefix NLRI.
- */
- @Test
- public void bgpUpdateMessageTest19() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, (byte) 0xd6, 0x02, 0x00, 0x04,
- 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, (byte) 0xbb, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x90, 0x0e, 0x00, (byte) 0xa5, 0x40, 0x04, 0x47, //mpreach
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x03, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x19, 0x21, 0x68,
- 0x07, 0x70, 0x01, 0x01, 0x09, 0x00, 0x05, 0x20,
- (byte) 0xc0, (byte) 0xa8, 0x4d, 0x01, 0x00, 0x03, 0x00, 0x30,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00,
- 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00,
- 0x06, 0x19, 0x00, (byte) 0x95, 0x02, 0x50, 0x21, 0x01,
- 0x09, 0x00, 0x05, 0x20, 0x15, 0x15, 0x15, 0x15,
- 0x00, 0x03, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x02, 0x20, 0x22,
- 0x02, 0x20, 0x22, 0x01, 0x09, 0x00, 0x05, 0x20,
- 0x16, 0x16, 0x16, 0x16}; // prefix nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 214));
-
- ListIterator<IpPrefix> listIterator1 = other.withdrawnRoutes().listIterator();
- byte[] prefix = new byte[] {0x0a, 0x01, 0x01, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 24));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
-
- BgpValueType testPathAttribute;
- Origin origin;
- AsPath asPath;
- Med med;
- MpReachNlri mpReach;
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next();
- asPath = (AsPath) testPathAttribute;
- ListIterator<Short> listIterator2 = asPath.asPathSeq().listIterator();
- assertThat(listIterator2.next(), is((short) 65001));
-
- testPathAttribute = listIterator.next();
- med = (Med) testPathAttribute;
- assertThat(med.med(), is(0));
-
- testPathAttribute = listIterator.next();
- mpReach = (MpReachNlri) testPathAttribute;
- assertThat(mpReach.mpReachNlriLen(), is((int) 165));
- assertThat(mpReach.getType(), is((short) 14));
-
- List<BgpLSNlri> testMpReachNlri = new LinkedList<>();
- testMpReachNlri = mpReach.mpReachNlri();
-
- ListIterator<BgpLSNlri> list1 = testMpReachNlri.listIterator();
- BgpLSNlri testnlri = list1.next();
- NlriType nlriType = org.onosproject.bgpio.protocol.NlriType.PREFIX_IPV4;
- ProtocolType protocolId = org.onosproject.bgpio.protocol.linkstate.
- BgpNodeLSNlriVer4.ProtocolType.ISIS_LEVEL_TWO;
- assertThat(testnlri.getIdentifier(), is((long) 0));
- assertThat(testnlri.getNlriType(), is(nlriType));
- assertThat(testnlri.getProtocolId(), is(protocolId));
-
- BgpPrefixLSNlri testprefixnlri = (BgpPrefixLSNlri) testnlri;
-
- NodeDescriptors testLocalNodeDescriptors = testprefixnlri.getLocalNodeDescriptors();
-
- List<BgpValueType> testSubTlvs = new LinkedList<>();
- testSubTlvs = testLocalNodeDescriptors.getSubTlvs();
- ListIterator<BgpValueType> subtlvlist1 = testSubTlvs.listIterator();
-
- AutonomousSystemTlv testAutonomousSystemTlv = (AutonomousSystemTlv) subtlvlist1.next();
- assertThat(testAutonomousSystemTlv.getAsNum(), is(2222));
- assertThat(testAutonomousSystemTlv.getType(), is((short) 512));
-
- BgpLSIdentifierTlv testBGPLSIdentifierTlv = (BgpLSIdentifierTlv) subtlvlist1.next();
- assertThat(testBGPLSIdentifierTlv.getBgpLsIdentifier(), is(33686018));
- assertThat(testBGPLSIdentifierTlv.getType(), is((short) 513));
-
- IsIsNonPseudonode testIsIsNonPseudonode = (IsIsNonPseudonode) subtlvlist1.next();
- byte[] expISONodeID = new byte[] {0x19, 0x21, 0x68, 0x07, 0x70, 0x01};
- assertThat(testIsIsNonPseudonode.getISONodeID(), is(expISONodeID));
- assertThat(testIsIsNonPseudonode.getType(), is((short) 515));
-
- List<BgpValueType> testPrefixDescriptors = new LinkedList<>();
- testPrefixDescriptors = testprefixnlri.getPrefixdescriptor();
- ListIterator<BgpValueType> subtlvlist2 = testPrefixDescriptors.listIterator();
- IPReachabilityInformationTlv testIPReachabilityInformationTlv = (IPReachabilityInformationTlv)
- subtlvlist2.next();
- byte[] address = new byte[] {(byte) 0xc0, (byte) 0xa8, 0x4d, 0x01};
- IpPrefix prefix1 = IpPrefix.valueOf(IpAddress.Version.INET, address, 32);
- assertThat(testIPReachabilityInformationTlv.getPrefixValue(), is(prefix1));
- assertThat(testIPReachabilityInformationTlv.getPrefixLen(), is((byte) 32));
- }
-
- /**
- * This test case checks update message with link NLRI.
- */
- @Test
- public void bgpUpdateMessageTest20() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, (byte) 0x83, 0x02, 0x00, 0x04,
- 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, 0x68, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x53, 0x40, 0x04, 0x47, //mpreach
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x02, 0x00, 0x46, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x07, 0x19, 0x00,
- (byte) 0x95, 0x02, 0x50, 0x21, 0x03, 0x01, 0x01, 0x00, 0x1a, 0x02,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00,
- 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x06, 0x19,
- 0x00, (byte) 0x95, 0x02, 0x50, 0x21//link nlri
- };
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message = null;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 131));
-
- ListIterator<IpPrefix> listIterator1 = other.withdrawnRoutes().listIterator();
- byte[] prefix = new byte[] {0x0a, 0x01, 0x01, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 24));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
-
- BgpValueType testPathAttribute;
- Origin origin;
- AsPath asPath;
- Med med;
- MpReachNlri mpReach;
-
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next();
- asPath = (AsPath) testPathAttribute;
- ListIterator<Short> listIterator2 = asPath.asPathSeq().listIterator();
- assertThat(listIterator2.next(), is((short) 65001));
-
- testPathAttribute = listIterator.next();
- med = (Med) testPathAttribute;
- assertThat(med.med(), is(0));
-
- testPathAttribute = listIterator.next();
- mpReach = (MpReachNlri) testPathAttribute;
- assertThat(mpReach.mpReachNlriLen(), is((int) 83));
- assertThat(mpReach.getType(), is((short) 14));
-
- List<BgpLSNlri> testMpReachNlri = new LinkedList<>();
- testMpReachNlri = mpReach.mpReachNlri();
-
- ListIterator<BgpLSNlri> list1 = testMpReachNlri.listIterator();
- BgpLSNlri testnlri = list1.next();
- NlriType nlriType = org.onosproject.bgpio.protocol.NlriType.LINK;
- ProtocolType protocolId = org.onosproject.bgpio.protocol.linkstate.
- BgpNodeLSNlriVer4.ProtocolType.ISIS_LEVEL_TWO;
- assertThat(testnlri.getIdentifier(), is((long) 0));
- assertThat(testnlri.getNlriType(), is(nlriType));
- assertThat(testnlri.getProtocolId(), is(protocolId));
-
- BgpLinkLsNlriVer4 testlinknlri = (BgpLinkLsNlriVer4) testnlri;
-
- NodeDescriptors testLocalNodeDescriptors = testlinknlri.localNodeDescriptors();
-
- List<BgpValueType> testSubTlvs = new LinkedList<>();
- testSubTlvs = testLocalNodeDescriptors.getSubTlvs();
- ListIterator<BgpValueType> subtlvlist1 = testSubTlvs.listIterator();
-
- AutonomousSystemTlv testAutonomousSystemTlv = (AutonomousSystemTlv) subtlvlist1.next();
-
- assertThat(testAutonomousSystemTlv.getAsNum(), is(2222));
- assertThat(testAutonomousSystemTlv.getType(), is((short) 512));
-
- BgpLSIdentifierTlv testBGPLSIdentifierTlv = (BgpLSIdentifierTlv) subtlvlist1.next();
- assertThat(testBGPLSIdentifierTlv.getBgpLsIdentifier(), is(33686018));
- assertThat(testBGPLSIdentifierTlv.getType(), is((short) 513));
-
- IsIsPseudonode testIsIsPseudonode = (IsIsPseudonode) subtlvlist1.next();
- assertThat(testIsIsPseudonode.getPSNIdentifier(), is((byte) 3));
- assertThat(testIsIsPseudonode.getType(), is((short) 515));
-
- NodeDescriptors testRemoteNodeDescriptors = testlinknlri.remoteNodeDescriptors();
- testSubTlvs = testRemoteNodeDescriptors.getSubTlvs();
- ListIterator<BgpValueType> subtlvlist2 = testSubTlvs.listIterator();
-
- testAutonomousSystemTlv = (AutonomousSystemTlv) subtlvlist2.next();
-
- assertThat(testAutonomousSystemTlv.getAsNum(), is(2222));
- assertThat(testAutonomousSystemTlv.getType(), is((short) 512));
-
- testBGPLSIdentifierTlv = (BgpLSIdentifierTlv) subtlvlist2.next();
- assertThat(testBGPLSIdentifierTlv.getBgpLsIdentifier(), is(33686018));
- assertThat(testBGPLSIdentifierTlv.getType(), is((short) 513));
-
- IsIsNonPseudonode testIsIsNonPseudonode = (IsIsNonPseudonode) subtlvlist2.next();
- byte[] expISONodeID = new byte[] {0x19, 0x00, (byte) 0x95, 0x02, 0x50, 0x21};
- assertThat(testIsIsNonPseudonode.getISONodeID(), is(expISONodeID));
- assertThat(testIsIsNonPseudonode.getType(), is((short) 515));
- }
-
- /**
- * In this test case, Invalid withdrawn route length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest21() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x1b, 0x02, 0x00, 0x07, 0x18, 0x0a, 0x01, 0x01, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid withdrawn route length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest22() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x25, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x0e, //path attribute len
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00}; //med
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Mandatory attributes are not given in input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest23() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x29, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x12, //path attribute len
- 0x0e, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00}; //med
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid origin length is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest24() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x29, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x12, //path attribute len
- 0x04, 0x01, 0x02, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00}; //med
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid origin value is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest25() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x29, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x12, //path attribute len
- 0x04, 0x01, 0x01, 0x04, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00}; //med
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid descriptor type in node nlri is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest26() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, Invalid node nlri length field in is given as input and expecting
- * an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest27() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x60, 0x02, 0x00, 0x00, //withdrawn len
- 0x00, 0x49, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x34, 0x40, 0x04, 0x47, //mpreach with safi = 71
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1b, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, withdrawn routes with prefix length 0 is given as input and expecting
- * an exception.
- */
- @Test
- public void bgpUpdateMessageTest28() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, //marker
- 0x00, 0x18, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * In this test case, update message without total Path Attribute Length field is given as
- * input and expecting an exception.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest29() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, //marker
- 0x00, 0x16, 0x02, 0x00, 0x01, 0x00};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with as4 path attribute.
- */
- @Test
- public void bgpUpdateMessageTest30() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- 0x00, 0x3a, 0x02, 0x00, 0x00, 0x00, 0x21, 0x40, 0x01, 0x01, 0x00, (byte) 0xc0,
- 0x11, 0x0a, 0x02, 0x02, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x28, 0x00, 0x01, 0x40,
- 0x02, 0x06, 0x02, 0x02, 0x5b, (byte) 0xa0, 0x5b, (byte) 0xa0, 0x40, 0x03, 0x04,
- (byte) 0xac, 0x10, 0x03, 0x01, 0x08, 0x28};
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message = null;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 58));
-
- BgpValueType testPathAttribute;
- Origin origin;
- As4Path as4Path;
- AsPath asPath;
- NextHop nextHop;
-
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next();
- as4Path = (As4Path) testPathAttribute;
- ListIterator<Integer> listIterator2 = as4Path.as4PathSEQ().listIterator();
- assertThat(listIterator2.next(), is(655361));
-
- testPathAttribute = listIterator.next();
- asPath = (AsPath) testPathAttribute;
- ListIterator<Short> listIterator3 = asPath.asPathSeq().listIterator();
- assertThat(listIterator3.next(), is((short) 23456));
-
- testPathAttribute = listIterator.next();
- nextHop = (NextHop) testPathAttribute;
- byte[] nextHopAddr = new byte[] {(byte) 0xac, 0x10, 0x03, 0x01};
- assertThat(nextHop.nextHop().toOctets(), is(nextHopAddr));
-
- ListIterator<IpPrefix> listIterator1 = other.nlri().listIterator();
- byte[] prefix = new byte[] {0x28, 0x00, 0x00, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 8));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
- }
-
- /**
- * This test case checks update message with MPUnreach.
- */
- @Test
- public void bgpUpdateMessageTest31() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, 0x5e, 0x02, 0x00, 0x04, 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, 0x43, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0f, 0x2e, 0x40, 0x04, 0x47, //mpunreach with safi = 71
- 0x00, 0x01, 0x00,
- 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
- 0x00, 0x06, 0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58}; //node nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- BgpUpdateMsg other = (BgpUpdateMsg) message;
-
- assertThat(other.getHeader().getMarker(), is(MARKER));
- assertThat(other.getHeader().getType(), is(UPDATE_MSG_TYPE));
- assertThat(other.getHeader().getLength(), is((short) 94));
-
- ListIterator<IpPrefix> listIterator1 = other.withdrawnRoutes().listIterator();
- byte[] prefix = new byte[] {0x0a, 0x01, 0x01, 0x00};
-
- IpPrefix testPrefixValue = listIterator1.next();
- assertThat(testPrefixValue.prefixLength(), is((int) 24));
- assertThat(testPrefixValue.address().toOctets(), is(prefix));
-
- BgpValueType testPathAttribute;
- Origin origin;
- AsPath asPath;
- Med med;
- MpUnReachNlri mpUnReach;
- List<BgpValueType> pathAttributes = new LinkedList<>();
- BgpPathAttributes actualpathAttribute = other.bgpPathAttributes();
- pathAttributes = actualpathAttribute.pathAttributes();
- ListIterator<BgpValueType> listIterator = pathAttributes.listIterator();
- ORIGINTYPE originValue = org.onosproject.bgpio.types.Origin.ORIGINTYPE.IGP;
-
- testPathAttribute = listIterator.next();
- origin = (Origin) testPathAttribute;
- assertThat(origin.origin(), is(originValue));
-
- testPathAttribute = listIterator.next();
- asPath = (AsPath) testPathAttribute;
- ListIterator<Short> listIterator2 = asPath.asPathSeq().listIterator();
- assertThat(listIterator2.next(), is((short) 65001));
-
- testPathAttribute = listIterator.next();
- med = (Med) testPathAttribute;
- assertThat(med.med(), is(0));
-
- testPathAttribute = listIterator.next();
- mpUnReach = (MpUnReachNlri) testPathAttribute;
- assertThat(mpUnReach.mpUnReachNlriLen(), is((int) 46));
- assertThat(mpUnReach.getType(), is((short) 15));
-
- List<BgpLSNlri> testMpUnReachNlri = new LinkedList<>();
- testMpUnReachNlri = mpUnReach.mpUnReachNlri();
-
- ListIterator<BgpLSNlri> list1 = testMpUnReachNlri.listIterator();
- BgpLSNlri testnlri = list1.next();
- NlriType nlriType = org.onosproject.bgpio.protocol.NlriType.NODE;
- ProtocolType protocolId = org.onosproject.bgpio.protocol.linkstate.
- BgpNodeLSNlriVer4.ProtocolType.ISIS_LEVEL_TWO;
- assertThat(testnlri.getIdentifier(), is((long) 0));
- assertThat(testnlri.getNlriType(), is(nlriType));
- assertThat(testnlri.getProtocolId(), is(protocolId));
-
- BgpNodeLSNlriVer4 testNodenlri = (BgpNodeLSNlriVer4) testnlri;
-
- BgpNodeLSIdentifier testLocalNodeDescriptors = testNodenlri.getLocalNodeDescriptors();
-
- List<BgpValueType> testSubTlvs = new LinkedList<>();
- NodeDescriptors localNodeDescriptors = testLocalNodeDescriptors.getNodedescriptors();
- testSubTlvs = localNodeDescriptors.getSubTlvs();
- ListIterator<BgpValueType> subtlvlist1 = testSubTlvs.listIterator();
-
- AutonomousSystemTlv testAutonomousSystemTlv = (AutonomousSystemTlv) subtlvlist1.next();
-
- assertThat(testAutonomousSystemTlv.getAsNum(), is(2222));
- assertThat(testAutonomousSystemTlv.getType(), is((short) 512));
-
- BgpLSIdentifierTlv testBGPLSIdentifierTlv = (BgpLSIdentifierTlv) subtlvlist1.next();
- assertThat(testBGPLSIdentifierTlv.getBgpLsIdentifier(), is(33686018));
- assertThat(testBGPLSIdentifierTlv.getType(), is((short) 513));
-
- IsIsNonPseudonode testIsIsNonPseudonode = (IsIsNonPseudonode) subtlvlist1.next();
- byte[] expISONodeID = new byte[] {0x19, 0x00, (byte) 0x95, 0x01, (byte) 0x90, 0x58};
- assertThat(testIsIsNonPseudonode.getISONodeID(), is(expISONodeID));
- assertThat(testIsIsNonPseudonode.getType(), is((short) 515));
- }
-
- /**
- * This test case checks update message with invalid mpreach packet.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest32() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, (byte) 0xd6, 0x02, 0x00, 0x04,
- 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, (byte) 0xbb, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x90, 0x0e, 0x00, (byte) 0xa5, 0x40, 0x04, 0x47, //mpreach
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x03, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x19, 0x21, 0x68,
- 0x07, 0x70, 0x01, 0x01, 0x09, 0x00, 0x05, 0x20,
- (byte) 0xc0, (byte) 0xa8, 0x4d, 0x01, 0x00, 0x03, 0x00, 0x30,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00,
- 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00,
- 0x06, 0x19, 0x00, (byte) 0x95, 0x02, 0x50, 0x21, 0x01,
- 0x09, 0x00, 0x05, 0x20, 0x15, 0x15, 0x15, 0x15,
- 0x00, 0x03, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x02, 0x20, 0x22,
- 0x02, 0x20, 0x22, 0x01, 0x09, 0x00, 0x05, 0x20,
- 0x16, 0x16, 0x16, 0x16}; // prefix nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with invalid prefix nlri length in input.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest33() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, (byte) 0xd6, 0x02, 0x00, 0x04,
- 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, (byte) 0xbb, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x90, 0x0e, 0x00, (byte) 0xa5, 0x40, 0x04, 0x47, //mpreach
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x03, 0x00, 0x35, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x19, 0x21, 0x68,
- 0x07, 0x70, 0x01, 0x01, 0x09, 0x00, 0x05, 0x20,
- (byte) 0xc0, (byte) 0xa8, 0x4d, 0x01, 0x00, 0x03, 0x00, 0x30,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00,
- 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00,
- 0x06, 0x19, 0x00, (byte) 0x95, 0x02, 0x50, 0x21, 0x01,
- 0x09, 0x00, 0x05, 0x20, 0x15, 0x15, 0x15, 0x15,
- 0x00, 0x03, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x1a, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08,
- (byte) 0xae, 0x02, 0x01, 0x00, 0x04, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x03, 0x00, 0x06, 0x02, 0x20, 0x22,
- 0x02, 0x20, 0x22, 0x01, 0x09, 0x00, 0x05, 0x20,
- 0x16, 0x16, 0x16, 0x16}; // prefix nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-
- /**
- * This test case checks update message with invalid link nlri length in input.
- */
- @Test(expected = BgpParseException.class)
- public void bgpUpdateMessageTest34() throws BgpParseException {
- byte[] updateMsg = new byte[] {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
- (byte) 0xff, (byte) 0xff, 0x00, (byte) 0x83, 0x02, 0x00, 0x04,
- 0x18, 0x0a, 0x01, 0x01, //withdrawn routes
- 0x00, 0x68, //path attribute len
- 0x04, 0x01, 0x01, 0x00, //origin
- 0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd, (byte) 0xe9, //as_path
- (byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, //med
- (byte) 0x80, 0x0e, 0x53, 0x40, 0x04, 0x47, //mpreach
- 0x04, 0x04, 0x00, 0x00, 0x01, //nexthop
- 0x00, //reserved
- 0x00, 0x02, 0x00, 0x48, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00, 0x04,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x07, 0x19, 0x00,
- (byte) 0x95, 0x02, 0x50, 0x21, 0x03, 0x01, 0x01, 0x00, 0x1a, 0x02,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, (byte) 0xae, 0x02, 0x01, 0x00,
- 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x06, 0x19,
- 0x00, (byte) 0x95, 0x02, 0x50, 0x21}; //link nlri
-
- ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
- buffer.writeBytes(updateMsg);
-
- BgpMessageReader<BgpMessage> reader = BgpFactories.getGenericReader();
- BgpMessage message;
- BgpHeader bgpHeader = new BgpHeader();
-
- message = reader.readFrom(buffer, bgpHeader);
-
- assertThat(message, instanceOf(BgpUpdateMsg.class));
- }
-}