[BGPCEP-444] Attempted PCEP Update for a non-delegated LSP throws error type 6 and value 14 Created: 19/Apr/16 Updated: 03/Mar/19 Resolved: 26/May/16 |
|
| Status: | Resolved |
| Project: | bgpcep |
| Component/s: | PCEP |
| Affects Version/s: | Bugzilla Migration |
| Fix Version/s: | Bugzilla Migration |
| Type: | Bug | ||
| Reporter: | Ajay Chhabria | Assignee: | Kevin Wang |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| External issue ID: | 5763 | ||||||||
| Description |
|
PCEP update complains about missing symbolic path name (error type 6 and value 14) after delegation of the tunnel is revoked. The symbolic path name is learnt by the controller through REST even after delegation is revoked. Snapshot of controllers REST output: <topology |
| Comments |
| Comment by Ajay Chhabria [ 19/Apr/16 ] |
|
Attachment Error_6_value_14.PNG has been added with description: PCEP Update after delegation is revoked |
| Comment by Ajay Chhabria [ 19/Apr/16 ] |
|
Ideally the error type should be Error type 19 and value 1. |
| Comment by Milos Fabian [ 20/Apr/16 ] |
|
(In reply to Ajay Chhabria from comment #2) The error (missing symbolic path name) is returned by the PCC, it's not ODL PCE fault. The PCEP stateful draft says anything about the symbolic-path-name TLV inclusion in PcUpd message. |
| Comment by Ajay Chhabria [ 20/Apr/16 ] |
|
Attachment type_bug_5763_pcc_initiated.pcap has been added with description: PCC initiated tunnels |
| Comment by Ajay Chhabria [ 20/Apr/16 ] |
|
Attachment type_bug_5763_pce_initiated.pcap has been added with description: PCE initiated tunnels |
| Comment by Ajay Chhabria [ 20/Apr/16 ] |
|
I noticed that in PCE initiated tunnel, the tunnel eventually gets deleted. |
| Comment by Kevin Wang [ 21/Apr/16 ] |
|
It seems that in both cases (PCC or PCE initiated tunnel), the tunnel gets dropped after a while. After the ODL PCE received the report from PCC where the delegation is set to false, ODL removed the tunnel from datastore. In the 2nd update, PCE thought the tunnel was not there anymore, so PCE actually tried to initiate another tunnel. I think there might be a bug in handling the PCEP report whose delegation is set to false. Besides, I don't think update-lsp is supposed to send a tunnel initialization request, it should pop up an error if the tunnel doesn't exist. |
| Comment by Milos Fabian [ 21/Apr/16 ] |
|
The following is happening: So when you hit updateLsp RPC second time (PCE is not holding the delegation), ODL PCE tries to revoke delegation of the tunnel (send PCInitate message). Conclusion: What you are experiencing is expected. |
| Comment by Kevin Wang [ 26/Apr/16 ] |
|
We should add more karaf log when a tunnel is removed from ODL and specify the reason for it, to help user understand the behavior in the background |
| Comment by Kevin Wang [ 29/Apr/16 ] |
|
This bug actually included two parts. The first part is the PCEP tunnel get reverted automatically in controller after you set the delegation to false. According to Milos’s last comment, it’s actually expected. In the 2nd update-lsp request, PCE/ODL thought the tunnel is gone, so it actually sent a LSP initiate message instead of an update message. This is not a bug. The second part of the bug is, the XRv is returning "symbolic path name missing error" in the 2nd update. Per RFC, the PCE is required to include symbolic path name in the LSP object of the initiate message(https://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-3.2) with a PLSP-ID set to 0. It does not mention the inclusion of symbolic path name in update message. Looking at the initiate message in the PCAP file, both PLSP-ID are not set to 0. I think that's the problem. The device is look for a symbolic path with PLSP-ID set to some value, which it cannot find. Thus it returns the value. The result what we expected from the 2nd LSP update: 1. PCE/ODL tries to send an initiate message with all required values set and PLSP-ID set to 0. The values should be get from the previous PCEP session. OR 2. PCE/ODL tries to send an initiate message with PLSP-ID set to 0, while per the PCAP shows, the endpoint and ero object are missing. It should receive a endpoint object missing or ero object missing error from the device instead. |
| Comment by Milos Fabian [ 02/May/16 ] |
|
The PCInitiate message is not supposed to re-create the tunnel, but retake a delegation as described here: "In case of PCEP session failure, control over PCE-initiated LSPs reverts to the PCC at the expiration of the redelegation timeout. To obtain control of a PCE-initiated LSP, a PCE (either the original or one of its backups) sends a PCInitiate message, including just the SRP and LSP objects, and carrying the PLSP-ID of the LSP it wants to take control of. Receipt of a PCInitiate message with a non-zero PLSP-ID normally results in the generation of a PCErr. If the State Timeout timer is running, the PCC MUST NOT generate an error and redelegate the LSP to the PCE." Ref.: https://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-6 That's what is happening when you invoke "updateLsp" RPC the second time. Based on the above - ODL PCE set PLSP-ID of the tunnel. But "symbolic path name" inclusion is not mentioned there - for some reason it is required by XRv implementation. |
| Comment by Milos Fabian [ 02/May/16 ] |
|
May be one think should be fixed in ODL -> the delegation retake should be invoked only for PCE-initiated tunnels. In a case of PCC-initiated non-delegated tunnel, the failure should be returned immediately. |
| Comment by Kevin Wang [ 02/May/16 ] |
|
Milos, The section you are referring is about PCEP session failure. I don't think it applies to the situation that PCE returns the delegation. In the RFC, I only see it saying "The PCC cannot revoke the delegation for PCE-initiated LSPs for an active PCEP session." But it doesn't say what should happen if PCE revokes the delegation on a PCE-initiated LSP. And in https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-14#section-5.7.2.1 , it says So the problem here is, PCE is not supposed to send an initiate message to retake the delegation, as it has explicitly returned the delegation by user, it should not retake it in the background without user's acknowledge, unless user set delegation flag to true again in the second update. The expected behaviour is: A redelegation should not happen here as it is not a session failure. |
| Comment by Milos Fabian [ 03/May/16 ] |
|
The same can be applied if session goes down or PCE is not currently holding a delegation - in both cases PCC become the LSP delegation holder for some time. The retaking of the delegation is done based on the user request (the second updateLsp in this particular case). The draft is not mentioning a need for a delegation flag to be set in this case. What should probably be fixed in ODL: |
| Comment by Kevin Wang [ 03/May/16 ] |
|
Milos, So regarding this issue, even if user explicitly set the delegation to false in the 2nd update request, PCE will still try to retake the delegation back in this case? |
| Comment by Milos Fabian [ 04/May/16 ] |
|
(In reply to Kevin Wang from comment #15) Correct. |
| Comment by Kevin Wang [ 22/May/16 ] |
| Comment by Kevin Wang [ 25/May/16 ] |