[
    { "common-ref" : "Operation Result",
      "name"       : "Result",
      "fullname"   : "Qmi Message Result",
      "id"         : "0x02",
      "mandatory"  : "yes",
      "type"       : "TLV",
      "format"     : "struct",
      "contents"   : [ { "name"   : "Error Status",
                         "format" : "guint16" },
                       { "name"   : "Error Code",
                         "format" : "guint16" } ] },

    { "common-ref" : "Success",
      "type"       : "prerequisite",
      "field"      : "Result.Error Status",
      "operation"  : "==",
      "value"      : "QMI_STATUS_SUCCESS" },

    { "common-ref" : "No Success",
      "type"       : "prerequisite",
      "field"      : "Result.Error Status",
      "operation"  : "!=",
      "value"      : "QMI_STATUS_SUCCESS" },

    // *********************************************************************************
    // WDS common TLVs

   { "common-ref"    : "WDS Extended Error Code",
     "name"          : "Extended Error Code",
     "id"            : "0xE0",
     "mandatory"     : "no",
     "type"          : "TLV",
     "format"        : "guint16",
     "public-format" : "QmiWdsDsProfileError",
     "prerequisites" : [ { "field"     : "Result.Error Status",
                           "operation" : "!=",
                           "value"     : "QMI_STATUS_SUCCESS" },
                         { "field"     : "Result.Error Code",
                           "operation" : "==",
                           "value"     : "QMI_PROTOCOL_ERROR_EXTENDED_INTERNAL" } ] },

   { "common-ref" : "WDS Profile Identifier",
     "name"       : "Profile Identifier",
     "id"         : "0x01",
     "mandatory"  : "yes",
     "type"       : "TLV",
     "format"     : "sequence",
     "contents"   : [ { "name"   : "Profile Type",
                        "format" : "guint8",
                        "public-format" : "QmiWdsProfileType" },
                      { "name"   : "Profile Index",
                        "format" : "guint8" } ] },

    { "common-ref" : "WDS Profile Name",
      "name"       : "Profile Name",
      "id"         : "0x10",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "string" },

    { "common-ref" : "WDS PDP Type",
      "name"       : "PDP Type",
      "id"         : "0x11",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "guint8",
      "public-format" : "QmiWdsPdpType" },

    { "common-ref" : "WDS PDP Header Compression Type",
      "name"       : "PDP Header Compression Type",
      "id"         : "0x12",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "guint8",
      "public-format" : "QmiWdsPdpHeaderCompressionType" },

    { "common-ref" : "WDS PDP Data Compression Type",
      "name"       : "PDP Data Compression Type",
      "id"         : "0x13",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "guint8",
      "public-format" : "QmiWdsPdpDataCompressionType" },

    { "common-ref" : "WDS APN Name",
      "name"       : "APN Name",
      "id"         : "0x14",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "string" },

    { "common-ref" : "WDS Primary IPv4 DNS Address",
      "name"       : "Primary IPv4 DNS Address",
      "id"         : "0x15",
      "mandatory"  : "no",
      "type"       : "TLV",
      "endian"     : "little",
      "format"     : "guint32" },

    { "common-ref" : "WDS Secondary IPv4 DNS Address",
      "name"       : "Secondary IPv4 DNS Address",
      "id"         : "0x16",
      "mandatory"  : "no",
      "type"       : "TLV",
      "endian"     : "little",
      "format"     : "guint32" },

    { "common-ref" : "WDS UMTS Requested QoS",
      "name"       : "UMTS Requested QoS",
      "id"         : "0x17",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"  : [ { "name"          : "Traffic Class",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsTrafficClass" },
                      { "name"   : "Max uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Max downlink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed downlink bitrate",
                        "format" : "guint32" },
                      { "name"          : "QoS Delivery Order",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsDeliveryOrder" },
                      { "name"   : "Maximum SDU Size",
                        "format" : "guint32" },
                      { "name"          : "SDU Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErrorRatio" },
                      { "name"          : "Residual Bit Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduResidualBitErrorRatio" },
                      { "name"          : "Delivery Erroneous SDU",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErroneousDelivery" },
                      { "name"   : "Transfer Delay",
                        "format" : "guint32" },
                      { "name"   : "Traffic Handling Priority",
                        "format" : "guint32" } ] },

    { "common-ref" : "WDS UMTS Minimum QoS",
      "name"       : "UMTS Minimum QoS",
      "id"         : "0x18",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"  : [ { "name"          : "Traffic Class",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsTrafficClass" },
                      { "name"   : "Max uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Max downlink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed downlink bitrate",
                        "format" : "guint32" },
                      { "name"          : "QoS Delivery Order",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsDeliveryOrder" },
                      { "name"   : "Maximum SDU Size",
                        "format" : "guint32" },
                      { "name"          : "SDU Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErrorRatio" },
                      { "name"          : "Residual Bit Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduResidualBitErrorRatio" },
                      { "name"          : "Delivery Erroneous SDU",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErroneousDelivery" },
                      { "name"   : "Transfer Delay",
                        "format" : "guint32" },
                      { "name"   : "Traffic Handling Priority",
                        "format" : "guint32" } ] },

    { "common-ref" : "WDS GPRS Requested QoS",
      "name"       : "GPRS Requested QoS",
      "id"         : "0x19",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"   : [ { "name"   : "Precedence Class",
                        "format" : "guint32" },
                      { "name"   : "Delay Class",
                        "format" : "guint32" },
                      { "name"   : "Reliability Class",
                        "format" : "guint32" },
                      { "name"   : "Peak Throughput Class",
                        "format" : "guint32" },
                      { "name"   : "Mean Throughput Class",
                        "format" : "guint32" } ] },

    { "common-ref" : "WDS GPRS Minimum QoS",
      "name"       : "GPRS Minimum QoS",
      "id"         : "0x1A",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"   : [ { "name"   : "Precedence Class",
                        "format" : "guint32" },
                      { "name"   : "Delay Class",
                        "format" : "guint32" },
                      { "name"   : "Reliability Class",
                        "format" : "guint32" },
                      { "name"   : "Peak Throughput Class",
                        "format" : "guint32" },
                      { "name"   : "Mean Throughput Class",
                        "format" : "guint32" } ] },

    { "common-ref" : "WDS Username",
      "name"       : "Username",
      "id"         : "0x1B",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "string" },

    { "common-ref" : "WDS Password",
      "name"       : "Password",
      "id"         : "0x1C",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "string" },

    { "common-ref" : "WDS Authentication",
      "name"       : "Authentication",
      "id"         : "0x1D",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "guint8",
      "public-format" : "QmiWdsAuthentication" },

    { "common-ref" : "WDS IPv4 Address Preference",
      "name"       : "IPv4 Address Preference",
      "id"         : "0x1E",
      "mandatory"  : "no",
      "type"       : "TLV",
      "endian"     : "little",
      "format"     : "guint32" },

    { "common-ref"    : "WDS PCSCF Address Using PCO",
      "name"          : "PCSCF Address Using PCO",
      "id"            : "0x1F",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8",
      "public-format" : "gboolean" },

    { "common-ref"    : "WDS PCSCF Address Using DHCP",
      "name"          : "PCSCF Address Using DHCP",
      "id"            : "0x21",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8",
      "public-format" : "gboolean" },

    { "common-ref"    : "WDS IMCN Flag",
      "name"          : "IMCN Flag",
      "id"            : "0x22",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8",
      "public-format" : "gboolean" },

    { "common-ref"    : "WDS PDP Context Number",
      "name"          : "PDP Context Number",
      "id"            : "0x25",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8" },

    { "common-ref"    : "WDS PDP Context Secondary Flag",
      "name"          : "PDP Context Secondary Flag",
      "id"            : "0x26",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8",
      "public-format" : "gboolean" },

    { "common-ref"    : "WDS PDP Context Primary ID",
      "name"          : "PDP Context Primary ID",
      "id"            : "0x27",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint8" },

    { "common-ref" : "WDS IPv6 Address Preference",
      "name"       : "IPv6 Address Preference",
      "id"         : "0x28",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"   : [ { "name"         : "Address",
                        "format"        : "array",
                        "fixed-size"    : "8",
                        "array-element" : { "format": "guint16", "endian": "network" } } ] },

    { "common-ref" : "WDS UMTS Requested QoS With Signaling Indication Flag",
      "name"       : "UMTS Requested QoS With Signaling Indication Flag",
      "id"         : "0x29",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"  : [ { "name"          : "Traffic Class",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsTrafficClass" },
                      { "name"   : "Max uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Max downlink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed downlink bitrate",
                        "format" : "guint32" },
                      { "name"          : "QoS Delivery Order",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsDeliveryOrder" },
                      { "name"   : "Maximum SDU Size",
                        "format" : "guint32" },
                      { "name"          : "SDU Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErrorRatio" },
                      { "name"          : "Residual Bit Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduResidualBitErrorRatio" },
                      { "name"          : "Delivery Erroneous SDU",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErroneousDelivery" },
                      { "name"   : "Transfer Delay",
                        "format" : "guint32" },
                      { "name"   : "Traffic Handling Priority",
                        "format" : "guint32" },
                      { "name"   : "Signaling Indication",
                        "format" : "gint8" } ] },

    { "common-ref" : "WDS UMTS Minimum QoS With Signaling Indication Flag",
      "name"       : "UMTS Minimum QoS With Signaling Indication Flag",
      "id"         : "0x2A",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"  : [ { "name"          : "Traffic Class",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsTrafficClass" },
                      { "name"   : "Max uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Max downlink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed uplink bitrate",
                        "format" : "guint32" },
                      { "name"   : "Guaranteed downlink bitrate",
                        "format" : "guint32" },
                      { "name"          : "QoS Delivery Order",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsDeliveryOrder" },
                      { "name"   : "Maximum SDU Size",
                        "format" : "guint32" },
                      { "name"          : "SDU Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErrorRatio" },
                      { "name"          : "Residual Bit Error Ratio",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduResidualBitErrorRatio" },
                      { "name"          : "Delivery Erroneous SDU",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsSduErroneousDelivery" },
                      { "name"   : "Transfer Delay",
                        "format" : "guint32" },
                      { "name"   : "Traffic Handling Priority",
                        "format" : "guint32" },
                      { "name"   : "Signaling Indication",
                        "format" : "gint8" } ] },

    { "common-ref"    : "WDS IPv6 Primary DNS Address Preference",
      "name"          : "IPv6 Primary DNS Address Preference",
      "id"            : "0x2B",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "array",
      "fixed-size"    : "8",
      "array-element" : { "format": "guint16", "endian": "network" } },

    { "common-ref"    : "WDS IPv6 Secondary DNS Address Preference",
      "name"          : "IPv6 Secondary DNS Address Preference",
      "id"            : "0x2C",
      "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "array",
      "fixed-size"    : "8",
      "array-element" : { "format": "guint16", "endian": "network" } },

    { "common-ref" : "WDS LTE QoS Parameters",
      "name"       : "LTE QoS Parameters",
      "id"         : "0x2E",
      "mandatory"  : "no",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"   : [ { "name"         : "QoS Class Identifier",
                        "format"        : "guint8",
                        "public-format" : "QmiWdsQosClassIdentifier" },
                      { "name"          : "Guaranteed Downlink Bitrate",
                        "format"        : "guint32" },
                      { "name"          : "Max Downlink Bitrate",
                        "format"        : "guint32" },
                      { "name"          : "Guaranteed Uplink Bitrate",
                        "format"        : "guint32" },
                      { "name"          : "Max Uplink Bitrate",
                        "format"        : "guint32" } ] },

    // *********************************************************************************
    // NAS common TLVs

   { "common-ref"         : "NAS Service Provider Name",
     "name"               : "Service Provider Name",
     "id"                 : "0x10",
     "mandatory"          : "no",
     "type"               : "TLV",
     "format"             : "sequence",
     "contents"           : [ { "name"          : "Name Display Condition",
                                "format"        : "guint8",
                                "public-format" : "QmiNasNetworkNameDisplayCondition" },
                              { "name"          : "Name",
                                "format"        : "string" } ] },

   { "common-ref"         : "NAS Operator PLMN List",
     "name"               : "Operator PLMN List",
     "id"                 : "0x11",
     "mandatory"          : "no",
     "type"               : "TLV",
     "format"             : "array",
     "size-prefix-format" : "guint16",
     "array-element"      : { "name" : "Element",
                              "format"   : "struct",
                              "contents" : [ { "name"       : "MCC",
                                               "format"     : "string",
                                               "fixed-size" : "3" },
                                             { "name"       : "MNC",
                                               "format"     : "string",
                                               "fixed-size" : "3" },
                                             { "name"       : "LAC1",
                                               "format"     : "guint16" },
                                             { "name"       : "LAC2",
                                               "format"     : "guint16" },
                                             { "name"       : "PLMN Name Record Identifier",
                                               "format"     : "guint8" } ] } },

   { "common-ref"         : "NAS Operator PLMN Name",
     "name"               : "Operator PLMN Name",
     "id"                 : "0x12",
     "mandatory"          : "no",
     "type"               : "TLV",
     "format"             : "array",
     "array-element"      : { "name" : "Element",
                              "format"   : "struct",
                              "contents" : [ { "name"          : "Name Encoding",
                                               "format"        : "guint8",
                                               "public-format" : "QmiNasPlmnEncodingScheme" },
                                             { "name"          : "Short Country Initials",
                                               "format"        : "guint8",
                                               "public-format" : "QmiNasPlmnNameCountryInitials" },
                                             { "name"          : "Long Name Spare Bits",
                                               "format"        : "guint8",
                                               "public-format" : "QmiNasPlmnNameSpareBits" },
                                             { "name"          : "Short Name Spare Bits",
                                               "format"        : "guint8",
                                               "public-format" : "QmiNasPlmnNameSpareBits" },
                                             { "name"          : "Long Name",
                                               "format"        : "array",
                                               "array-element" : { "format" : "guint8" } },
                                             { "name"          : "Short Name",
                                               "format"        : "array",
                                               "array-element" : { "format" : "guint8" } } ] } },

   { "common-ref"         : "NAS Operator String Name",
     "name"               : "Operator String Name",
     "id"                 : "0x13",
     "mandatory"          : "no",
     "type"               : "TLV",
     "format"             : "string" },

   { "common-ref"         : "NAS Operator NITZ Information",
     "name"               : "Operator NITZ Information",
     "id"                 : "0x14",
     "mandatory"          : "no",
     "type"               : "TLV",
     "format"             : "sequence",
     "contents"           : [ { "name"          : "Name Encoding",
                                "format"        : "guint8",
                                "public-format" : "QmiNasPlmnEncodingScheme" },
                              { "name"          : "Short Country Initials",
                                "format"        : "guint8",
                                "public-format" : "QmiNasPlmnNameCountryInitials" },
                              { "name"          : "Long Name Spare Bits",
                                "format"        : "guint8",
                                "public-format" : "QmiNasPlmnNameSpareBits" },
                              { "name"          : "Short Name Spare Bits",
                                "format"        : "guint8",
                                "public-format" : "QmiNasPlmnNameSpareBits" },
                              { "name"          : "Long Name",
                                "format"        : "string" },
                              { "name"          : "Short Name",
                                "format"        : "string" } ] }

]
