Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-543

Malformed update-lsp RPC gets stuck with no response.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • Helium
    • restconf
    • None
    • Operating System: Linux
      Platform: PC

    • 1146

      This bug is triggered similarly to CONTROLLER-541.

      This may be bug of BGPCEP plugin, but I guess RPC input data validation is a job for restconf component.

      Bug was encountered when using ODL configured to use draft-ietf-pce-stateful-pce-02 extension to PCEP in environment with capable PCCs, I do not know how to replicate bug without them.

      As a preparation, add-lsp has to be called, here is example curl number 1:
      curl -X POST -H "Content-Type:application/yang.data+json" -d '{"input":{"node":"pcc://39.39.39.39","name":"my_name","network-topology-ref":"/network-topology:network-topology/network-topology:topology[network-topology:topology-id=\"pcep-topology\"]","arguments":{"endpoints-obj":{"ipv4":

      {"source-ipv4-address":"39.39.39.39","destination-ipv4-address":"43.43.43.43"}

      }}}}' 127.0.0.1:8080/restconf/operations/network-topology-pcep:add-lsp

      Critical step happens when calling update-lsp without "ero" field. Example (verbose) curl number 4:
      curl -v -X POST -H "Content-Type:application/yang.data+json" -d '{"input":{"node":"pcc://39.39.39.39","name":"my_name","network-topology-ref":"/network-topology:network-topology/network-topology:topology[network-topology:topology-id=\"pcep-topology\"]","arguments":

      {"operational":true}

      }}' 127.0.0.1:8080/restconf/operations/network-topology-pcep:update-lsp

      This call produces no lines in opendaylight.log (default logback.xml except org.opendaylight.bgpcep set to TRACE), curl does not print any response related text and just keeps waiting indefinitely.

      For comparison, here is correct form of intended update-lsp, as example curl number 3:
      curl -X POST -H "Content-Type:application/yang.data+json" -d '{"input":{"node":"pcc://39.39.39.39","name":"my_name","network-topology-ref":"/network-topology:network-topology/network-topology:topology[network-topology:topology-id=\"pcep-topology\"]","arguments":{"operational":true,"ero":[{"subobject":{"loose":false,"ip-prefix":

      {"ip-prefix":"195.20.160.40/32"}

      }},{"subobject":{"loose":false,"ip-prefix":

      {"ip-prefix":"201.20.160.43/32"}

      }},{"subobject":{"loose":false,"ip-prefix":

      {"ip-prefix":"43.43.43.43/32"}

      }}]}}}' 127.0.0.1:8080/restconf/operations/network-topology-pcep:update-lsp

      And to get back to initial state (before curl number 1) it seem to be sufficient to just call remove-lsp, using example curl number 0:
      curl -X POST -H "Content-Type:application/yang.data+json" -d '{"input":{"node":"pcc://39.39.39.39","name":"my_name","network-topology-ref":"/network-topology:network-topology/network-topology:topology[network-topology:topology-id=\"pcep-topology\"]"}}' 127.0.0.1:8080/restconf/operations/network-topology-pcep:remove-lsp

      What is wrong? Lack of response. For differently malformed RPCs I have seen error code 400 with helpful message, so I expected the same here.

            jgloncak Jozef Gloncak
            vrpolak Vratko Polak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: