2.3.2 Generic payloads .................................... 16
2.3.2.1 ID Payload .................................. 16
2.3.2.2 Argument Payload ............................ 16
+ 2.3.2.3 Channel Payload ............................. XXX
2.3.3 Disconnect Payload .................................. 17
2.3.4 Success Payload ..................................... 18
2.3.5 Failure Payload ..................................... 18
Figure 2: SILC Packet Header
Figure 3: ID Payload
Figure 4: Argument Payload
-Figure 5: Disconnect Payload
-Figure 6: Success Payload
-Figure 7: Failure Payload
-Figure 8: Reject Payload
-Figure 9: Notify Payload
-Figure 10: Error Payload
-Figure 11: Channel Message Payload
-Figure 12: Channel Key Payload
-Figure 13: Private Message Payload
-Figure 14: Private Message Key Payload
-Figure 15: Command Payload
-Figure 16: Connection Auth Request Payload
-Figure 17: New Client Payload
-Figure 18: New Server Payload
-Figure 19: New Channel Payload
+Figure 5: Channel Payload
+Figure 6: Disconnect Payload
+Figure 7: Success Payload
+Figure 8: Failure Payload
+Figure 9: Reject Payload
+Figure 10: Notify Payload
+Figure 11: Error Payload
+Figure 12: Channel Message Payload
+Figure 13: Channel Key Payload
+Figure 14: Private Message Payload
+Figure 15: Private Message Key Payload
+Figure 16: Command Payload
+Figure 17: Connection Auth Request Payload
+Figure 18: New Client Payload
+Figure 19: New Server Payload
+Figure 20: Key Agreement Payload
+Figure 21: Cell Routers Payload
.ti 0
Payload of the packet: See section 2.3.20 Key Agreement Payload
- 26 - 199
+ 26 SILC_PACKET_CELL_ROUTERS
+
+ This packet is used by primary router in the cell to notify its
+ primary router what other routers (backup routers) exist in the
+ cell. In case of failure of the primary router in the cell the
+ first router in the list will act as primary router of the cell.
+ This packet may be sent at anytime after connection has been
+ registered to the primary router. The client must not send this
+ packet.
+
+ Payload of the packet: See section 2.3.21 Cell Routers Payload
+
+
+ 27 - 199
Currently undefined commands.
payloads must cause rejection of the packet. The following diagram represents
the Argument Payload.
+The following diagram represents the Argument Payload.
.in 5
.nf
.in 3
+.ti 0
+2.3.2.3 Channel Payload
+
+Generic Channel Payload may be used information about channel, its name,
+the Channel ID and a mode.
+
+The following diagram represents the Channel 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
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Channel Name Length | |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+| |
+~ Channel Name ~
+| |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Channel ID Length | |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+| |
+~ Channel ID ~
+| |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Mode Mask |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+.in 3
+
+.ce
+Figure 5: New Channel Payload
+
+
+.in 6
+o Channel Name Length (2 bytes) - Length of the channel name
+ field.
+
+o Channel Name (variable length) - The name of the channel.
+
+o Channel ID Length (2 bytes) - Length of the Channel ID field.
+
+o Channel ID (variable length) - The Channel ID.
+
+o Mode Mask (4 bytes) - A mode. This can be the mode of the
+ channel but it can also be the mode of the client on the
+ channel. The contents of this field is dependent of the
+ usage of this payload. The usage is defined separately
+ when this payload is used. This is a 32 bit MSB first value.
+.in 3
+
+
.ti 0
2.3.3 Disconnect Payload
.in 3
.ce
-Figure 5: Disconnect Payload
+Figure 6: Disconnect Payload
.in 3
.ce
-Figure 6: Success Payload
+Figure 7: Success Payload
.in 6
.in 3
.ce
-Figure 7: Failure Payload
+Figure 8: Failure Payload
.in 6
.in 3
.ce
-Figure 8: Reject Payload
+Figure 9: Reject Payload
.in 6
.in 3
.ce
-Figure 9: Notify Payload
+Figure 10: Notify Payload
.in 6
1 SILC_NOTIFY_TYPE_INVITE
- Sent when receiver has been invited to a channel. This type must be
- sent directly to the invited client.
+ Sent when an client is invited to a channel. This is also sent
+ when the invite list of the channel is changed. This notify type
+ is sent between routers and if the <Client ID> is argument is
+ provided to the client as well.
- Max Arguments: 2
- Arguments: (1) <Client ID> (2) <Channel ID>
+ Max Arguments: 4
+ Arguments: (1) [<Client ID>] (2) <Channel ID>
+ (3) [<adding client>] (4) [<removing client>]
- The <Client ID> is the client who invites the receiver of this type
- to channel indicated by <Channel ID>.
+ The <Client ID> is the client which was invited to the channel.
+ The <Channel ID> is the channel. The <adding client> and the
+ <removing client> indicates the added or removed client from the
+ channel's invite list. The format of the <adding client and the
+ <removing client> is defined in the [SILC1] with SILC_COMMAND_INVITE
+ command.
+
+ The <adding client> and <removing client> is never sent to the
+ client indicated by the <Client ID>. Also note that the lists
+ include the <Client ID> already.
2 SILC_NOTIFY_TYPE_JOIN
broadcast it to the network.
Max Arguments: 2
- Arguments: (1) <Client ID> (2) <Channel ID>
+ Arguments: (1) [<Client ID>] (2) <Channel ID>
The <Client ID> is the client that joined to the channel indicated
- by the <Channel ID>.
+ by the <Channel ID>. The <adding client> and <removing client>
+ indicates the added or removed client in the current invite list.
+ The format of the <adding client> and the <removing client> is
+ defined in the [SILC1] with SILC_COMMAND_INVITE command. If the
+ <Client ID> is not provided then this
3 SILC_NOTIFY_TYPE_LEAVE
The kicker may have set the <comment> to indicate the reason for
the kicking.
+
+13 SILC_NOTIFY_TYPE_KILLED
+
+ Sent when a client has been killed from the network. This is sent
+ also to the client who was killed from the network. The client
+ who was killed from the network must be removed from the network.
+ This notify type is destined directly to the client who was killed
+ and to channel if the client is on any channel. The router or
+ server receiving the packet distributes this type to the local
+ clients on the channel and broadcast it to the network.
+
+ Max Arguments: 2
+ Arguments: (1) <Client ID> (2) [<comment>]
+
+ The <Client ID> is the client who was killed from the network.
+ The killer may have set the <comment> to indicate the reason for
+ the killing.
+
+
+14 SILC_NOTIFY_TYPE_UMODE_CHANGE
+
+ Sent when user's mode in the SILC changes. This type is sent only
+ between routers as broadcast packet.
+
+ Max Arguments: 2
+ Arguments: (1) <Client ID> (2) <mode mask>
+
+ The <Client ID> is the client which mode was changed. The <mode mask>
+ is the new mode mask.
+
+
+15 SILC_NOTIFY_TYPE_BAN
+
+ Sent when the ban list of the channel is changed. This type is sent
+ only between routers as broadcast packet.
+
+ Max Arguments: 3
+ Arguments: (1) <Channel ID> (2) [<adding client>]
+ (3) [<removing client>]
+
+ The <Channel ID> is the channel which ban list was changed. The
+ <adding client> is used to indicate the a ban was added and the
+ <removing client> is used to indicate that a ban was removed from
+ the ban list. The format of the <adding client> and the
+ <removing client> is defined in the [SILC1] with SILC_COMMAND_BAN
+ command.
+
.in 3
Notify types starting from 16384 are reserved for private notify
.in 3
.ce
-Figure 10: Error Payload
+Figure 11: Error Payload
.in 6
.in 3
.ce
-Figure 11: Channel Message Payload
+Figure 12: Channel Message Payload
.in 6
.in 3
.ce
-Figure 12: Channel Key Payload
+Figure 13: Channel Key Payload
.in 3
.ce
-Figure 13: Private Message Payload
+Figure 14: Private Message Payload
.in 6
.in 3
.ce
-Figure 14: Private Message Key Payload
+Figure 15: Private Message Key Payload
.in 3
.ce
-Figure 15: Command Payload
+Figure 16: Command Payload
.in 6
.in 3
.ce
-Figure 16: Connection Auth Request Payload
+Figure 17: Connection Auth Request Payload
.in 6
client ID.
The payload may only be sent with SILC_PACKET_NEW_CLIENT packet. It
-must not be sent in any other packet type. The following diagram represents
-the New Client Payload.
+must not be sent in any other packet type. The following diagram
+represents the New Client Payload.
.in 3
.ce
-Figure 17: New Client Payload
+Figure 18: New Client Payload
.in 6
.in 3
.ce
-Figure 18: New Server Payload
+Figure 19: New Server Payload
.in 6
then processes the command and creates the channel. Client never sends
this packet.
-The payload may only be sent with SILC_PACKET_NEW_CHANNEL packet.
-It must not be sent in any other packet type. The following diagram
-represents the New Channel 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 Name Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Channel Name ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Channel ID Length | |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
-| |
-~ Channel ID ~
-| |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-.in 3
-
-.ce
-Figure 19: New Channel Payload
-
-
-
-.in 6
-o Channel Name Length (2 bytes) - Length of the channel name.
-
-o Channel Name (variable length) - The name of the created
- channel.
-
-o Channel ID Length (2 bytes) - Length of the Channel ID.
-
-o Channel ID (variable length) - The created Channel ID.
-.in 3
+The packet uses generic Channel Payload as New Channel Payload. See
+section 2.3.2.3 for generic Channel Payload. The Mode Mask field in the
+Channel Payload is the mode of the channel.
.ti 0
Figure 20: Key Agreement Payload
-
.in 6
o Hostname Length (2 bytes) - Indicates the length of the Hostname
field.
the key material is undefined.
+.ti 0
+2.3.21 Cell Routers Payload
+
+Cell Routers payload is used by router to notify its primary router what
+other routers exist in the cell. The other routers are considered to be
+backup routers and one of them will come active only in the case of
+failure of the primary router. Normal server can send this packet if it
+is acting as backup router. Client must not send this packet. To send
+more than one backup router set the List flag and assemble the payloads
+as list.
+
+The payload may only be sent with SILC_PACKET_CELL_ROUTERS packet. It
+must not be sent in any other packet type. The Following diagram
+represents the Cell Routers 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
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Hostname Length | |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+| |
+~ Hostname ~
+| |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Port |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Server ID Length | |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+| |
+~ Server ID ~
+| |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+.in 3
+
+.ce
+Figure 21: Cell Routers Payload
+
+
+.in 6
+o Hostname Length (2 bytes) - Indicates the length of the Hostname
+ field.
+
+o Hostname (variable length) - The hostname or IP address of
+ the backup router.
+
+o Port (4 bytes) - The port of the backup router it currently uses.
+ This is a 32 bit MSB first order value.
+
+o Server ID Length (2 bytes) - Indicates the length of the Server
+ ID field.
+
+o Server ID (variable length) - Consists of the Server ID of the
+ backup router.
+.in 3
+
+
.ti 0
2.4 SILC ID Types