-.ti 0
-2.3.21 New Channel User Payload
-
-When client (user) joins to a channel, server must notify routers
-about the new user on the channel. Normal server sends this packet
-payload to its router which then broadcasts the packet further.
-Router sends this packet always to its primary router. Client must
-not send this packet payload. The mode of the user is NONE after
-user has joined to the channel.
-
-The payload may only be sent with SILC_PACKET_NEW_CHANNEL_USER
-packet. It must not be sent in any other packet type. Following
-diagram represents the New Channel User Payload.
-
-
-
-
-
-
-.in 5
-.nf
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Channel ID Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Channel ID ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Client ID Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Client ID ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-.in 3
-
-.ce
-Figure 20: New Channel User Payload
-
-
-.in 6
-o Channel ID Length (2 bytes) - Length of the Channel ID.
-
-o Channel ID (variable length) - The Channel ID of the channel
- to which the client has joined.
-
-o Client ID Length (2 bytes) - Length of the Client ID.
-
-o Client ID (variable length) - The Client ID of the client
- who has joined the channel.
-.in 3
-
-
-.ti 0
-2.3.22 New Channel List Payload
-
-This payload is used to distribute list of new channels from server
-to routers. It might be convenient to send list of new channels when
-existing server connects to router, instead of sending them one
-by one. Also, when router redistributes the packet by broadcasting it,
-it is convenient to send only one packet.
-
-
-There is no specific payload for this packet type. The packet type
-uses same payload as described in 2.3.19 New Channel Payload. To form
-a list several payloads is put in the packet each after each. The
-payload is variable in length but can be calculated by calculating
-the length of the fields together. This forms one New Channel Payload
-in the list.
-
-The list of payloads may only be sent with SILC_PACKET_NEW_CHANNEL_LIST
-packet. They must not be sent in any other packet type.
-
-
-.ti 0
-2.3.23 New Channel User List Payload
-
-This payload is used to distribute list of channel users on a channel
-from server to routers. It might convenient to send list of channel
-users when existing server connects to router, instead of sending them
-one by one. One list may include users for several different channels.
-Also, when router redistributes the packet by broadcasting it, it is
-convenient to send only one packet.
-
-There is no specific payload for this packet type. The packet type
-uses same payload as described in 2.3.20 New Channel User Payload.
-To form a list several payloads is put in the packet one after another.
-The payload is variable in length but can be calculated by calculating
-the length of the fields together. This forms one New Channel User
-Payload in the list.
-
-The list of payloads may only be sent with packet
-SILC_PACKET_NEW_CHANNEL_USER_LIST. They must not be sent in any other
-packet type.
-
-
-.ti 0
-2.3.24 Replace ID Payload
-
-This payload is used to replace old ID with new ID sent in the payload.
-When ID changes for some entity and the new ID is wanted to replace the
-old one this payload must be used. Client cannot send or receive this
-payload. Normal server and router server may send and receive this
-payload. After this packet has been sent the old ID must not be used
-anymore.
-
-The payload may only be sent with SILC_PACKET_REPLACE_ID packet. It must
-not be sent in any other packet type. Following diagram represents the
-Replace Payload Payload.
-
-
-
-.in 5
-.nf
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Old ID Type | Old ID Length |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| |
-~ Old ID Data ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| New ID Type | New ID Length |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| |
-~ New ID Data ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-.in 3
-
-.ce
-Figure 21: Replace ID Payload
-
-
-.in 6
-o Old ID Type (2 bytes) - Indicates the type of the old ID. See
- section 2.4 SILC ID Types for list of defined ID types.
-
-o Old ID Length (2 bytes) - Length of the old ID Data area not
- including the length of any other fields in the payload.
-
-o Old ID Data (variable length) - The actual old ID data.
-
-o New ID Type (2 bytes) - Indicates the type of the new ID. See
- section 2.4 SILC ID Types for list of defined ID types.
-
-o New ID Length (2 bytes) - Length of the new ID Data area not
- including the length of any other fields in the payload.
-
-o New ID Data (variable length) - The actual new ID data.
-.in 3
-
-
-.ti 0
-2.3.25 Remove ID Payload
-
-Remove ID payload is used to remove ID from SILC network. This is used
-when client, server, router or channel is removed from the SILC network.
-After this payload has been send the old ID must not be used anymore.
-Client must not send or receive this payload.
-
-The packet uses generic ID Payload as New ID Payload. See section
-2.3.2.1 for generic ID Payload.
-
-
-.ti 0
-2.3.26 Remove Channel User Payload
-
-Remove Channel User payload is used to remove a user from a channel network
-wide. This is used by routers to notify other routers that a user has
-left a channel. As routers keep information about users on channels a
-user leaving channel must be removed from all routers. Normal server may
-send this payload as well. Client must not send this payload.
-
-The payload may only be sent with SILC_PACKET_REMOVE_CHANNEL USER packet.
-It must not be sent in any other packet type. Following diagram
-represents the Remove Payload Payload.
-
-
-
-
-
-.in 5
-.nf
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Client ID Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Client ID Data ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Channel ID Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Channel ID Data ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-.in 3
-
-.ce
-Figure 22: Remove Channel User Payload
-
-
-.in 6
-o Client ID Length (2 bytes) - Length of the Client ID Data area
- not including the length of any other fields in the payload.
-
-o Client ID Data (variable length) - The Client ID of the user
- that has left the channel.
-
-o Channel ID Length (2 bytes) - Length of the Channel ID Data area
- not including the length of any other fields in the payload.
-
-o Channel ID Data (variable length) - The Channel ID of the channel
- the user has left.
-.in 3
-
-
-.ti 0
-2.3.27 Set Mode Payload
-
-Set Mode Payload is used by servers and routers to distribute to each
-other the information about changed modes in the SILC network. The
-payload is sent when channel's or client's channel mode is changed.
-Server can send this to router which will broadcast it further to other
-routers. However, normal server must not reiceve this payload. Client
-must not send or receive this payload.
-
-The payload may only be sent with SILC_PACKET_SET_MODE packet.
-It must not be sent in any other packet type. Following diagram
-represents the Set Mode Payload.
-
-
-
-.in 5
-.nf
-.in 5
-.nf
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Mode Type | Payload Length |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Mode Mask |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Argument Nums |
-+-+-+-+-+-+-+-+-+
-.in 3
-
-.ce
-Figure 23: Set Mode Payload
-
-
-.in 6
-o Mode type (2 bytes) - Indicates the type of the mode that was
- changed. Every type has arguments associated to the type which
- are defined below. The following types are defined:
-
- 0 SILC_MODE_TYPE_CHANNEL
-
- Max Arguments: 2
- Arguments: (1) <Channel ID> (2) <Client ID>
-
- The <Channel ID> is the channel which mode was set and the
- <Client ID> is the client who set it.
-
-
- 1 SILC_MODE_TYPE_UCHANNEL
-
- Max Arguments: 3
- Arguments: (1) <Channel ID> (2) <Client ID>
- (3) <Target Client ID>
-
- The <Channel ID> is the channel where the <Client ID> and
- the <Target Client ID> is on. The <Client ID> is the client
- who set the <Target Client ID> mode.
-
-
- 2 - RESERVED
-
- Reserved types.
-
-
- 32768 - Private range
-
- Rest of the types are reserved for private use.
-
-o Payload Length (2 bytes) - Length of the entire Set Mode Payload
- including any associated Argument Payloads.
-
-o Mode Mask (4 bytes) - Indicates the set mode mask. This is
- specified by the mode type. See definitions of SILC_COMMAND_UMODE
- for client modes, SILC_COMMAND_CMODE for channel modes and
- SILC_COMMAND_CUMODE for client's channel modes in [SILC1].
-
-o Argument Nums (2 bytes) - Indicates the number of Argument
- Payloads associated to this payload. Mode types may define
- arguments to be send along this payload.
-.in 3
-
-
-.ti 0
-2.3.28 Set Mode List Payload
-
-This paylaod is used to distribute list of Set Mode payloads inside
-one packet. When server announces channels and client's on those
-channels to its primary router when it connects to it, it is convenient
-to send list of Set Mode payloads to set the modes for the channel
-and clients on those channel. One list may include several mode
-types. Also, when router redistributes the packet by broadcasting it,
-it is convenient to send only one packet.
-
-There is no specific payload for this packet type. The packet type
-uses same payload as described in 2.3.27 Set Mode Payload. To form a
-list several payloads are put in the packet one after another. The
-payload is variable in length but can be calculated by calculating the
-length of the fields together. This forms one Set Mode payload in the
-list.
-
-The list of payloads may only be sent with packet SILC_PACKET_SET_MODE_LIST.
-They must not be sent in any other packet type.
-
-