2.2.1.4.3 Commands Element Attributes

The protocol defines the following attributes for the commands element.

PurGrp (Int): This attribute MUST be present and MUST be the purge group. The value specifies that the delta creator is willing to purge all deltas with groups less than or equal to this value. This MUST NOT be set to a number higher than 0 unless it is guaranteed that all endpoints, including the local endpoint, in the shared space have all deltas up to that group number.

Rank (Int): This attribute MUST be present and MUST be one more than the highest rank of all received and previously created normal deltas.

SenderMinDep (Int): This attribute MUST be present and SHOULD <2> be equal to the smallest group number of all of the immediate dependencies of this delta. It MAY be any smaller number. This is used to calculate which deltas are available to be purged.

PurNot (Null): This attribute MUST be present if at least one of the command elements has the PurNot attribute. It MUST NOT be present if none of the command elements has the PurNot attribute.

SpStSet (String): This attribute MUST be present if there is new space state information that has not been sent on a previous delta. It MAY<3> be set if there is no new space state information. This is the space state set. The space state for an endpoint consists of the following information:

  • Rank: The highest rank of the deltas executed on the endpoint.

  • Min Dependency Group: The minimum dependency group declared by the endpoint.

  • Purge Group: The group number that the endpoint is willing to purge.

  • Dependencies: The sources of the dependency graph on the endpoint.

This attribute MUST contain updated space states for all endpoints, excluding the local endpoint and any states that have previously been sent on a delta. States for endpoints that have been previously sent on deltas MAY <4> be sent, but such information is redundant. The value MUST be a semi-colon delimited string. The string MUST end with a semi-colon. The fields are paired into SpaceStates and EndpointSets. For example:

 SpaceState1;EndpointSet1;SpaceState2;EndpointSet2;…SpaceStateN;EndpointSetN

Within each pair, the endpoints in the endpoint set have the matching space state. In the example, the endpoints in EndpointSet2 have SpaceState2.

The SpaceState MUST be a semi-colon delimited string with four fields. The first MUST be the rank of the space state. The second MUST be the minimum dependency group of the space state. The third SHOULD <5> be the purge group of the space state but can be zero. The fourth MUST be the set of dependencies of the space state. The dependencies MUST be a comma-delimited string of sequence numbers.

The EndpointSet MUST be a comma-delimited string of endpoint identifiers. The endpoint identifiers are 16 character hexadecimal strings. The first 12 characters MUST be the Endpoint UID. The last 4 characters MUST be "0000".

TimeCreated (String): This attribute MAY <6> be present and MAY be any value.