| /****************************************************************************** |
| * Copyright (c) 2000-2018 Ericsson Telecom AB AB |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html |
| * |
| * Contributors: |
| * Mate Kovacs - initial implementation and initial documentation |
| ******************************************************************************/ |
| // |
| // File: Mqtt_v3.1.1_Types.ttcn |
| // Rev: R1A |
| // Prodnr: CNL 113 831 |
| |
| module MQTT_v3_1_1_Types |
| { |
| external function f_MQTT_v3_1_1_enc(in MQTT_v3_1_1_Message msg, out octetstring str) return integer; |
| external function f_MQTT_v3_1_1_dec(in octetstring str, out MQTT_v3_1_1_Message msg) return integer; |
| |
| type octetstring OCT0_65535 length(0..65535); |
| type universal charstring UCHAR0_65535 length(0..65535); |
| type bitstring BIT1n length(1); |
| type bitstring BIT4n length(4); |
| type integer INT0_255 (0..255); |
| |
| type enumerated QoS |
| { |
| AT_MOST_ONCE_DELIVERY(0), |
| AT_LEAST_ONCE_DELIVERY(1), |
| EXACTLY_ONE_DELIVERY(2), |
| RESERVED(3) |
| } |
| |
| type record Header |
| { |
| BIT4n flags |
| } |
| |
| type record MQTT_v3_1_1_PublishHeader |
| { |
| BIT1n dup_flag, |
| QoS qos_level, |
| BIT1n retain_flag |
| } |
| |
| type record MQTT_v3_1_1_ConnectFlags |
| { |
| BIT1n user_name_flag, |
| BIT1n password_flag, |
| BIT1n will_retain, |
| QoS will_qos, |
| BIT1n will_flag, |
| BIT1n clean_session |
| } |
| |
| type record MQTT_v3_1_1_ConnectPayload |
| { |
| UCHAR0_65535 client_identifier, |
| UCHAR0_65535 will_topic optional, |
| OCT0_65535 will_message optional, |
| UCHAR0_65535 user_name optional, |
| OCT0_65535 password optional |
| } |
| |
| type record MQTT_v3_1_1_Connect |
| { |
| Header header, |
| UCHAR0_65535 name, |
| integer protocol_level (0..255), |
| MQTT_v3_1_1_ConnectFlags flags, |
| integer keep_alive (0..65535), |
| MQTT_v3_1_1_ConnectPayload payload |
| } |
| |
| type record MQTT_v3_1_1_Connack |
| { |
| Header header, |
| BIT1n session_present_flag, |
| integer connect_return_code (0..255) |
| } |
| |
| type record MQTT_v3_1_1_Publish |
| { |
| MQTT_v3_1_1_PublishHeader header, |
| UCHAR0_65535 topic_name, |
| integer packet_identifier (0..65535) optional, |
| octetstring payload |
| } |
| |
| type record MQTT_v3_1_1_Identifier |
| { |
| Header header, |
| integer packet_identifier (0..65535) |
| } |
| |
| type record MQTT_v3_1_1_SubscribePayload |
| { |
| UCHAR0_65535 topic_filter, |
| QoS requested_qos |
| } |
| |
| type record of MQTT_v3_1_1_SubscribePayload MQTT_v3_1_1_SubscribePayloadList; |
| |
| type record MQTT_v3_1_1_Subscribe |
| { |
| Header header, |
| integer packet_identifier (0..65535), |
| MQTT_v3_1_1_SubscribePayloadList payload |
| } |
| |
| type record of INT0_255 IntegerList; |
| |
| type record MQTT_v3_1_1_SubackPayload |
| { |
| IntegerList return_code |
| } |
| |
| type record MQTT_v3_1_1_Suback |
| { |
| Header header, |
| integer packet_identifier (0..65535), |
| MQTT_v3_1_1_SubackPayload payload |
| } |
| |
| type record of UCHAR0_65535 UCHAR0_65535List; |
| |
| type record MQTT_v3_1_1_UnsubscribePayload |
| { |
| UCHAR0_65535List topic_filter |
| } |
| |
| type record MQTT_v3_1_1_Unsubscribe |
| { |
| Header header, |
| integer packet_identifier (0..65535), |
| MQTT_v3_1_1_UnsubscribePayload payload |
| } |
| |
| type record MQTT_v3_1_1_Empty |
| { |
| Header header |
| } |
| |
| type union MQTT_v3_1_1_ReqResp |
| { |
| MQTT_v3_1_1_Connect connect_msg, |
| MQTT_v3_1_1_Connack connack, |
| MQTT_v3_1_1_Publish publish, |
| MQTT_v3_1_1_Identifier puback, |
| MQTT_v3_1_1_Identifier pubrec, |
| MQTT_v3_1_1_Identifier pubrel, |
| MQTT_v3_1_1_Identifier pubcomp, |
| MQTT_v3_1_1_Subscribe subscribe, |
| MQTT_v3_1_1_Suback suback, |
| MQTT_v3_1_1_Unsubscribe unsubscribe, |
| MQTT_v3_1_1_Identifier unsuback, |
| MQTT_v3_1_1_Empty pingreq, |
| MQTT_v3_1_1_Empty pingresp, |
| MQTT_v3_1_1_Empty disconnect_msg |
| } |
| |
| type union MQTT_v3_1_1_Message |
| { |
| MQTT_v3_1_1_ReqResp msg, |
| octetstring raw_message |
| } |
| |
| } |