[BGPCEP-974] PCEP Error Message are sent while they do not Created: 20/Jul/21  Updated: 10/Sep/21  Resolved: 10/Sep/21

Status: Resolved
Project: bgpcep
Component/s: None
Affects Version/s: Aluminium, Silicon, Aluminium SR1, Silicon SR1, Aluminium SR4, 0.16.0, 0.16.1
Fix Version/s: 0.16.4, Silicon SR3

Type: Bug Priority: Highest
Reporter: Olivier Dugeon Assignee: Olivier Dugeon
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by BGPCEP-954 ODL returns PCerror message for any P... Resolved
Priority: High

 Description   

When routers are sending Pcep Report Message, following a PcInitiate, PcUpdate or during the Synchronisation phase, ODL wrongly sent Pcep Error Message with error type 6 (Mandatory Object Missing) and error value 8 (LSP Object Missing).

Fortunately, routers are ignore this PCEP Error message and ODL stores correctly the information in the data store.

The error is located in validateLsp() method of StatefulPCReportMessageParser class. In fact, validate() method call getValidReports() which call validateLSP() and then validatePath(). Inside validatePath(), there is a call to parsePath() which loop other remaining object found in the stream buffer. The loop call insertObject() method which is the faulty method. The method assume that the PCEP Object are present in the PcReport message in a certain order: SRP, LSP, ERO, LSPA, ... If first objects (SRP, LSP, ERO) are really in this order, LSPA could not immediately follow the ERO. Thus, in this case, the rest of Objects are not correctly validate. As the object list is not empty, validateLSP() is call again thinking there is another report which call validateLSP(), but this time it failed as it attempt to validate a non LSP object.

More precisely, the problem take place in the state machine of insertObject() method.

The problem could be observe with a wireshark capture or when activating PCEP log to TRACE level.


Generated at Wed Feb 07 19:14:38 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.