public class NoPath extends PCEPObject
Represents a PCEP NO-PATH object as defined in RFC 5440
From RFC 5440 Section 7.5. NO-PATH Object
The NO-PATH object is used in PCRep messages in response to an unsuccessful path computation request (the PCE could not find a path satisfying the set of constraints). When a PCE cannot find a path satisfying a set of constraints, it MUST include a NO-PATH object in the PCRep message. There are several categories of issue that can lead to a negative reply. For example, the PCE chain might be broken (should there be more than one PCE involved in the path computation) or no path obeying the set constraints could be found. The "NI (Nature of Issue)" field in the NO-PATH object is used to report the error category. Optionally, if the PCE supports such capability, the NO-PATH object MAY contain an optional NO-PATH-VECTOR TLV defined below and used to provide more information on the reasons that led to a negative reply. The PCRep message MAY also contain a list of objects that specify the set of constraints that could not be satisfied. The PCE MAY just replicate the set of objects that was received that was the cause of the unsuccessful computation or MAY optionally report a suggested value for which a path could have been found (in which case, the value differs from the value in the original request). NO-PATH Object-Class is 3. NO-PATH Object-Type is 1. The format of the NO-PATH object body is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Nature of Issue|C| Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Optional TLVs // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 11: NO-PATH Object Format NI - Nature of Issue (8 bits): The NI field is used to report the nature of the issue that led to a negative reply. Two values are currently defined: 0: No path satisfying the set of constraints could be found 1: PCE chain broken The Nature of Issue field value can be used by the PCC for various purposes: Constraint adjustment before reissuing a new path computation request, Explicit selection of a new PCE chain, Logging of the error type for further action by the network administrator. IANA management of the NI field codespace is described in Section 9. Flags (16 bits). The following flag is currently defined: o C flag (1 bit): when set, the PCE indicates the set of unsatisfied constraints (reasons why a path could not be found) in the PCRep message by including the relevant PCEP objects. When cleared, no failing constraints are specified. The C flag has no meaning and is ignored unless the NI field is set to 0x00. Unassigned bits are considered as reserved. They MUST be set to zero on transmission and MUST be ignored on receipt. Reserved (8 bits): This field MUST be set to zero on transmission and MUST be ignored on receipt. The NO-PATH object body has a variable length and may contain additional TLVs. The only TLV currently defined is the NO-PATH- VECTOR TLV defined below. Example: consider the case of a PCC that sends a path computation request to a PCE for a TE LSP of X Mbit/s. Suppose that PCE cannot find a path for X Mbit/s. In this case, the PCE must include in the PCRep message a NO-PATH object. Optionally, the PCE may also include the original BANDWIDTH object so as to indicate that the reason for the unsuccessful computation is the bandwidth constraint (in this case, the NI field value is 0x00 and C flag is set). If the PCE supports such capability, it may alternatively include the BANDWIDTH object and report a value of Y in the bandwidth field of the BANDWIDTH object (in this case, the C flag is set) where Y refers to the bandwidth for which a TE LSP with the same other characteristics (such as Setup/Holding priorities, TE LSP attribute, local protection, etc.) could have been computed. When the NO-PATH object is absent from a PCRep message, the path computation request has been fully satisfied and the corresponding paths are provided in the PCRep message. An optional TLV named NO-PATH-VECTOR MAY be included in the NO-PATH object in order to provide more information on the reasons that led to a negative reply. The NO-PATH-VECTOR TLV is compliant with the PCEP TLV format defined in Section 7.1 and is comprised of 2 bytes for the type, 2 bytes specifying the TLV length (length of the value portion in bytes) followed by a fixed-length 32-bit flags field. Type: 1 Length: 4 bytes Value: 32-bit flags field IANA manages the space of flags carried in the NO-PATH-VECTOR TLV (see Section 9). The following flags are currently defined: o Bit number: 31 - PCE currently unavailable o Bit number: 30 - Unknown destination o Bit number: 29 - Unknown source
Ibit, log, object_bytes, ObjectClass, ObjectLength, OT, Pbit, Res
Constructor and Description |
---|
NoPath() |
NoPath(byte[] bytes,
int offset)
Constructs a new NO-PATH Object from a sequence of bytes
|
Modifier and Type | Method and Description |
---|---|
void |
decode()
Decode NoPath Object
|
void |
encode()
Encode NoPath Object
|
boolean |
equals(Object obj) |
int |
getNatureOfIssue() |
NoPathTLV |
getNoPathTLV() |
int |
hashCode() |
boolean |
iscFlag() |
void |
setcFlag(boolean cFlag) |
void |
setCFlag(boolean cFlag) |
void |
setNatureOfIssue(int natureOfIssue) |
void |
setNoPathTLV(NoPathTLV noPathTLV) |
String |
toString()
returns a String with the main contents
FIXME: No cFlag and no NoPathTLV in response!!!!
|
decode, decodeHeader, encode_header, getBytes, getLength, getObject_bytes, getObjectClass, getObjectClass, getObjectLength, getObjectType, getOT, getRes, isIbit, isPbit, setIbit, setObject_bytes, setObjectClass, setObjectLength, setOT, setPbit, setRes, supportedObject
public NoPath()
public NoPath(byte[] bytes, int offset) throws MalformedPCEPObjectException
bytes
- Sequence of bytes where the object is presentoffset
- Position at which the object startsMalformedPCEPObjectException
- Thrown if the decoded object is not well formedpublic void encode()
encode
in interface PCEPElement
encode
in class PCEPObject
public void decode() throws MalformedPCEPObjectException
decode
in class PCEPObject
MalformedPCEPObjectException
public int getNatureOfIssue()
public void setNatureOfIssue(int natureOfIssue)
public boolean iscFlag()
public void setcFlag(boolean cFlag)
public void setCFlag(boolean cFlag)
public NoPathTLV getNoPathTLV()
public void setNoPathTLV(NoPathTLV noPathTLV)
public String toString()
public int hashCode()
hashCode
in class PCEPObject
public boolean equals(Object obj)
equals
in class PCEPObject
Copyright © 2016. All rights reserved.