public abstract class GeneralizedBandwidth extends PCEPConstruct
Represents a PCEP GENERALIZED-BANDWIDTH as defined in PCEP extensions for GMPLS draft-ietf-pce-gmpls-pcep-extensions-04
From PCEP extensions for GMPLS draft-ietf-pce-gmpls-pcep-extensions-04 Section 2.2. Traffic Parameters encoding, GENERALIZED-BANDWIDTH Object:
The PCEP BANDWIDTH does not describe the details of the signal (for example NVC, multiplier), hence the bandwidth information should be extended to use the RSVP Tspec object encoding. The PCEP BANDWIDTH object defines two types: 1 and 2. C-Type 2 is representing the existing bandwidth in case of re-optimization.
The following possibilities cannot be represented in the BANDWIDTH object:
o Asymmetric bandwidth (different bandwidth in forward and reverse direction), as described in [RFC6387] o GMPLS (SDH/SONET, G.709, ATM, MEF etc) parameters are not supported.
This correspond to requirement 3,4,5 and 10 of [I-D.ietf-pce-gmpls-aps-req].
According to [RFC5440] the BANDWIDTH object has no TLV and has a fixed size of 4 bytes. This definition does not allow extending it with the required information. To express this information, a new object named GENERALIZED-BANDWIDTH having the following format is defined:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bandwidth Spec Length | Rev. Bandwidth Spec Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bw Spec Type | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ generalized bandwidth ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional : reverse generalized bandwidth ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Traffic Spec Length | TSpec Type | Reserved |R|O| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Traffic Spec ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The GENERALIZED-BANDWIDTH has a variable length. The Traffic spec length field indicates the length of the Traffic spec field. The bits R and O have the following meaning: O bit : when set the value refers to the previous bandwidth in case of re-optimization R bit : when set the value refers to the bandwidth of the reverse direction The Object type determines which type of bandwidth is represented by the object. The following object types are defined: 1. Intserv 2. SONET/SDH 3. G.709 4. Ethernet 5. SSON The encoding of the field Traffic Spec is the same as in RSVP-TE, it can be found in the following references. Object Type Name Reference 0 Reserved 1 Reserved 2 Intserv [RFC2210] 3 Reserved 4 SONET/SDH [RFC4606] 5 G.709 [RFC4328] 6 Ethernet [RFC6003] Traffic Spec field encoding
The GENERALIZED-BANDWIDTH MAY appear more than once in a PCReq message. If more than one GENERALIZED-BANDWIDTH have the same Object Type, Reserved, R and O values, only the first one is processed, the others are ignored.
a PCE MAY ignore GENERALIZED-BANDWIDTH objects, a PCC that requires a GENERALIZED-BANDWIDTH to be used can set the P (Processing) bit in the object header.
When a PCC needs to get a bi-directional path with asymmetric bandwidth, it SHOULD specify the different bandwidth in forward and reverse directions through two separate GENERALIZED-BANDWIDTH objects. If the PCC set the P bit on both object the PCE MUST compute a path that satisfies the asymmetric bandwidth constraint and return the path to PCC if the path computation is successful. If the P bit on the reverse GENERALIZED-BANDWIDTH object the PCE MAY ignore this constraint.
a PCE MAY include the GENERALIZED-BANDWIDTH objects in the response to indicate the GENERALIZED-BANDWIDTH of the path
Optional TLVs may be included within the object body to specify more specific bandwidth requirements. The specification of such TLVs is outside the scope of this document.
GENERALIZED_BANDWIDTH Object Class = 155bytes, length, log
Constructor and Description |
---|
GeneralizedBandwidth()
Constructs a GeneralizedBandwidth object
|
GeneralizedBandwidth(byte[] bytes,
int offset) |
Modifier and Type | Method and Description |
---|---|
void |
decode(byte[] bytes,
int offset) |
boolean |
equals(Object obj) |
int |
getBwSpecType() |
int |
hashCode() |
void |
setBwSpecType(int bwSpecType) |
getBytes, getLength, setBytes, setLength
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
encode
public GeneralizedBandwidth()
public GeneralizedBandwidth(byte[] bytes, int offset)
public int getBwSpecType()
public void setBwSpecType(int bwSpecType)
public void decode(byte[] bytes, int offset)
public int hashCode()
hashCode
in class PCEPConstruct
public boolean equals(Object obj)
equals
in class PCEPConstruct
Copyright © 2016. All rights reserved.