diff --git a/src/rm_transport.c b/src/rm_transport.c
index 8c49337b3cdd74575cbe1d3a80045faa4a59bda8..de5a60b74aac245877a3235d882741f5c8acdbce 100644 (file)
--- a/src/rm_transport.c
+++ b/src/rm_transport.c
@@ -206,7 +206,7 @@ Rm_TransportResult Rm_transportNodeDelete(Rm_Inst *rmInst, Rm_TransportHandle tr
else\r
{\r
/* Delete the transport node */\r
- if ((prevNode == NULL) && transportNode->nextNode)\r
+ if (prevNode == NULL)\r
{\r
/* Node to be deleted exists at start of route map. Map second\r
* node to be start of route map as long as there are more than\r
@@ -257,31 +257,25 @@ Rm_Packet *Rm_transportCreateResourceReqPkt(Rm_Inst *rmInst, Rm_TransportNode *d
resourceReqPkt = (Rm_ResourceRequestPkt *) rmPkt->data;\r
/* Populate the resource request packet using the transaction information */\r
resourceReqPkt->requestId = transaction->localId;\r
- if (transaction->type == Rm_service_RESOURCE_ALLOCATE)\r
+ if (transaction->type == Rm_service_RESOURCE_ALLOCATE_INIT)\r
{\r
- resourceReqPkt->resourceReqType = Rm_resReqPktType_ALLOCATE;\r
+ resourceReqPkt->resourceReqType = Rm_resReqPktType_ALLOCATE_INIT;\r
}\r
- else if (transaction->type == Rm_service_RESOURCE_BLOCK_ALLOCATE)\r
+ else if (transaction->type == Rm_service_RESOURCE_ALLOCATE_USE)\r
{\r
- resourceReqPkt->resourceReqType = Rm_resReqPktType_BLOCK_ALLOCATE;\r
- }\r
- else if (transaction->type == Rm_service_RESOURCE_ALLOCATE_BY_NAME)\r
- {\r
- resourceReqPkt->resourceReqType = Rm_resReqPktType_ALLOCATE_NAMED;\r
- }\r
+ resourceReqPkt->resourceReqType = Rm_resReqPktType_ALLOCATE_USE;\r
+ } \r
else if (transaction->type == Rm_service_RESOURCE_FREE)\r
{\r
resourceReqPkt->resourceReqType = Rm_resReqPktType_FREE;\r
}\r
- else if (transaction->type == Rm_service_RESOURCE_BLOCK_FREE)\r
- {\r
- resourceReqPkt->resourceReqType = Rm_resReqPktType_BLOCK_FREE;\r
- }\r
- else if (transaction->type == Rm_service_RESOURCE_FREE_BY_NAME)\r
+ else if (transaction->type == Rm_service_RESOURCE_GET_BY_NAME)\r
{\r
- resourceReqPkt->resourceReqType = Rm_resReqPktType_FREE_NAMED;\r
+ resourceReqPkt->resourceReqType = Rm_resReqPktType_GET_NAMED;\r
}\r
- strcpy(&(resourceReqPkt->instName)[0], rmInst->name);\r
+ /* Pass along the packet source and service source information */\r
+ strcpy(resourceReqPkt->pktSrcInstName, rmInst->instName);\r
+ strcpy(resourceReqPkt->serviceSrcInstName, transaction->serviceSrcInstName);\r
/* Copy the resource data */\r
memcpy ((void *)&(resourceReqPkt->resourceInfo), (void *)&(transaction->resourceInfo),\r
sizeof(Rm_ResourceInfo));\r
@@ -365,7 +359,9 @@ Rm_Packet *Rm_transportCreateNsRequestPkt(Rm_Inst *rmInst, Rm_TransportNode *dst
{\r
nsReqPkt->nsRequestType = Rm_nsReqPktType_UNMAP_RESOURCE;\r
}\r
- strcpy(&(nsReqPkt->instName)[0], rmInst->name);\r
+ /* Pass along the packet source and service source information */\r
+ strcpy(nsReqPkt->pktSrcInstName, rmInst->instName);\r
+ strcpy(nsReqPkt->serviceSrcInstName, transaction->serviceSrcInstName);\r
/* Copy the NameServer request data */\r
memcpy ((void *)&(nsReqPkt->resourceInfo), (void *)&(transaction->resourceInfo),\r
sizeof(Rm_ResourceInfo));\r
transaction->remoteOriginatingId = resourceReqPkt->requestId;\r
\r
/* Transfer the rest of the data into the transaction */\r
- if (resourceReqPkt->resourceReqType == Rm_resReqPktType_ALLOCATE)\r
+ if (resourceReqPkt->resourceReqType == Rm_resReqPktType_ALLOCATE_INIT)\r
{\r
- transaction->type = Rm_service_RESOURCE_ALLOCATE;\r
+ transaction->type = Rm_service_RESOURCE_ALLOCATE_INIT;\r
}\r
- else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_BLOCK_ALLOCATE)\r
+ else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_ALLOCATE_USE)\r
{\r
- transaction->type = Rm_service_RESOURCE_BLOCK_ALLOCATE;\r
- }\r
- else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_ALLOCATE_NAMED)\r
- {\r
- transaction->type = Rm_service_RESOURCE_ALLOCATE_BY_NAME;\r
- }\r
+ transaction->type = Rm_service_RESOURCE_ALLOCATE_USE;\r
+ } \r
else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_FREE)\r
{\r
transaction->type = Rm_service_RESOURCE_FREE;\r
}\r
- else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_BLOCK_FREE)\r
+ else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_GET_NAMED)\r
{\r
- transaction->type = Rm_service_RESOURCE_BLOCK_FREE;\r
- }\r
- else if (resourceReqPkt->resourceReqType == Rm_resReqPktType_FREE_NAMED)\r
- {\r
- transaction->type = Rm_service_RESOURCE_FREE_BY_NAME;\r
- }\r
+ transaction->type = Rm_service_RESOURCE_GET_BY_NAME;\r
+ } \r
\r
- strcpy(transaction->sourceInstName, resourceReqPkt->instName);\r
+ strcpy(transaction->pktSrcInstName, resourceReqPkt->pktSrcInstName);\r
+ strcpy(transaction->serviceSrcInstName, resourceReqPkt->serviceSrcInstName);\r
transaction->state = RM_SERVICE_PROCESSING;\r
memcpy ((void *)&(transaction->resourceInfo), (void *)&(resourceReqPkt->resourceInfo),\r
sizeof(Rm_ResourceInfo));\r
transaction->state = resourceRespPkt->requestState;\r
\r
if ((transaction->state == RM_SERVICE_APPROVED_AND_COMPLETED) &&\r
- ((transaction->type == Rm_service_RESOURCE_ALLOCATE) ||\r
- (transaction->type == Rm_service_RESOURCE_BLOCK_ALLOCATE) ||\r
- (transaction->type == Rm_service_RESOURCE_ALLOCATE_BY_NAME)))\r
+ ((transaction->type == Rm_service_RESOURCE_ALLOCATE_INIT) ||\r
+ (transaction->type == Rm_service_RESOURCE_ALLOCATE_USE) ||\r
+ (transaction->type == Rm_service_RESOURCE_GET_BY_NAME)))\r
{\r
/* Copy resources from request for allocations since an allocation\r
* can be specified as unknown. If the request resources were unspecified\r
transaction->type = Rm_service_RESOURCE_UNMAP_NAME;\r
}\r
\r
- strcpy(transaction->sourceInstName, nsRequestPkt->instName);\r
- transaction->state = Rm_transactionState_PROCESSING;\r
+ strcpy(transaction->pktSrcInstName, nsRequestPkt->pktSrcInstName);\r
+ strcpy(transaction->serviceSrcInstName, nsRequestPkt->serviceSrcInstName);\r
+ transaction->state = RM_SERVICE_PROCESSING;\r
memcpy ((void *)&(transaction->resourceInfo), (void *)&(nsRequestPkt->resourceInfo),\r
sizeof(Rm_ResourceInfo));\r
\r
int32_t retVal = RM_TRANSPORT_OK_BASE;\r
\r
/* Make sure the transport handle is registered with the provided RM instance */\r
- if (Rm_transportNodeFindTransportHandle(rmInst, transportHandle) == NULL)\r
- {\r
- /* Transport is not registered with the RM instance. Return an error.\r
- * The packet cannot be freed since the transport handle is not valid. */\r
- return (RM_TRANSPORT_ERROR_HANDLE_HAS_NOT_BEEN_REGISTERED);\r
- }\r
-\r
- /* Check to see if any RM packets are available. Process any available packets. */\r
- while (rmInst->transport.rmNumPktsReceived(transportHandle) > 0)\r
+ if (Rm_transportNodeFindTransportHandle(rmInst, transportHandle) != NULL)\r
{\r
- pkt = rmInst->transport.rmReceive(transportHandle);\r
-\r
- if (pkt == NULL)\r
+ /* Check to see if any RM packets are available. Process any available packets. */\r
+ while (rmInst->transport.rmNumPktsReceived(transportHandle) > 0)\r
{\r
- return (RM_TRANSPORT_ERROR_PACKET_RECEPTION_ERROR);\r
- }\r
+ pkt = rmInst->transport.rmReceive(transportHandle);\r
\r
- /* Pass the packet to RM. The packet will be freed within the PktIsr API */\r
- if (retVal = Rm_receivePktIsr(transportHandle, pkt) <= RM_SERVICE_ERROR_BASE)\r
- {\r
- /* Return if an error is encountered */\r
- return (retVal);\r
+ if (pkt == NULL)\r
+ {\r
+ retVal = RM_TRANSPORT_ERROR_PACKET_RECEPTION_ERROR;\r
+ break;\r
+ }\r
+\r
+ /* Pass the packet to RM. The packet will be freed within the PktIsr API */\r
+ if (retVal = Rm_receivePktIsr(transportHandle, pkt) <= RM_SERVICE_ERROR_BASE)\r
+ {\r
+ /* Return if an error is encountered */\r
+ break;\r
+ }\r
}\r
}\r
+ else\r
+ {\r
+ /* Transport is not registered with the RM instance. Return an error.\r
+ * The packet cannot be freed since the transport handle is not valid. */\r
+ retVal = RM_TRANSPORT_ERROR_HANDLE_HAS_NOT_BEEN_REGISTERED;\r
+ }\r
+\r
return (retVal); \r
}\r
\r