[OpenAFS-devel] When is an AFS request-response completed?

Andrew J Klosterman andrew5@andrew.cmu.edu
Fri, 2 Nov 2001 20:05:21 -0500 (EST)


How do I know when a packet is a sent by a server in response to a
particular client's request?

With help from readers of this list, I have come to understand that a
packet that *starts* an AFS operation is structured as follows:

      If the packet is of Rx type RX_PACKET_TYPE_DATA and has the
      RX_CLIENT_INITIATED flag set, and has a sequence number of "1", then
      it contains an operation and args.

The next question becomes, how are the responses to a request identified?

From other sources, I have come to believe that the a client's requests
are uniquely identified by three fields of the Rx header: epoch, cid,
callNumber.

Servers, as I understand it, *must* send a response with this same
information (epoch, cid, and callNumber from the original client request)
in a RX_PACKET_TYPE_DATA packet, and this would be the response to the
client's call.

Thus, I only need to keep an (epoch, cid, callNumber) tuple around, and
when a RX_PACKET_TYPE_DATA packet is sent to the originating client's IP
address, if the sent packet matches on (epoch, cid, callNumber), then it
is the response I was waiting for.

Is my understanding correct on this count?  If not, what piece of
information am I missing?

Thanks in advance.

-- Andrew J. Klosterman
andrew5@andrew.cmu.edu
http://www.ece.cmu.edu/~andrew5


    If the packet is of Rx type RX_PACKET_TYPE_DATA and has the
    RX_CLIENT_INITIATED flag set, then it contains an operation and args.

And to relegate all other packets to a bin where I believe that they do
not contain operations and arguments.

Are my assumptions and analysis correct?  Am I missing some (critical)
piece of information in the Rx header or state in the Rx connection or
call that is necessary to make the determination?

--Andrew J. Klosterman
andrew5@andrew.cmu.edu
http://www.ece.cmu.edu/~andrew5


_______________________________________________
OpenAFS-devel mailing list
OpenAFS-devel@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-devel