Committed by
Gerrit Code Review
[ONOS-4165] Add C flag to LSP object
Change-Id: I92047990d5d7ba460d215490e3e905eb14405d99
Showing
2 changed files
with
68 additions
and
4 deletions
... | @@ -57,6 +57,20 @@ public interface PcepLspObject { | ... | @@ -57,6 +57,20 @@ public interface PcepLspObject { |
57 | void setOFlag(byte value); | 57 | void setOFlag(byte value); |
58 | 58 | ||
59 | /** | 59 | /** |
60 | + * Returns C flag in LSP Object. | ||
61 | + * | ||
62 | + * @return C flag in LSP Object | ||
63 | + */ | ||
64 | + boolean getCFlag(); | ||
65 | + | ||
66 | + /** | ||
67 | + * Sets C flag with specified value. | ||
68 | + * | ||
69 | + * @param value C flag | ||
70 | + */ | ||
71 | + void setCFlag(boolean value); | ||
72 | + | ||
73 | + /** | ||
60 | * Returns A flag in LSP Object. | 74 | * Returns A flag in LSP Object. |
61 | * | 75 | * |
62 | * @return A flag in LSP Object | 76 | * @return A flag in LSP Object |
... | @@ -178,6 +192,21 @@ public interface PcepLspObject { | ... | @@ -178,6 +192,21 @@ public interface PcepLspObject { |
178 | Builder setPlspId(int value); | 192 | Builder setPlspId(int value); |
179 | 193 | ||
180 | /** | 194 | /** |
195 | + * Returns C flag in LSP Object. | ||
196 | + * | ||
197 | + * @return C flag in LSP Object | ||
198 | + */ | ||
199 | + boolean getCFlag(); | ||
200 | + | ||
201 | + /** | ||
202 | + * Sets C flag with specific value and return its builder. | ||
203 | + * | ||
204 | + * @param value C flag | ||
205 | + * @return Builder by setting C flag | ||
206 | + */ | ||
207 | + Builder setCFlag(boolean value); | ||
208 | + | ||
209 | + /** | ||
181 | * Returns O flag in LSP Object. | 210 | * Returns O flag in LSP Object. |
182 | * | 211 | * |
183 | * @return O flag in LSP Object | 212 | * @return O flag in LSP Object | ... | ... |
... | @@ -48,7 +48,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -48,7 +48,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
48 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 48 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
49 | | Object-Class | OT |Res|P|I| Object Length (bytes) | | 49 | | Object-Class | OT |Res|P|I| Object Length (bytes) | |
50 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 50 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
51 | - | PLSP-ID | Flag | O|A|R|S|D| | 51 | + | PLSP-ID | Flag C| O|A|R|S|D| |
52 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 52 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
53 | // TLVs // | 53 | // TLVs // |
54 | | | | 54 | | | |
... | @@ -71,13 +71,16 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -71,13 +71,16 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
71 | public static final boolean DEFAULT_RFLAG = false; | 71 | public static final boolean DEFAULT_RFLAG = false; |
72 | public static final boolean DEFAULT_SFLAG = false; | 72 | public static final boolean DEFAULT_SFLAG = false; |
73 | public static final boolean DEFAULT_DFLAG = false; | 73 | public static final boolean DEFAULT_DFLAG = false; |
74 | + public static final boolean DEFAULT_CFLAG = false; | ||
74 | public static final int OBJECT_HEADER_LENGTH = 4; | 75 | public static final int OBJECT_HEADER_LENGTH = 4; |
75 | public static final int PLSPID_SHIFT_VALUE = 12; | 76 | public static final int PLSPID_SHIFT_VALUE = 12; |
77 | + public static final int CFLAG_SHIFT_VALUE = 7; | ||
76 | public static final int OFLAG_SHIFT_VALUE = 4; | 78 | public static final int OFLAG_SHIFT_VALUE = 4; |
77 | public static final int AFLAG_SHIFT_VALUE = 3; | 79 | public static final int AFLAG_SHIFT_VALUE = 3; |
78 | public static final int RFLAG_SHIFT_VALUE = 2; | 80 | public static final int RFLAG_SHIFT_VALUE = 2; |
79 | public static final int SFLAG_SHIFT_VALUE = 1; | 81 | public static final int SFLAG_SHIFT_VALUE = 1; |
80 | public static final int PLSPID_TEMP_SHIFT_VALUE = 0xFFFFF000; | 82 | public static final int PLSPID_TEMP_SHIFT_VALUE = 0xFFFFF000; |
83 | + public static final int CFLAG_TEMP_SHIFT_VALUE = 0x80; | ||
81 | public static final int OFLAG_TEMP_SHIFT_VALUE = 0x70; | 84 | public static final int OFLAG_TEMP_SHIFT_VALUE = 0x70; |
82 | public static final int AFLAG_TEMP_SHIFT_VALUE = 0x08; | 85 | public static final int AFLAG_TEMP_SHIFT_VALUE = 0x08; |
83 | public static final int RFLAG_TEMP_SHIFT_VALUE = 0x04; | 86 | public static final int RFLAG_TEMP_SHIFT_VALUE = 0x04; |
... | @@ -98,6 +101,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -98,6 +101,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
98 | private boolean bRFlag; | 101 | private boolean bRFlag; |
99 | private boolean bSFlag; | 102 | private boolean bSFlag; |
100 | private boolean bDFlag; | 103 | private boolean bDFlag; |
104 | + private boolean bCFlag; | ||
101 | 105 | ||
102 | // Optional TLV | 106 | // Optional TLV |
103 | private LinkedList<PcepValueType> llOptionalTlv; | 107 | private LinkedList<PcepValueType> llOptionalTlv; |
... | @@ -115,7 +119,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -115,7 +119,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
115 | * @param llOptionalTlv list of optional tlv | 119 | * @param llOptionalTlv list of optional tlv |
116 | */ | 120 | */ |
117 | public PcepLspObjectVer1(PcepObjectHeader lspObjHeader, int iPlspId, byte yOFlag, boolean bAFlag, boolean bRFlag, | 121 | public PcepLspObjectVer1(PcepObjectHeader lspObjHeader, int iPlspId, byte yOFlag, boolean bAFlag, boolean bRFlag, |
118 | - boolean bSFlag, boolean bDFlag, LinkedList<PcepValueType> llOptionalTlv) { | 122 | + boolean bSFlag, boolean bDFlag, boolean bCFlag, LinkedList<PcepValueType> llOptionalTlv) { |
119 | 123 | ||
120 | this.lspObjHeader = lspObjHeader; | 124 | this.lspObjHeader = lspObjHeader; |
121 | this.iPlspId = iPlspId; | 125 | this.iPlspId = iPlspId; |
... | @@ -124,6 +128,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -124,6 +128,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
124 | this.bRFlag = bRFlag; | 128 | this.bRFlag = bRFlag; |
125 | this.bSFlag = bSFlag; | 129 | this.bSFlag = bSFlag; |
126 | this.bDFlag = bDFlag; | 130 | this.bDFlag = bDFlag; |
131 | + this.bCFlag = bCFlag; | ||
127 | this.llOptionalTlv = llOptionalTlv; | 132 | this.llOptionalTlv = llOptionalTlv; |
128 | } | 133 | } |
129 | 134 | ||
... | @@ -142,6 +147,11 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -142,6 +147,11 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
142 | } | 147 | } |
143 | 148 | ||
144 | @Override | 149 | @Override |
150 | + public void setCFlag(boolean bCFlag) { | ||
151 | + this.bCFlag = bCFlag; | ||
152 | + } | ||
153 | + | ||
154 | + @Override | ||
145 | public void setOFlag(byte yOFlag) { | 155 | public void setOFlag(byte yOFlag) { |
146 | this.yOFlag = yOFlag; | 156 | this.yOFlag = yOFlag; |
147 | } | 157 | } |
... | @@ -181,6 +191,11 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -181,6 +191,11 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
181 | } | 191 | } |
182 | 192 | ||
183 | @Override | 193 | @Override |
194 | + public boolean getCFlag() { | ||
195 | + return this.bCFlag; | ||
196 | + } | ||
197 | + | ||
198 | + @Override | ||
184 | public byte getOFlag() { | 199 | public byte getOFlag() { |
185 | return this.yOFlag; | 200 | return this.yOFlag; |
186 | } | 201 | } |
... | @@ -232,6 +247,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -232,6 +247,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
232 | boolean bRFlag; | 247 | boolean bRFlag; |
233 | boolean bSFlag; | 248 | boolean bSFlag; |
234 | boolean bDFlag; | 249 | boolean bDFlag; |
250 | + boolean bCFlag; | ||
235 | 251 | ||
236 | // Optional TLV | 252 | // Optional TLV |
237 | LinkedList<PcepValueType> llOptionalTlv = new LinkedList<>(); | 253 | LinkedList<PcepValueType> llOptionalTlv = new LinkedList<>(); |
... | @@ -246,6 +262,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -246,6 +262,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
246 | 262 | ||
247 | Integer iTemp = tempCb.readInt(); | 263 | Integer iTemp = tempCb.readInt(); |
248 | iPlspId = (iTemp & PLSPID_TEMP_SHIFT_VALUE) >> PLSPID_SHIFT_VALUE; | 264 | iPlspId = (iTemp & PLSPID_TEMP_SHIFT_VALUE) >> PLSPID_SHIFT_VALUE; |
265 | + bCFlag = ((iTemp & CFLAG_TEMP_SHIFT_VALUE) >> CFLAG_SHIFT_VALUE) > 0; | ||
249 | Integer iX = (iTemp & OFLAG_TEMP_SHIFT_VALUE) >> OFLAG_SHIFT_VALUE; | 266 | Integer iX = (iTemp & OFLAG_TEMP_SHIFT_VALUE) >> OFLAG_SHIFT_VALUE; |
250 | yOFlag = iX.byteValue(); | 267 | yOFlag = iX.byteValue(); |
251 | iX = (iTemp & AFLAG_TEMP_SHIFT_VALUE) >> AFLAG_SHIFT_VALUE; | 268 | iX = (iTemp & AFLAG_TEMP_SHIFT_VALUE) >> AFLAG_SHIFT_VALUE; |
... | @@ -260,7 +277,8 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -260,7 +277,8 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
260 | // parse optional TLV | 277 | // parse optional TLV |
261 | llOptionalTlv = parseOptionalTlv(tempCb); | 278 | llOptionalTlv = parseOptionalTlv(tempCb); |
262 | 279 | ||
263 | - return new PcepLspObjectVer1(lspObjHeader, iPlspId, yOFlag, bAFlag, bRFlag, bSFlag, bDFlag, llOptionalTlv); | 280 | + return new PcepLspObjectVer1(lspObjHeader, iPlspId, yOFlag, bAFlag, bRFlag, bSFlag, bDFlag, bCFlag, |
281 | + llOptionalTlv); | ||
264 | } | 282 | } |
265 | 283 | ||
266 | @Override | 284 | @Override |
... | @@ -410,6 +428,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -410,6 +428,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
410 | private boolean bIsAFlagSet = false; | 428 | private boolean bIsAFlagSet = false; |
411 | private boolean bIsDFlagSet = false; | 429 | private boolean bIsDFlagSet = false; |
412 | private boolean bIsSFlagSet = false; | 430 | private boolean bIsSFlagSet = false; |
431 | + private boolean bIsCFlagSet = false; | ||
413 | 432 | ||
414 | private PcepObjectHeader lspObjHeader; | 433 | private PcepObjectHeader lspObjHeader; |
415 | private byte yOFlag; | 434 | private byte yOFlag; |
... | @@ -417,6 +436,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -417,6 +436,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
417 | private boolean bDFlag; | 436 | private boolean bDFlag; |
418 | private boolean bSFlag; | 437 | private boolean bSFlag; |
419 | private boolean bRFlag; | 438 | private boolean bRFlag; |
439 | + private boolean bCFlag; | ||
420 | LinkedList<PcepValueType> llOptionalTlv = null; | 440 | LinkedList<PcepValueType> llOptionalTlv = null; |
421 | 441 | ||
422 | private int plspId; | 442 | private int plspId; |
... | @@ -437,6 +457,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -437,6 +457,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
437 | boolean bRFlag = this.bIsRFlagSet ? this.bRFlag : DEFAULT_RFLAG; | 457 | boolean bRFlag = this.bIsRFlagSet ? this.bRFlag : DEFAULT_RFLAG; |
438 | boolean bSFlag = this.bIsSFlagSet ? this.bSFlag : DEFAULT_SFLAG; | 458 | boolean bSFlag = this.bIsSFlagSet ? this.bSFlag : DEFAULT_SFLAG; |
439 | boolean bDFlag = this.bIsDFlagSet ? this.bDFlag : DEFAULT_DFLAG; | 459 | boolean bDFlag = this.bIsDFlagSet ? this.bDFlag : DEFAULT_DFLAG; |
460 | + boolean bCFlag = this.bIsCFlagSet ? this.bCFlag : DEFAULT_CFLAG; | ||
440 | 461 | ||
441 | if (bIsPFlagSet) { | 462 | if (bIsPFlagSet) { |
442 | lspObjHeader.setPFlag(bPFlag); | 463 | lspObjHeader.setPFlag(bPFlag); |
... | @@ -446,7 +467,8 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -446,7 +467,8 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
446 | lspObjHeader.setIFlag(bIFlag); | 467 | lspObjHeader.setIFlag(bIFlag); |
447 | } | 468 | } |
448 | 469 | ||
449 | - return new PcepLspObjectVer1(lspObjHeader, plspId, yOFlag, bAFlag, bRFlag, bSFlag, bDFlag, llOptionalTlv); | 470 | + return new PcepLspObjectVer1(lspObjHeader, plspId, yOFlag, bAFlag, bRFlag, bSFlag, bDFlag, bCFlag, |
471 | + llOptionalTlv); | ||
450 | } | 472 | } |
451 | 473 | ||
452 | @Override | 474 | @Override |
... | @@ -474,6 +496,18 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -474,6 +496,18 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
474 | } | 496 | } |
475 | 497 | ||
476 | @Override | 498 | @Override |
499 | + public boolean getCFlag() { | ||
500 | + return this.bCFlag; | ||
501 | + } | ||
502 | + | ||
503 | + @Override | ||
504 | + public Builder setCFlag(boolean value) { | ||
505 | + this.bCFlag = value; | ||
506 | + this.bIsCFlagSet = true; | ||
507 | + return this; | ||
508 | + } | ||
509 | + | ||
510 | + @Override | ||
477 | public byte getOFlag() { | 511 | public byte getOFlag() { |
478 | return this.yOFlag; | 512 | return this.yOFlag; |
479 | } | 513 | } |
... | @@ -564,6 +598,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { | ... | @@ -564,6 +598,7 @@ public class PcepLspObjectVer1 implements PcepLspObject { |
564 | public String toString() { | 598 | public String toString() { |
565 | return MoreObjects.toStringHelper(getClass()) | 599 | return MoreObjects.toStringHelper(getClass()) |
566 | .add("PlspIDValue", iPlspId) | 600 | .add("PlspIDValue", iPlspId) |
601 | + .add("CFlag", bCFlag) | ||
567 | .add("OFlag", yOFlag) | 602 | .add("OFlag", yOFlag) |
568 | .add("AFlag", bAFlag) | 603 | .add("AFlag", bAFlag) |
569 | .add("RFlag", bRFlag) | 604 | .add("RFlag", bRFlag) | ... | ... |
-
Please register or login to post a comment