Publish QoS -1 has no protocol version indication

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major
    • None
    • Affects Version/s: MQTT-SN-1.2
    • Component/s: MQTT-SN
    • None
    • Hide

      Add a new message type which will be used for PUBLISH -1 messages and will include a protocol field.

      Show
      Add a new message type which will be used for PUBLISH -1 messages and will include a protocol field.
    • Hide

      See WD 25

      Show
      See WD 25

      From Simon Johnson:

      I have been working with PUBLISH -1 in v2. I have found a flaw with the new packet type layouts. Presently you can PUBLISH -1 without a session, and it is the SESSION that determines the protocol version you have decided to use. Without a session, the GATEWAY has no mechanism to determine the version of the PUBLISH packet to use to decode it. So to maintain the ability for a GW to support both protocol versions, we must have a mechanism in the PUBLISH packet to note protocol version WITHOUT adding any further bytes.

      I was looking, the packet type field seems to be a great chance to squeeze some more space out of - in a similar fashion to tt5, so we coolocate a generic flags field in bits 1 & 0, using 6 bits of space (7-2) for packet type (64 available types - we currently use ~30) so plenty of growing room - then the 2 new flags can be used for flags on the message without needing a new flags field. In the case of PUBLISH this can be protocol version, but also it could be used for a few other types specifying and using only 1 or 2 flags saving space elsewhere. I feel this is a fundamental enough issue to warrant this change - and give us further flexibility for saving space elsewhere.

            Assignee:
            thesii
            Reporter:
            ian.craggs
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: