[Nsi-wg] Discussion on NSI error handling.

John MacAuley john.macauley at surfnet.nl
Wed Oct 12 12:33:37 CDT 2011


Peoples,

I took and action to start the error handling discussion so that we, as a group, can document the error messages and behaviors.  I would like to start it off with when an NSIServiceException is returned as a SOAP fault to a request, and when it is returned in a specific failed response message.

OpenDRAC used the strategy of validating a “key” set of attributes in the request before returning an ACK response or SOAP fault.  This gives OpenDRAC the opportunity to validate parameters needed to accept the message for processing, and possibly return the asynchronous failed message at a later time.  Here is the list of parameters I will validate in a reservation message and return a SOAP fault if they are incorrect or missing.

HTTP authentication – if you don’t have valid credentials you are rejected with an HTTP 40x message.

correlationId - needed for any acknowledgment, confirmation, or failed message.  Must be unique within the context of the providerNSA otherwise the request cannot be accepted.

replyTo - we will send the confirmation, or failed message back to this location.  We do not validate the contents of the endpoint, just that it exists.

Reservation – if the reservation parameters are not present then we reject. 

requesterNSA and providerNSA – must be present and resolve to an NsNetwork in topology.  Also, the providerNSA must be the NsNetwork OpenDRAC is managing or we reject the message.

connectionId – this is used as the primary reference attribute for reservation state machines and must be present.

If any of  these fields are missing or invalid OpenDRAC will return a SOAP fault containing the NSIServiceException set to an appropriate error message.

Here is a list of error messages currently implemented in OpenDRAC.  The list continues to expand.  I have kept the text generic with the specific error values being returned in the associated attribute list.  We will also need to agree on the format of the message/errorId.

MISSINGPARAMETER, “SVC0001", "Invalid or missing parameter"
UNSUPPORTEDOPTION, “SVC0002", "Parameter provided contains an unsupported value which MUST be processed"
ALREADYEXISTS, “SVC0003", "Schedule already exists for connectionId"
DOESNOTEXISTS, "SVC0004", "Schedule does not exists for connectionId"
MISSINGSECURITY, “SVC0005", "Invalid or missing user credentials"
TOPOLOGYRESOLUTION_STP, "SVC0006", "Could not resolve STP in Topology database"
TOPOLOGYRESOLUTION_STP_NSA, SVC0007", "Could not resolve STP to managing NSA"
PATHCOMPUTATION_NO_PATH, “SVC0008", "Path computation failed to resolve route for reservation"
INVALIDSTATE, “SVC0009", "Connection state machine is in invalid state for received message"
INTERNALERROR, "SVC0010", "An internal error has cause a message processing failure"

Would people like to add to the list?

Comments?

John.



More information about the nsi-wg mailing list