3.2.2.1.4 Activity
Activity: A structure that contains the following information related to an activity. The elements of the structure are:
Activity UUID: A unique identifier for the activity. Section 2.2.1.1.3 specifies UUID format requirements.
Sequence Number: An unsigned 32-bit integer, as specified in [C706] section 12.5.2.11. There is no provision for overflow of sequence numbers.<79>
Security Context Handle
Client Credential Handle: The Client Credential Handle used to create the activity's Security Content Handle.
Active Call Reference counter: Counter indicating the number of active calls associated with the activity.
Current Call: A reference to a Call element in the List of Active Calls. The Current Call is the call for which the client is actively sending fragments and, possibly, waiting for a response from the server. The Current Call is initialized for a new Activity to NULL but will be updated to a new Call element as soon as it is created in the new activity. See section 3.2.2.4.1.5 for details of the relationship between Current Call and the List of Active Calls.
Delayed-Ack Timer: The client MUST store a reference to an instance of a Delayed-Ack Timer for the current call of this activity.
List of Active Calls: A list of active call elements. The list is ordered such that the most recent call on the activity (the Call with the highest call_id) is always last on the list and the active call with the lowest call_id is at the front of the list. The client MUST remove calls from the list when they transition to STATE_COMPLETE or STATE_FAULT.
Context Handle Count: Each activity maintains a list of active context handles as a 32-bit unsigned integer. Context handles are defined in [C706] section 4.2.16.6. The processing rules for creating and releasing context handles are found in [C706] section 6.1.6. Context Handle Count is initialized to zero when a new activity is created. Context Handle Count is incremented when a new context handle is created and decremented when one is released.
Maximum_window_size: An unsigned 32-bit integer representing the maximum number of unacknowledged fragments that can be sent to the server. This value is set to one for the first call of an activity. The maximum supported value is 32. This value is continuously updated by the window_size field of a FACK or NOCALL.
Maximum PDU Length: Each activity tracks the size of the largest packet that can be sent and received by the transport. This value is set to 1,024 bytes for the first call of an activity. At the end of each call, the current value is stored in the activity, and the next call begins with the stored value. When a FACK or NOCALL is received, the value is updated to the lower of the local transport limit and the value in the packet's max_tsdu field.
Last Use Timestamp: The last use timestamp is updated whenever a PDU is sent or received for any Call associated with the activity.
Security Buffer: A buffer to preserve the security token that needs to be sent in a conv_who_are_you_auth_more, as described in section 3.2.1.4.1. The entire security token MAY be stored here and sent using repeated calls to conv_who_are_you_auth_more.
Discard: A Boolean flag indicating that the activity will be discarded as soon as all Calls on the activity complete. This flag is set to FALSE when the activity is allocated. It is set to TRUE to prevent new calls from using the activity.