Variations:
1. DISCONNECT message / disconnect the Network Connection
1099 ... the Client MUST send a DISCONNECT
1100 message containing the error code 149 (0x99) Packet Too Large, and disconnect the Network
1101 Connection
2. DISCONNECT / closing the Network Connection
1229 ... The Server MAY send a DISCONNECT with a Return
1230 Code of 128 or greater before closing the Network Connection.
3. DISCONNECT packet / disconnect the transport connection
1405 ... the Server must send a DISCONNECT
1406 packet with the Return Code QoS-NOT-SUPPORTED and disconnect the transport connection.
1427 ... the Server MUST send a DISCONNECT packet with a Return Code RETAIN
1428 NOT-SUPPORTED and then close the transport connection.
4. DISCONNECT control packet / (what about closing the connection?)
1504 ... the Server MUST send a DISCONNECT
1505 Control Packet with a Return Code 0xA2 ...
1517 ... the Server MUST send a DISCONNECT
1518 Control Packet with a Return Code 0xA1 ...
1526 ... the Server MUST send a DISCONNECT
1527 Control Packet with a Return Code 0x9E ...
5. DISCONNECT Packet / disconnect the network
1613 ...it MUST send a DISCONNECT Packet with a Return Code
1614 0x9F Maximum QoS exceeded and disconnect the network.
1633 ... it MUST send a DISCONNECT Packet
1634 with a Return Code 0x9A Retain Unavailable and disconnect the network.
6. DISCONNECT Packet / close the Network Connection
1617 ... it MAY send a DISCONNECT Packet with Return Code 129
1618 (0x81), it MUST close the Network Connection.
1913 send a DISCONNECT Packet with a 0x82 (Protocol Error) Return Code and then close the Network
1914 Connection.
7. DISCONNECT Packet / before closing the Network Connection
2522 ... The Client or Server MAY send a DISCONNECT Packet before
2523 closing the Network Connection.
//
There may be more variations. Could a common style be defined an applied to all such cases?