ltm rule command MQTT dupΒΆ

iRule(1)		      BIG-IP TMSH Manual		      iRule(1)



MQTT::dup
       Get or set duplicate flag of MQTT PUBLISH message.

SYNOPSIS
       MQTT::dup ('0' | '1')?

DESCRIPTION
       This command can be used to get or set duplicate flag of MQTT message.
       This command is valid only for following MQTT message types:

	   PUBLISH

       Syntax

       MQTT::dup [ 0 | 1 ]

       MQTT::dup
	   * Get the duplicate flag of MQTT PUBLISH message.

       MQTT::dup 0
	   * reset the duplicate flag of MQTT PUBLISH message. This will
       convert the
	     message to as if it was the first occasion that client or server
       has
	     attempted to  send this MQTT PUBLISH message.

       MQTT::dup 1
	   * Set the duplicate flag of MQTT PUBLISH message. This will convert
       the message
	     to as if the message was a redelivery of an earlier attempt to
       send the message.

RETURN VALUE
       When called without an argument, this command returns the duplicate
       flag of MQTT message.

VALID DURING
       MQTT_CLIENT_INGRESS MQTT_SERVER_INGRESS MQTT_CLIENT_DATA
       MQTT_SERVER_DATA MQTT_CLIENT_EGRESS MQTT_SERVER_EGRESS

EXAMPLES
	#Downgrading QoS to 0:

	when MQTT_CLIENT_INGRESS {
	    set type [MQTT::type]
	    switch $type {
		"PUBLISH" {
		    set in_qos [MQTT::qos]
		    if { $in_qos > 0 } {
			set pktid [MQTT::packet_id]
		    }
		    MQTT::dup 0
		    MQTT::qos 0
		    if { $in_qos == 1 } {
			MQTT::respond type PUBACK packet_id $pktid
		    } elseif { $in_qos == 2 } {
			MQTT::respond type PUBREC packet_id $pktid
		    }
		}
		"PUBREL" {
		    set pktid [MQTT::packet_id]
		    MQTT::drop
		    MQTT::respond type PUBCOMP packet_id $pktid
		}
	    }
	}

HINTS
SEE ALSO
CHANGE LOG
       @BIGIP-13.0.0 --First introduced the command.



BIG-IP				  2018-07-19			      iRule(1)