Invoking PCE module

Description

The developer guide docs indicates that it is possible to use path-computation-request as an external REST API in order to invoke the PCE module for checking connectivity:

https://docs.opendaylight.org/projects/transportpce/en/latest/developer-guide.html#invoking-pce-module

However, this does not work in practice. The problem is that the servicehandler sets an input variable in the pce listener when receiving and processing a service request. If a path-computation-request is then sent through the external REST API, the pce listener will get a notification when path computation is finished and continue processing with the old input and new computed path. If the old input corresponds e.g. to a service creation, this will result in the service being re-created with the new path.

Since invoking the PCE module as described in the docs would be a useful feature, maybe this could be solved by resetting the input variable in pce listener after finishing processing a request.

Environment

None

Activity

Show:

Jonas Mårtensson September 15, 2022 at 6:50 PM

Hi Gilles, maybe I read too much into it but the guide does specify the RESTCONF API for invoking the PCE, and to me, in the context of ODL, RESTCONF is an external API. Sure the API works fine in the functional tests where it is not mixed with service requests through the service handler. In our application we are using TPCE both for service requests and for standalone path computation, and mixing these does not work without modifying the code, as I explained in the issue description.

Gilles THOUENON September 15, 2022 at 12:26 PM

Thanks Jonas for having reported this point.
Actually, I don't read that the developer guide evokes the internal/external aspect of the PCE API.
Anyway, the PCE API works fine since it is used in the PCE functional tests (see https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=blob;f=tests/transportpce_tests/pce/test01_pce.py;h=cdfe103aa0791aa210d4ea66da4530f9d94508c7;hb=refs/heads/master).
The description you give corresponds to the case where PCE is invoked through the ServiceHandler, so when it is integrated in the global end-to-end process. The documentation mentions a specific case where PCE is used rather like a standalone feature.

Details

Assignee

Reporter

Priority

Created August 8, 2022 at 6:50 AM
Updated September 15, 2022 at 6:50 PM