public class PCEPErrorObject extends PCEPObject
Represents a PCEP Error Object, as defined in RFC 5440
From RFC 5440 Section 7.15. PCEP-ERROR Object
The PCEP-ERROR object is exclusively carried within a PCErr message
to notify of a PCEP error.
PCEP-ERROR Object-Class is 13.
PCEP-ERROR Object-Type is 1.
The format of the PCEP-ERROR 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Flags | Error-Type | Error-value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Optional TLVs //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 20: PCEP-ERROR Object Body Format
A PCEP-ERROR object is used to report a PCEP error and is
characterized by an Error-Type that specifies the type of error and
an Error-value that provides additional information about the error
type. Both the Error-Type and the Error-value are managed by IANA
(see the IANA section).
Reserved (8 bits): This field MUST be set to zero on transmission
and MUST be ignored on receipt.
Flags (8 bits): no flag is currently defined. This flag MUST be set
to zero on transmission and MUST be ignored on receipt.
Error-Type (8 bits): defines the class of error.
Error-value (8 bits): provides additional details about the error.
Optionally, the PCEP-ERROR object may contain additional TLVs so as
to provide further information about the encountered error.
A single PCErr message may contain multiple PCEP-ERROR objects.
For each PCEP error, an Error-Type and an Error-value are defined.
Error-Type Meaning
1 PCEP session establishment failure
Error-value=1: reception of an invalid Open message or
a non Open message.
Error-value=2: no Open message received before the
expiration of the OpenWait timer
Error-value=3: unacceptable and non-negotiable session
characteristics
Error-value=4: unacceptable but negotiable session
characteristics
Error-value=5: reception of a second Open message with
still unacceptable session
characteristics
Error-value=6: reception of a PCErr message proposing
unacceptable session characteristics
Error-value=7: No Keepalive or PCErr message received
before the expiration of the KeepWait
timer
2 Capability not supported
3 Unknown Object
Error-value=1: Unrecognized object class
Error-value=2: Unrecognized object Type
4 Not supported object
Error-value=1: Not supported object class
Error-value=2: Not supported object Type
5 Policy violation
Error-value=1: C bit of the METRIC object set
(request rejected)
Error-value=2: O bit of the RP object set
(request rejected)
6 Mandatory Object missing
Error-value=1: RP object missing
Error-value=2: RRO object missing for a reoptimization
request (R bit of the RP object set)
when bandwidth is not equal to 0.
Error-value=3: END-POINTS object missing
7 Synchronized path computation request missing
8 Unknown request reference
9 Attempt to establish a second PCEP session
10 Reception of an invalid object
Error-value=1: reception of an object with P flag not
set although the P flag must be set according to this
specification.
The error types listed above are described below.
Error-Type=1: PCEP session establishment failure.
If a malformed message is received, the receiving PCEP peer MUST
send a PCErr message with Error-Type=1, Error-value=1.
If no Open message is received before the expiration of the
OpenWait timer, the receiving PCEP peer MUST send a PCErr message
with Error-Type=1, Error-value=2 (see Appendix A for details).
If one or more PCEP session characteristics are unacceptable by
the receiving peer and are not negotiable, it MUST send a PCErr
message with Error-Type=1, Error-value=3.
If an Open message is received with unacceptable session
characteristics but these characteristics are negotiable, the
receiving PCEP peer MUST send a PCErr message with Error-Type-1,
Error-value=4 (see Section 6.2 for details).
If a second Open message is received during the PCEP session
establishment phase and the session characteristics are still
unacceptable, the receiving PCEP peer MUST send a PCErr message
with Error-Type-1, Error-value=5 (see Section 6.2 for details).
If a PCErr message is received during the PCEP session
establishment phase that contains an Open message proposing
unacceptable session characteristics, the receiving PCEP peer MUST
send a PCErr message with Error-Type=1, Error-value=6.
If neither a Keepalive message nor a PCErr message is received
before the expiration of the KeepWait timer during the PCEP
session establishment phase, the receiving PCEP peer MUST send a
PCErr message with Error-Type=1, Error-value=7.
Error-Type=2: the PCE indicates that the path computation request
cannot be honored because it does not support one or more required
capability. The corresponding path computation request MUST be
cancelled.
Error-Type=3 or Error-Type=4: if a PCEP message is received that
carries a PCEP object (with the P flag set) not recognized by the
PCE or recognized but not supported, then the PCE MUST send a
PCErr message with a PCEP-ERROR object (Error-Type=3 and 4,
respectively). In addition, the PCE MAY include in the PCErr
message the unknown or not supported object. The corresponding
path computation request MUST be cancelled by the PCE without
further notification.
Error-Type=5: if a path computation request is received that is not
compliant with an agreed policy between the PCC and the PCE, the
PCE MUST send a PCErr message with a PCEP-ERROR object (Error-
Type=5). The corresponding path computation MUST be cancelled.
Policy-specific TLVs carried within the PCEP-ERROR object may be
defined in other documents to specify the nature of the policy
violation.
Error-Type=6: if a path computation request is received that does
not contain a mandatory object, the PCE MUST send a PCErr message
with a PCEP-ERROR object (Error-Type=6). If there are multiple
mandatory objects missing, the PCErr message MUST contain one
PCEP-ERROR object per missing object. The corresponding path
computation MUST be cancelled.
Error-Type=7: if a PCC sends a synchronized path computation request
to a PCE and the PCE does not receive all the synchronized path
computation requests listed within the corresponding SVEC object
after the expiration of the timer SyncTimer defined in
Section 7.13.3, the PCE MUST send a PCErr message with a PCEP-
ERROR object (Error-Type=7). The corresponding synchronized path
computation MUST be cancelled. It is RECOMMENDED for the PCE to
include the REQ-MISSING TLVs (defined below) that identify the
missing requests.
The REQ-MISSING 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 value field of 4 bytes.
Type: 3
Length: 4 bytes
Value: 4 bytes that indicate the Request-ID-number that
corresponds to the missing request.
Error-Type=8: if a PCC receives a PCRep message related to an
unknown path computation request, the PCC MUST send a PCErr
message with a PCEP-ERROR object (Error-Type=8). In addition, the
PCC MUST include in the PCErr message the unknown RP object.
Error-Type=9: if a PCEP peer detects an attempt from another PCEP
peer to establish a second PCEP session, it MUST send a PCErr
message with Error-Type=9, Error-value=1. The existing PCEP
session MUST be preserved and all subsequent messages related to
the tentative establishment of the second PCEP session MUST be
silently ignored.
Error-Type=10: if a PCEP peers receives an object with the P flag
not set although the P flag must be set according to this
specification, it MUST send a PCErr message with Error-Type=10,
Error-value=1.
Ibit, log, object_bytes, ObjectClass, ObjectLength, OT, Pbit, Res| Constructor and Description |
|---|
PCEPErrorObject() |
PCEPErrorObject(byte[] bytes,
int offset) |
| Modifier and Type | Method and Description |
|---|---|
void |
decode()
Decode PCEP Error Object
|
void |
encode()
Encode PCEP Error Object
|
boolean |
equals(Object obj) |
int |
getErrorType() |
int |
getErrorValue() |
ReqMissingTLV |
getReqMissing() |
int |
hashCode() |
void |
setErrorType(int errorType) |
void |
setErrorValue(int errorValue) |
void |
setReqMissing(ReqMissingTLV reqMissing) |
decode, decodeHeader, encode_header, getBytes, getLength, getObject_bytes, getObjectClass, getObjectClass, getObjectLength, getObjectType, getOT, getRes, isIbit, isPbit, setIbit, setObject_bytes, setObjectClass, setObjectLength, setOT, setPbit, setRes, supportedObjectpublic PCEPErrorObject()
public PCEPErrorObject(byte[] bytes,
int offset)
throws MalformedPCEPObjectException
MalformedPCEPObjectExceptionpublic void encode()
encode in interface PCEPElementencode in class PCEPObjectpublic void decode()
throws MalformedPCEPObjectException
decode in class PCEPObjectMalformedPCEPObjectExceptionpublic int getErrorType()
public void setErrorType(int errorType)
public int getErrorValue()
public void setErrorValue(int errorValue)
public ReqMissingTLV getReqMissing()
public void setReqMissing(ReqMissingTLV reqMissing)
public int hashCode()
hashCode in class PCEPObjectpublic boolean equals(Object obj)
equals in class PCEPObjectCopyright © 2016. All rights reserved.