2.2.6 DN_NAMETABLE

The name table is a concept used by DirectPlay to keep all participants in a game session in sync with the different actions that are being performed.

The name table is really a table of players and groups that are included in the game session. Each change to the state of the table is a versioned name table operation. Any participant in the game session who applies these operations will generate a view that is consistent with every other players' name table.

The following table identifies the name table operations that can be performed.

 Action

 Meaning

0x000000C6

DN_INSTRUCT_CONNECT (section 2.2.1.9)

0x000000D0

DN_ADD_PLAYER (section 2.2.1.7)

0x000000D1

DN_DESTROY_PLAYER (section 2.2.2.2)

0x000000D7

DN_CREATE_GROUP (section 2.2.4.2)

0x000000D8

DN_DESTROY_GROUP (section 2.2.4.8)

0x000000D9

DN_ADD_PLAYER_TO_GROUP (section 2.2.4.4)

0x000000DA

DN_DELETE_PLAYER_FROM_GROUP (section 2.2.4.6)

0x000000DB

DN _UPDATE_INFO (section 2.2.5.2)

The host/server is responsible for all name table operations, and all peers in the game session MUST maintain their own name table copy for use in host migration. All participants MUST also preserve a record of all operations that they have performed on the name table that have incremented the version number used during host migration.

The first operation in the name table is set to a version number of 1 and each subsequent operation increments the version by one. Every time the modulo 4 result of the new version number of the name table is equal to 0, each non-host peer SHOULD send a DN_NAMETABLE_VERSION message to the host reporting the current name table version of the peer. The host SHOULD track the versions reported by all peers and determine the oldest version number from all reports. When the oldest version number advances, the host SHOULD send a DN_RESYNC_VERSION message to all participants indicating the new oldest value. All participants SHOULD then release their records of all name table operations with versions older than this value, as they will no longer be needed during host migration.