Priyanka B
Committed by Gerrit Code Review

[ONOS-2613] Unit test the BGP Update message(LinkStateAttribute)

Change-Id: Id9545296612bed858459c8386368c66cb2159173
...@@ -34,9 +34,9 @@ public final class BgpId { ...@@ -34,9 +34,9 @@ public final class BgpId {
34 private final IpAddress ipAddress; 34 private final IpAddress ipAddress;
35 35
36 /** 36 /**
37 - * Private constructor. 37 + * Constructor to initialize ipAddress.
38 */ 38 */
39 - private BgpId(IpAddress ipAddress) { 39 + public BgpId(IpAddress ipAddress) {
40 this.ipAddress = ipAddress; 40 this.ipAddress = ipAddress;
41 } 41 }
42 42
......
...@@ -24,6 +24,7 @@ import org.onosproject.bgpio.types.As4Path; ...@@ -24,6 +24,7 @@ import org.onosproject.bgpio.types.As4Path;
24 import org.onosproject.bgpio.types.AsPath; 24 import org.onosproject.bgpio.types.AsPath;
25 import org.onosproject.bgpio.types.BgpErrorType; 25 import org.onosproject.bgpio.types.BgpErrorType;
26 import org.onosproject.bgpio.types.BgpValueType; 26 import org.onosproject.bgpio.types.BgpValueType;
27 +import org.onosproject.bgpio.types.LinkStateAttributes;
27 import org.onosproject.bgpio.types.LocalPref; 28 import org.onosproject.bgpio.types.LocalPref;
28 import org.onosproject.bgpio.types.Med; 29 import org.onosproject.bgpio.types.Med;
29 import org.onosproject.bgpio.types.NextHop; 30 import org.onosproject.bgpio.types.NextHop;
...@@ -54,7 +55,7 @@ public class BgpPathAttributes { ...@@ -54,7 +55,7 @@ public class BgpPathAttributes {
54 */ 55 */
55 protected static final Logger log = LoggerFactory.getLogger(BgpPathAttributes.class); 56 protected static final Logger log = LoggerFactory.getLogger(BgpPathAttributes.class);
56 57
57 - public static final int LINK_STATE_ATTRIBUTE_TYPE = 50; 58 + public static final int LINK_STATE_ATTRIBUTE_TYPE = 29;
58 public static final int MPREACHNLRI_TYPE = 14; 59 public static final int MPREACHNLRI_TYPE = 14;
59 public static final int MPUNREACHNLRI_TYPE = 15; 60 public static final int MPUNREACHNLRI_TYPE = 15;
60 61
...@@ -139,7 +140,7 @@ public class BgpPathAttributes { ...@@ -139,7 +140,7 @@ public class BgpPathAttributes {
139 .isMpUnReachNlriSet(); 140 .isMpUnReachNlriSet();
140 break; 141 break;
141 case LINK_STATE_ATTRIBUTE_TYPE: 142 case LINK_STATE_ATTRIBUTE_TYPE:
142 - //TODO: To be merged later 143 + pathAttribute = LinkStateAttributes.read(cb);
143 break; 144 break;
144 default: 145 default:
145 //skip bytes for unsupported attribute types 146 //skip bytes for unsupported attribute types
......
...@@ -89,7 +89,7 @@ public class LinkStateAttributes implements BgpValueType { ...@@ -89,7 +89,7 @@ public class LinkStateAttributes implements BgpValueType {
89 public static final short ATTR_PREFIX_OSPF_FWD_ADDR = 1156; 89 public static final short ATTR_PREFIX_OSPF_FWD_ADDR = 1156;
90 public static final short ATTR_PREFIX_OPAQUE_ATTR = 1157; 90 public static final short ATTR_PREFIX_OPAQUE_ATTR = 1157;
91 91
92 - public static final byte LINKSTATE_ATTRIB_TYPE = 50; 92 + public static final byte LINKSTATE_ATTRIB_TYPE = 29;
93 public static final byte TYPE_AND_LEN = 4; 93 public static final byte TYPE_AND_LEN = 4;
94 private boolean isLinkStateAttribute = false; 94 private boolean isLinkStateAttribute = false;
95 private List<BgpValueType> linkStateAttribList; 95 private List<BgpValueType> linkStateAttribList;
...@@ -139,14 +139,14 @@ public class LinkStateAttributes implements BgpValueType { ...@@ -139,14 +139,14 @@ public class LinkStateAttributes implements BgpValueType {
139 public static LinkStateAttributes read(ChannelBuffer cb) 139 public static LinkStateAttributes read(ChannelBuffer cb)
140 throws BgpParseException { 140 throws BgpParseException {
141 141
142 - ChannelBuffer tempBuf = cb; 142 + ChannelBuffer tempBuf = cb.copy();
143 Validation parseFlags = Validation.parseAttributeHeader(cb); 143 Validation parseFlags = Validation.parseAttributeHeader(cb);
144 int len = parseFlags.isShort() ? parseFlags.getLength() + TYPE_AND_LEN 144 int len = parseFlags.isShort() ? parseFlags.getLength() + TYPE_AND_LEN
145 : parseFlags.getLength() + 3; 145 : parseFlags.getLength() + 3;
146 146
147 ChannelBuffer data = tempBuf.readBytes(len); 147 ChannelBuffer data = tempBuf.readBytes(len);
148 - if (!parseFlags.getFirstBit() || parseFlags.getSecondBit() 148 + if (!parseFlags.getFirstBit() && parseFlags.getSecondBit()
149 - || parseFlags.getThirdBit()) { 149 + && parseFlags.getThirdBit()) {
150 throw new BgpParseException(BgpErrorType.UPDATE_MESSAGE_ERROR, 150 throw new BgpParseException(BgpErrorType.UPDATE_MESSAGE_ERROR,
151 BgpErrorType.ATTRIBUTE_FLAGS_ERROR, 151 BgpErrorType.ATTRIBUTE_FLAGS_ERROR,
152 data); 152 data);
......
...@@ -56,7 +56,7 @@ public final class BgpAttrNodeFlagBitTlv implements BgpValueType { ...@@ -56,7 +56,7 @@ public final class BgpAttrNodeFlagBitTlv implements BgpValueType {
56 * @param bExternalBit External bit 56 * @param bExternalBit External bit
57 * @param bAbrBit ABR Bit 57 * @param bAbrBit ABR Bit
58 */ 58 */
59 - private BgpAttrNodeFlagBitTlv(boolean bOverloadBit, boolean bAttachedBit, 59 + public BgpAttrNodeFlagBitTlv(boolean bOverloadBit, boolean bAttachedBit,
60 boolean bExternalBit, boolean bAbrBit) { 60 boolean bExternalBit, boolean bAbrBit) {
61 this.bOverloadBit = bOverloadBit; 61 this.bOverloadBit = bOverloadBit;
62 this.bAttachedBit = bAttachedBit; 62 this.bAttachedBit = bAttachedBit;
......
...@@ -21,9 +21,8 @@ import org.jboss.netty.buffer.ChannelBuffer; ...@@ -21,9 +21,8 @@ import org.jboss.netty.buffer.ChannelBuffer;
21 import org.onosproject.bgpio.exceptions.BgpParseException; 21 import org.onosproject.bgpio.exceptions.BgpParseException;
22 import org.onosproject.bgpio.types.BgpErrorType; 22 import org.onosproject.bgpio.types.BgpErrorType;
23 import org.onosproject.bgpio.types.BgpValueType; 23 import org.onosproject.bgpio.types.BgpValueType;
24 +import org.onosproject.bgpio.util.Constants;
24 import org.onosproject.bgpio.util.Validation; 25 import org.onosproject.bgpio.util.Validation;
25 -import org.slf4j.Logger;
26 -import org.slf4j.LoggerFactory;
27 26
28 import com.google.common.base.MoreObjects; 27 import com.google.common.base.MoreObjects;
29 28
...@@ -31,70 +30,55 @@ import com.google.common.base.MoreObjects; ...@@ -31,70 +30,55 @@ import com.google.common.base.MoreObjects;
31 * Implements BGP link protection type attribute. 30 * Implements BGP link protection type attribute.
32 */ 31 */
33 public final class BgpLinkAttrProtectionType implements BgpValueType { 32 public final class BgpLinkAttrProtectionType implements BgpValueType {
34 -
35 - protected static final Logger log = LoggerFactory
36 - .getLogger(BgpLinkAttrProtectionType.class);
37 -
38 public static final int ATTRLINK_PROTECTIONTYPE = 1093; 33 public static final int ATTRLINK_PROTECTIONTYPE = 1093;
39 public static final int LINK_PROTECTION_LEN = 2; 34 public static final int LINK_PROTECTION_LEN = 2;
40 35
41 - public static final int EXTRA_TRAFFIC = 0x01; 36 + private byte linkProtectionType;
42 - public static final int UNPROTECTED = 0x02; 37 +
43 - public static final int SHARED = 0x04; 38 + /**
44 - public static final int DEDICATED_ONE_ISTO_ONE = 0x08; 39 + * Enum to provide Link protection types.
45 - public static final int DEDICATED_ONE_PLUS_ONE = 0x10; 40 + */
46 - public static final int ENHANCED = 0x20; 41 + public enum ProtectionType {
47 - 42 + EXTRA_TRAFFIC(1), UNPROTECTED(2), SHARED(4), DEDICATED_ONE_ISTO_ONE(8),
48 - /* Link Protection type flags */ 43 + DEDICATED_ONE_PLUS_ONE(0x10), ENHANCED(0x20), RESERVED(0x40);
49 - private final boolean bExtraTraffic; 44 + int value;
50 - private final boolean bUnprotected; 45 +
51 - private final boolean bShared; 46 + /**
52 - private final boolean bDedOneIstoOne; 47 + * Assign val with the value as the link protection type.
53 - private final boolean bDedOnePlusOne; 48 + *
54 - private final boolean bEnhanced; 49 + * @param val link protection
50 + */
51 + ProtectionType(int val) {
52 + value = val;
53 + }
54 +
55 + /**
56 + * Returns value of link protection type.
57 + *
58 + * @return link protection type
59 + */
60 + public byte type() {
61 + return (byte) value;
62 + }
63 + }
55 64
56 /** 65 /**
57 * Constructor to initialize the value. 66 * Constructor to initialize the value.
58 * 67 *
59 - * @param bExtraTraffic Extra Traffic 68 + * @param linkProtectionType link protection type
60 - * @param bUnprotected Unprotected
61 - * @param bShared Shared
62 - * @param bDedOneIstoOne Dedicated 1:1
63 - * @param bDedOnePlusOne Dedicated 1+1
64 - * @param bEnhanced Enhanced
65 */ 69 */
66 - private BgpLinkAttrProtectionType(boolean bExtraTraffic, 70 + public BgpLinkAttrProtectionType(byte linkProtectionType) {
67 - boolean bUnprotected, 71 + this.linkProtectionType = linkProtectionType;
68 - boolean bShared, boolean bDedOneIstoOne,
69 - boolean bDedOnePlusOne, boolean bEnhanced) {
70 - this.bExtraTraffic = bExtraTraffic;
71 - this.bUnprotected = bUnprotected;
72 - this.bShared = bShared;
73 - this.bDedOneIstoOne = bDedOneIstoOne;
74 - this.bDedOnePlusOne = bDedOnePlusOne;
75 - this.bEnhanced = bEnhanced;
76 } 72 }
77 73
78 /** 74 /**
79 * Returns object of this class with specified values. 75 * Returns object of this class with specified values.
80 * 76 *
81 - * @param bExtraTraffic Extra Traffic 77 + * @param linkProtectionType link protection type
82 - * @param bUnprotected Unprotected
83 - * @param bShared Shared
84 - * @param bDedOneIstoOne Dedicated 1:1
85 - * @param bDedOnePlusOne Dedicated 1+1
86 - * @param bEnhanced Enhanced
87 * @return object of BgpLinkAttrProtectionType 78 * @return object of BgpLinkAttrProtectionType
88 */ 79 */
89 - public static BgpLinkAttrProtectionType of(boolean bExtraTraffic, 80 + public static BgpLinkAttrProtectionType of(byte linkProtectionType) {
90 - boolean bUnprotected, 81 + return new BgpLinkAttrProtectionType(linkProtectionType);
91 - boolean bShared,
92 - boolean bDedOneIstoOne,
93 - boolean bDedOnePlusOne,
94 - boolean bEnhanced) {
95 - return new BgpLinkAttrProtectionType(bExtraTraffic, bUnprotected,
96 - bShared, bDedOneIstoOne,
97 - bDedOnePlusOne, bEnhanced);
98 } 82 }
99 83
100 /** 84 /**
...@@ -106,91 +90,43 @@ public final class BgpLinkAttrProtectionType implements BgpValueType { ...@@ -106,91 +90,43 @@ public final class BgpLinkAttrProtectionType implements BgpValueType {
106 */ 90 */
107 public static BgpLinkAttrProtectionType read(ChannelBuffer cb) 91 public static BgpLinkAttrProtectionType read(ChannelBuffer cb)
108 throws BgpParseException { 92 throws BgpParseException {
109 - short linkProtectionType;
110 - byte higherByte;
111 short lsAttrLength = cb.readShort(); 93 short lsAttrLength = cb.readShort();
112 94
113 - boolean bExtraTraffic; 95 + if ((lsAttrLength != LINK_PROTECTION_LEN) || (cb.readableBytes() < lsAttrLength)) {
114 - boolean bUnprotected; 96 + Validation
115 - boolean bShared; 97 + .validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR, BgpErrorType.ATTRIBUTE_LENGTH_ERROR, lsAttrLength);
116 - boolean bDedOneIstoOne;
117 - boolean bDedOnePlusOne;
118 - boolean bEnhanced;
119 -
120 - if ((lsAttrLength != LINK_PROTECTION_LEN)
121 - || (cb.readableBytes() < lsAttrLength)) {
122 - Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR,
123 - BgpErrorType.ATTRIBUTE_LENGTH_ERROR,
124 - lsAttrLength);
125 } 98 }
126 99
127 - linkProtectionType = cb.readShort(); 100 + byte linkProtectionType = cb.readByte();
128 - higherByte = (byte) (linkProtectionType >> 8); 101 + byte reserved = cb.readByte();
129 -
130 - bExtraTraffic = ((higherByte & (byte) EXTRA_TRAFFIC) == EXTRA_TRAFFIC);
131 - bUnprotected = ((higherByte & (byte) UNPROTECTED) == UNPROTECTED);
132 - bShared = ((higherByte & (byte) SHARED) == SHARED);
133 - bDedOneIstoOne = ((higherByte & (byte) DEDICATED_ONE_ISTO_ONE) == DEDICATED_ONE_ISTO_ONE);
134 - bDedOnePlusOne = ((higherByte & (byte) DEDICATED_ONE_PLUS_ONE) == DEDICATED_ONE_PLUS_ONE);
135 - bEnhanced = ((higherByte & (byte) ENHANCED) == ENHANCED);
136 -
137 - return BgpLinkAttrProtectionType.of(bExtraTraffic, bUnprotected,
138 - bShared, bDedOneIstoOne,
139 - bDedOnePlusOne, bEnhanced);
140 - }
141 -
142 - /**
143 - * Returns ExtraTraffic Bit.
144 - *
145 - * @return ExtraTraffic Bit
146 - */
147 - public boolean extraTraffic() {
148 - return bExtraTraffic;
149 - }
150 -
151 - /**
152 - * Returns Unprotected Bit.
153 - *
154 - * @return Unprotected Bit
155 - */
156 - public boolean unprotected() {
157 - return bUnprotected;
158 - }
159 -
160 - /**
161 - * Returns Shared Bit.
162 - *
163 - * @return Shared Bit
164 - */
165 - public boolean shared() {
166 - return bShared;
167 - }
168 102
169 - /** 103 + return BgpLinkAttrProtectionType.of(linkProtectionType);
170 - * Returns DedOneIstoOne Bit.
171 - *
172 - * @return DedOneIstoOne Bit
173 - */
174 - public boolean dedOneIstoOne() {
175 - return bDedOneIstoOne;
176 } 104 }
177 105
178 /** 106 /**
179 - * Returns DedOnePlusOne Bit. 107 + * Returns Link Protection Type.
180 * 108 *
181 - * @return DedOnePlusOne Bit 109 + * @return Link Protection Type
182 */ 110 */
183 - public boolean dedOnePlusOne() { 111 + public ProtectionType protectionType() throws BgpParseException {
184 - return bDedOnePlusOne; 112 + switch (linkProtectionType) {
185 - } 113 + case Constants.EXTRA_TRAFFIC:
186 - 114 + return ProtectionType.EXTRA_TRAFFIC;
187 - /** 115 + case Constants.UNPROTECTED:
188 - * Returns Enhanced Bit. 116 + return ProtectionType.UNPROTECTED;
189 - * 117 + case Constants.SHARED:
190 - * @return Enhanced Bit 118 + return ProtectionType.SHARED;
191 - */ 119 + case Constants.DEDICATED_ONE_ISTO_ONE:
192 - public boolean enhanced() { 120 + return ProtectionType.DEDICATED_ONE_ISTO_ONE;
193 - return bEnhanced; 121 + case Constants.DEDICATED_ONE_PLUS_ONE:
122 + return ProtectionType.DEDICATED_ONE_PLUS_ONE;
123 + case Constants.ENHANCED:
124 + return ProtectionType.ENHANCED;
125 + case Constants.RESERVED:
126 + return ProtectionType.RESERVED;
127 + default:
128 + throw new BgpParseException("Got another type " + linkProtectionType);
129 + }
194 } 130 }
195 131
196 @Override 132 @Override
...@@ -200,8 +136,7 @@ public final class BgpLinkAttrProtectionType implements BgpValueType { ...@@ -200,8 +136,7 @@ public final class BgpLinkAttrProtectionType implements BgpValueType {
200 136
201 @Override 137 @Override
202 public int hashCode() { 138 public int hashCode() {
203 - return Objects.hash(bExtraTraffic, bUnprotected, bShared, 139 + return Objects.hash(linkProtectionType);
204 - bDedOneIstoOne, bDedOnePlusOne, bEnhanced);
205 } 140 }
206 141
207 @Override 142 @Override
...@@ -212,12 +147,7 @@ public final class BgpLinkAttrProtectionType implements BgpValueType { ...@@ -212,12 +147,7 @@ public final class BgpLinkAttrProtectionType implements BgpValueType {
212 147
213 if (obj instanceof BgpLinkAttrProtectionType) { 148 if (obj instanceof BgpLinkAttrProtectionType) {
214 BgpLinkAttrProtectionType other = (BgpLinkAttrProtectionType) obj; 149 BgpLinkAttrProtectionType other = (BgpLinkAttrProtectionType) obj;
215 - return Objects.equals(bExtraTraffic, other.bExtraTraffic) 150 + return Objects.equals(linkProtectionType, other.linkProtectionType);
216 - && Objects.equals(bUnprotected, other.bUnprotected)
217 - && Objects.equals(bShared, other.bShared)
218 - && Objects.equals(bDedOneIstoOne, other.bDedOneIstoOne)
219 - && Objects.equals(bDedOnePlusOne, other.bDedOnePlusOne)
220 - && Objects.equals(bEnhanced, other.bEnhanced);
221 } 151 }
222 return false; 152 return false;
223 } 153 }
...@@ -231,11 +161,8 @@ public final class BgpLinkAttrProtectionType implements BgpValueType { ...@@ -231,11 +161,8 @@ public final class BgpLinkAttrProtectionType implements BgpValueType {
231 @Override 161 @Override
232 public String toString() { 162 public String toString() {
233 return MoreObjects.toStringHelper(getClass()) 163 return MoreObjects.toStringHelper(getClass())
234 - .add("bExtraTraffic", bExtraTraffic) 164 + .add("linkProtectionType", linkProtectionType)
235 - .add("bUnprotected", bUnprotected).add("bShared", bShared) 165 + .toString();
236 - .add("bDedOneIstoOne", bDedOneIstoOne)
237 - .add("bDedOnePlusOne", bDedOnePlusOne)
238 - .add("bEnhanced", bEnhanced).toString();
239 } 166 }
240 167
241 @Override 168 @Override
......
...@@ -33,6 +33,7 @@ import com.google.common.base.MoreObjects; ...@@ -33,6 +33,7 @@ import com.google.common.base.MoreObjects;
33 public class BgpLinkAttrSrlg implements BgpValueType { 33 public class BgpLinkAttrSrlg implements BgpValueType {
34 34
35 public static final short ATTRNODE_SRLG = 1097; 35 public static final short ATTRNODE_SRLG = 1097;
36 + public static final short SIZE = 4;
36 37
37 /* Shared Risk Link Group */ 38 /* Shared Risk Link Group */
38 private List<Integer> sRlg = new ArrayList<Integer>(); 39 private List<Integer> sRlg = new ArrayList<Integer>();
...@@ -69,7 +70,7 @@ public class BgpLinkAttrSrlg implements BgpValueType { ...@@ -69,7 +70,7 @@ public class BgpLinkAttrSrlg implements BgpValueType {
69 ArrayList<Integer> sRlg = new ArrayList<Integer>(); 70 ArrayList<Integer> sRlg = new ArrayList<Integer>();
70 71
71 short lsAttrLength = cb.readShort(); 72 short lsAttrLength = cb.readShort();
72 - int len = lsAttrLength / Integer.SIZE; // each element is of 4 octets 73 + int len = lsAttrLength / SIZE; // each element is of 4 octets
73 74
74 if (cb.readableBytes() < lsAttrLength) { 75 if (cb.readableBytes() < lsAttrLength) {
75 Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR, 76 Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR,
......
...@@ -57,7 +57,7 @@ public final class BgpPrefixAttrIgpFlags implements BgpValueType { ...@@ -57,7 +57,7 @@ public final class BgpPrefixAttrIgpFlags implements BgpValueType {
57 * @param bOspfLclAddrBit OSPF local address Bit 57 * @param bOspfLclAddrBit OSPF local address Bit
58 * @param bOspfNSSABit OSPF propagate NSSA Bit 58 * @param bOspfNSSABit OSPF propagate NSSA Bit
59 */ 59 */
60 - BgpPrefixAttrIgpFlags(boolean bisisUpDownBit, 60 + public BgpPrefixAttrIgpFlags(boolean bisisUpDownBit,
61 boolean bOspfNoUnicastBit, 61 boolean bOspfNoUnicastBit,
62 boolean bOspfLclAddrBit, boolean bOspfNSSABit) { 62 boolean bOspfLclAddrBit, boolean bOspfNSSABit) {
63 this.bisisUpDownBit = bisisUpDownBit; 63 this.bisisUpDownBit = bisisUpDownBit;
......
...@@ -38,6 +38,7 @@ public class BgpPrefixAttrRouteTag implements BgpValueType { ...@@ -38,6 +38,7 @@ public class BgpPrefixAttrRouteTag implements BgpValueType {
38 .getLogger(BgpPrefixAttrRouteTag.class); 38 .getLogger(BgpPrefixAttrRouteTag.class);
39 39
40 public static final short ATTR_PREFIX_ROUTETAG = 1153; 40 public static final short ATTR_PREFIX_ROUTETAG = 1153;
41 + public static final short SIZE = 4;
41 42
42 /* Prefix Route Tag */ 43 /* Prefix Route Tag */
43 private List<Integer> pfxRouteTag = new ArrayList<Integer>(); 44 private List<Integer> pfxRouteTag = new ArrayList<Integer>();
...@@ -74,7 +75,7 @@ public class BgpPrefixAttrRouteTag implements BgpValueType { ...@@ -74,7 +75,7 @@ public class BgpPrefixAttrRouteTag implements BgpValueType {
74 ArrayList<Integer> pfxRouteTag = new ArrayList<Integer>(); 75 ArrayList<Integer> pfxRouteTag = new ArrayList<Integer>();
75 76
76 short lsAttrLength = cb.readShort(); 77 short lsAttrLength = cb.readShort();
77 - int len = lsAttrLength / Integer.SIZE; 78 + int len = lsAttrLength / SIZE;
78 79
79 if (cb.readableBytes() < lsAttrLength) { 80 if (cb.readableBytes() < lsAttrLength) {
80 Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR, 81 Validation.validateLen(BgpErrorType.UPDATE_MESSAGE_ERROR,
......
...@@ -34,4 +34,11 @@ public final class Constants { ...@@ -34,4 +34,11 @@ public final class Constants {
34 public static final short AFI_VALUE = 16388; 34 public static final short AFI_VALUE = 16388;
35 public static final byte VPN_SAFI_VALUE = (byte) 0x80; 35 public static final byte VPN_SAFI_VALUE = (byte) 0x80;
36 public static final byte SAFI_VALUE = 71; 36 public static final byte SAFI_VALUE = 71;
37 + public static final int EXTRA_TRAFFIC = 0x01;
38 + public static final int UNPROTECTED = 0x02;
39 + public static final int SHARED = 0x04;
40 + public static final int DEDICATED_ONE_ISTO_ONE = 0x08;
41 + public static final int DEDICATED_ONE_PLUS_ONE = 0x10;
42 + public static final int ENHANCED = 0x20;
43 + public static final int RESERVED = 0x40;
37 } 44 }
...\ No newline at end of file ...\ No newline at end of file
......
This diff could not be displayed because it is too large.
...@@ -20,37 +20,20 @@ import org.junit.Test; ...@@ -20,37 +20,20 @@ import org.junit.Test;
20 import com.google.common.testing.EqualsTester; 20 import com.google.common.testing.EqualsTester;
21 21
22 /** 22 /**
23 - * Test for MPLS protocol mask attribute. 23 + * Test for Protection Type attribute.
24 */ 24 */
25 public class BgpLinkAttrProtectionTypeTest { 25 public class BgpLinkAttrProtectionTypeTest {
26 - boolean bExtraTraffic = true; 26 + private final byte linkProtectionType1 = 0x04;
27 - boolean bUnprotected = true; 27 + private final byte linkProtectionType2 = 0x40;
28 - boolean bShared = true;
29 - boolean bDedOneIstoOne = true;
30 - boolean bDedOnePlusOne = true;
31 - boolean bEnhanced = true;
32 28
33 - boolean bExtraTraffic1 = false; 29 + private final BgpLinkAttrProtectionType attr1 = BgpLinkAttrProtectionType.of(linkProtectionType1);
34 - boolean bUnprotected1 = false; 30 + private final BgpLinkAttrProtectionType sameAsAttr1 = BgpLinkAttrProtectionType.of(linkProtectionType1);
35 - boolean bShared1 = false; 31 + private final BgpLinkAttrProtectionType attr2 = BgpLinkAttrProtectionType.of(linkProtectionType2);
36 - boolean bDedOneIstoOne1 = false;
37 - boolean bDedOnePlusOne1 = false;
38 - boolean bEnhanced1 = false;
39 -
40 - private final BgpLinkAttrProtectionType data = BgpLinkAttrProtectionType
41 - .of(bExtraTraffic, bUnprotected, bShared, bDedOneIstoOne,
42 - bDedOnePlusOne, bEnhanced);
43 - private final BgpLinkAttrProtectionType sameAsData = BgpLinkAttrProtectionType
44 - .of(bExtraTraffic, bUnprotected, bShared, bDedOneIstoOne,
45 - bDedOnePlusOne, bEnhanced);
46 - private final BgpLinkAttrProtectionType diffData = BgpLinkAttrProtectionType
47 - .of(bExtraTraffic1, bUnprotected1, bShared1, bDedOneIstoOne1,
48 - bDedOnePlusOne1, bEnhanced1);
49 32
50 @Test 33 @Test
51 - public void basics() { 34 + public void testEquality() {
52 - 35 + new EqualsTester().addEqualityGroup(attr1, sameAsAttr1)
53 - new EqualsTester().addEqualityGroup(data, sameAsData) 36 + .addEqualityGroup(attr2)
54 - .addEqualityGroup(diffData).testEquals(); 37 + .testEquals();
55 } 38 }
56 } 39 }
......