[PATCH v2] qmi-codegen: TLVs < 0x10 are mandatory by default

Thomas Weißschuh thomas at t-8ch.de
Sat Feb 24 11:31:36 UTC 2018


The fallback logic of specifying an explicit value has been retained
because the following fields:

CTL Set Data Format: Protocol id=0x10 mandatory=True
NAS Attach Detach: Action id=0x10 mandatory=True
DMS Set Time: Time Reference Type id=0x10 mandatory=True
WDS Get Current Settings: Requested Settings id=0x10 mandatory=True
PDC Register: Enable Reporting id=0x10 mandatory=True
PDC List Configs: Config Type id=0x11 mandatory=True
PDC Delete Config: Id id=0x11 mandatory=True

This was also true for the following, but changed because testing
revealed that they should be indeed mandatory:

LOC Start: Session ID id=0x01 mandatory=False
LOC Stop: Session ID id=0x01 mandatory=False
LOC Start: Session ID id=0x01 mandatory=False
LOC Stop: Session ID id=0x01 mandatory=False

Also the old code did not regard any TLVs as mandatory, as
Field.mandatory was a boolean but was compared to the string "yes",
breaking the logic.
---
 build-aux/qmi-codegen/Field.py   |  11 +-
 build-aux/qmi-codegen/Message.py |   4 +-
 data/qmi-common.json             |  35 ------
 data/qmi-service-ctl.json        |  12 +-
 data/qmi-service-dms.json        | 106 ------------------
 data/qmi-service-loc.json        |   4 -
 data/qmi-service-nas.json        | 236 ---------------------------------------
 data/qmi-service-oma.json        |  18 ---
 data/qmi-service-pbm.json        |  19 ----
 data/qmi-service-pdc.json        |  19 ----
 data/qmi-service-pds.json        |  36 ------
 data/qmi-service-uim.json        |  51 ---------
 data/qmi-service-voice.json      |  26 -----
 data/qmi-service-wda.json        |  23 ----
 data/qmi-service-wds.json        | 119 --------------------
 data/qmi-service-wms.json        |  48 --------
 16 files changed, 12 insertions(+), 755 deletions(-)

diff --git a/build-aux/qmi-codegen/Field.py b/build-aux/qmi-codegen/Field.py
index 631890f..fde9ed4 100644
--- a/build-aux/qmi-codegen/Field.py
+++ b/build-aux/qmi-codegen/Field.py
@@ -41,8 +41,8 @@ class Field:
         self.name = dictionary['name']
         # The specific TLV ID
         self.id = dictionary['id']
-        # Whether the field is to be considered mandatory in the message
-        self.mandatory = True if dictionary['mandatory'] == 'yes' else False
+        # Overridden mandatory field, the default is calculated from id
+        self._mandatory = dictionary.get('mandatory')
         # The type, which must always be "TLV"
         self.type = dictionary['type']
         # The container type, which must be either "Input" or "Output"
@@ -87,6 +87,13 @@ class Field:
                         raise RuntimeError('Common type \'%s\' not found' % prerequisite_dictionary['name'])
 
 
+    @property
+    def mandatory(self):
+        if self._mandatory is None:
+            return int(self.id, 0) < 0x10
+        return self._mandatory == 'yes'
+
+
     """
     Emit new types required by this field
     """
diff --git a/build-aux/qmi-codegen/Message.py b/build-aux/qmi-codegen/Message.py
index 0bf62f1..518f085 100644
--- a/build-aux/qmi-codegen/Message.py
+++ b/build-aux/qmi-codegen/Message.py
@@ -125,7 +125,7 @@ class Message:
             # Count how many mandatory fields we have
             n_mandatory = 0
             for field in self.input.fields:
-                if field.mandatory == 'yes':
+                if field.mandatory:
                     n_mandatory += 1
 
             if n_mandatory == 0:
@@ -164,7 +164,7 @@ class Message:
                 # Emit the TLV getter
                 field.emit_input_tlv_add(cfile, '        ')
 
-                if field.mandatory == 'yes':
+                if field.mandatory:
                     template = (
                         '    } else {\n'
                         '        g_set_error (error,\n'
diff --git a/data/qmi-common.json b/data/qmi-common.json
index 7b81360..3826e50 100644
--- a/data/qmi-common.json
+++ b/data/qmi-common.json
@@ -3,7 +3,6 @@
       "name"       : "Result",
       "fullname"   : "Qmi Message Result",
       "id"         : "0x02",
-      "mandatory"  : "yes",
       "type"       : "TLV",
       "format"     : "struct",
       "contents"   : [ { "name"   : "Error Status",
@@ -29,7 +28,6 @@
    { "common-ref"    : "WDS Extended Error Code",
      "name"          : "Extended Error Code",
      "id"            : "0xE0",
-     "mandatory"     : "no",
      "type"          : "TLV",
      "format"        : "guint16",
      "public-format" : "QmiWdsDsProfileError",
@@ -43,7 +41,6 @@
    { "common-ref" : "WDS Profile Identifier",
      "name"       : "Profile Identifier",
      "id"         : "0x01",
-     "mandatory"  : "yes",
      "type"       : "TLV",
      "format"     : "sequence",
      "contents"   : [ { "name"   : "Profile Type",
@@ -55,14 +52,12 @@
     { "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" },
@@ -70,7 +65,6 @@
     { "common-ref" : "WDS PDP Header Compression Type",
       "name"       : "PDP Header Compression Type",
       "id"         : "0x12",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "guint8",
       "public-format" : "QmiWdsPdpHeaderCompressionType" },
@@ -78,7 +72,6 @@
     { "common-ref" : "WDS PDP Data Compression Type",
       "name"       : "PDP Data Compression Type",
       "id"         : "0x13",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "guint8",
       "public-format" : "QmiWdsPdpDataCompressionType" },
@@ -86,14 +79,12 @@
     { "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" },
@@ -101,7 +92,6 @@
     { "common-ref" : "WDS Secondary IPv4 DNS Address",
       "name"       : "Secondary IPv4 DNS Address",
       "id"         : "0x16",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "endian"     : "little",
       "format"     : "guint32" },
@@ -109,7 +99,6 @@
     { "common-ref" : "WDS UMTS Requested QoS",
       "name"       : "UMTS Requested QoS",
       "id"         : "0x17",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "sequence",
       "contents"  : [ { "name"          : "Traffic Class",
@@ -145,7 +134,6 @@
     { "common-ref" : "WDS UMTS Minimum QoS",
       "name"       : "UMTS Minimum QoS",
       "id"         : "0x18",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "sequence",
       "contents"  : [ { "name"          : "Traffic Class",
@@ -181,7 +169,6 @@
     { "common-ref" : "WDS GPRS Requested QoS",
       "name"       : "GPRS Requested QoS",
       "id"         : "0x19",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "sequence",
       "contents"   : [ { "name"   : "Precedence Class",
@@ -198,7 +185,6 @@
     { "common-ref" : "WDS GPRS Minimum QoS",
       "name"       : "GPRS Minimum QoS",
       "id"         : "0x1A",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "sequence",
       "contents"   : [ { "name"   : "Precedence Class",
@@ -215,21 +201,18 @@
     { "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" },
@@ -237,7 +220,6 @@
     { "common-ref" : "WDS IPv4 Address Preference",
       "name"       : "IPv4 Address Preference",
       "id"         : "0x1E",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "endian"     : "little",
       "format"     : "guint32" },
@@ -245,7 +227,6 @@
     { "common-ref"    : "WDS PCSCF Address Using PCO",
       "name"          : "PCSCF Address Using PCO",
       "id"            : "0x1F",
-      "mandatory"     : "no",
       "type"          : "TLV",
       "format"        : "guint8",
       "public-format" : "gboolean" },
@@ -253,7 +234,6 @@
     { "common-ref"    : "WDS PCSCF Address Using DHCP",
       "name"          : "PCSCF Address Using DHCP",
       "id"            : "0x21",
-      "mandatory"     : "no",
       "type"          : "TLV",
       "format"        : "guint8",
       "public-format" : "gboolean" },
@@ -261,7 +241,6 @@
     { "common-ref"    : "WDS IMCN Flag",
       "name"          : "IMCN Flag",
       "id"            : "0x22",
-      "mandatory"     : "no",
       "type"          : "TLV",
       "format"        : "guint8",
       "public-format" : "gboolean" },
@@ -269,14 +248,12 @@
     { "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" },
@@ -284,14 +261,12 @@
     { "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",
@@ -302,7 +277,6 @@
     { "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",
@@ -340,7 +314,6 @@
     { "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",
@@ -378,7 +351,6 @@
     { "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",
@@ -387,7 +359,6 @@
     { "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",
@@ -396,7 +367,6 @@
     { "common-ref" : "WDS LTE QoS Parameters",
       "name"       : "LTE QoS Parameters",
       "id"         : "0x2E",
-      "mandatory"  : "no",
       "type"       : "TLV",
       "format"     : "sequence",
       "contents"   : [ { "name"         : "QoS Class Identifier",
@@ -417,7 +387,6 @@
    { "common-ref"         : "NAS Service Provider Name",
      "name"               : "Service Provider Name",
      "id"                 : "0x10",
-     "mandatory"          : "no",
      "type"               : "TLV",
      "format"             : "sequence",
      "contents"           : [ { "name"          : "Name Display Condition",
@@ -429,7 +398,6 @@
    { "common-ref"         : "NAS Operator PLMN List",
      "name"               : "Operator PLMN List",
      "id"                 : "0x11",
-     "mandatory"          : "no",
      "type"               : "TLV",
      "format"             : "array",
      "size-prefix-format" : "guint16",
@@ -451,7 +419,6 @@
    { "common-ref"         : "NAS Operator PLMN Name",
      "name"               : "Operator PLMN Name",
      "id"                 : "0x12",
-     "mandatory"          : "no",
      "type"               : "TLV",
      "format"             : "array",
      "array-element"      : { "name" : "Element",
@@ -478,14 +445,12 @@
    { "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",
diff --git a/data/qmi-service-ctl.json b/data/qmi-service-ctl.json
index aacd4d1..16defc9 100644
--- a/data/qmi-service-ctl.json
+++ b/data/qmi-service-ctl.json
@@ -25,14 +25,12 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" } ],
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Link ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16",
@@ -47,7 +45,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Service list",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "array",
@@ -70,7 +67,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Service",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8" ,
@@ -78,7 +74,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Allocation Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -97,7 +92,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Release Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -109,7 +103,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Release Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -128,14 +121,12 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Format",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiCtlDataFormat" },
                     { "name"          : "Protocol",
                       "id"            : "0x10",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
@@ -143,7 +134,7 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Protocol",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
+                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
@@ -173,7 +164,6 @@
      "since"   : "1.8",
      "input"   : [ { "name"      : "Device Path",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.8",
                      "format"    : "string" } ],
diff --git a/data/qmi-service-dms.json b/data/qmi-service-dms.json
index 32ae890..118d60b 100644
--- a/data/qmi-service-dms.json
+++ b/data/qmi-service-dms.json
@@ -35,14 +35,12 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Power State Reporting",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "Battery Level Report Limits",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -52,42 +50,36 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "PIN State Reporting",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Activation State Reporting",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Operating Mode Reporting",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "UIM State Reporting",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Wireless Disable State Reporting",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "PRL Init Reporting",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -101,7 +93,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "Power State",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -111,7 +102,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "PIN1 Status",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -124,7 +114,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "PIN2 Status",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -137,35 +126,30 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "Activation State",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiDmsActivationState" },
                     { "name"          : "Operating Mode",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiDmsOperatingMode" },
                     { "name"          : "UIM State",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiDmsUimState" },
                     { "name"          : "Wireless Disable State",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "PRL Init Notification",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -181,7 +165,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -211,7 +194,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Manufacturer",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -227,7 +209,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Model",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -243,7 +224,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Revision",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -259,7 +239,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "MSISDN",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -275,14 +254,12 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Esn",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Imei",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -290,7 +267,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Meid",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -306,7 +282,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -325,7 +300,6 @@
      "since"   : "1.0",
      "input"   : [  { "name" : "Info",
                       "id"   : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -340,7 +314,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Pin Retries Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -359,7 +332,6 @@
      "since"   : "1.0",
      "input"   : [  { "name" : "Info",
                       "id"   : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -371,7 +343,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Pin Retries Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -390,7 +361,6 @@
      "since"   : "1.0",
      "input"   : [  { "name" : "Info",
                       "id"   : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -404,7 +374,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Pin Retries Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -423,7 +392,6 @@
      "since"   : "1.0",
      "input"   : [  { "name" : "Info",
                       "id"   : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -437,7 +405,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Pin Retries Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -457,7 +424,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "PIN1 Status",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -470,7 +436,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "PIN2 Status",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -492,7 +457,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Revision",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -508,7 +472,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Mode",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
@@ -516,7 +479,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Offline Reason",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16",
@@ -526,7 +488,6 @@
                                            "value" : "QMI_DMS_OPERATING_MODE_OFFLINE" } ] },
                     { "name"      : "Hardware Restricted Mode",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
@@ -542,7 +503,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Mode",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
@@ -559,7 +519,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Device Time",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -572,14 +531,12 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "System Time",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint64",
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "User Time",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint64",
@@ -595,14 +552,12 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Version",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16",
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"          : "PRL Only Preference",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -619,7 +574,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Info",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
@@ -635,7 +589,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"               : "Activation Code",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "string",
@@ -651,7 +604,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       // API updated in 1.6
                       "since"     : "1.6",
@@ -669,7 +621,6 @@
                                         "max-size" : "15" } ] },
                     { "name"               : "MN HA key",
                       "id"                 : "0x11",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "string",
@@ -677,7 +628,6 @@
                       "size-prefix-format" : "guint8" },
                     { "name"               : "MN AAA key",
                       "id"                 : "0x12",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "string",
@@ -685,7 +635,6 @@
                       "size-prefix-format" : "guint8" },
                     { "name"      : "PRL",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.6",
                       "format"    : "sequence",
@@ -708,7 +657,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Enabled",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -724,7 +672,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -745,7 +692,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -767,7 +713,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"               : "User Data",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -784,7 +729,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"               : "User Data",
                      "id"                 : "0x01",
-                     "mandatory"          : "yes",
                      "type"               : "TLV",
                      "since"              : "1.0",
                      "format"             : "array",
@@ -802,7 +746,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"               : "ERI File",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -819,7 +762,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Service Programming Code",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "string",
@@ -835,7 +777,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Service Programming Code",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "string",
@@ -852,7 +793,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "ICCID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -876,7 +816,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Facility",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -884,7 +823,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "CK Status",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -898,7 +836,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Operation Blocking Facility",
                       "id"        : "0x10",
-                      "mandatory" : "false",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
@@ -914,7 +851,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Facility",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -929,7 +865,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Verify Retries Left",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" } ] },
@@ -943,7 +878,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Facility",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -955,7 +889,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Unblock Retries Left",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" } ] },
@@ -970,7 +903,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "IMSI",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string",
@@ -986,7 +918,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "State",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -1003,7 +934,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Band Capability",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
@@ -1011,7 +941,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"          : "LTE Band Capability",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
@@ -1019,7 +948,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"          		: "Extended LTE Band Capability",
                       "id"            		: "0x12",
-                      "mandatory"     		: "no",
                       "type"          		: "TLV",
                       "since"         		: "1.20",
                       "format"        		: "array",
@@ -1037,7 +965,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"         : "SKU",
                       "id"           : "0x01",
-                      "mandatory"    : "yes",
                       "type"         : "TLV",
                       "since"         : "1.0",
                       "format"       : "string",
@@ -1053,7 +980,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "List",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"        : "1.0",
                      "format"        : "array",
@@ -1079,7 +1005,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"          : "List",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "array",
@@ -1096,21 +1021,18 @@
                                                           "format" : "string" } ] } },
                    { "name"          : "Download Override",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Modem Storage Index",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Image Download List",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "array",
@@ -1129,7 +1051,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "List",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "array",
@@ -1167,7 +1088,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Image",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "struct",
@@ -1191,7 +1111,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Time Value",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint64" },
@@ -1213,7 +1132,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Image",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "struct",
@@ -1229,7 +1147,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"         : "Boot Version",
                      "id"           : "0x10",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.0",
                      "format"       : "sequence",
@@ -1240,7 +1157,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"         : "PRI Version",
                      "id"           : "0x11",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.0",
                      "format"       : "sequence",
@@ -1252,7 +1168,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"         : "OEM Lock ID",
                      "id"           : "0x12",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.0",
                      "format"       : "guint32",
@@ -1268,7 +1183,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Config",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -1284,7 +1198,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Config",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -1301,7 +1214,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Mode",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint8",
@@ -1317,7 +1229,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"          : "Mode",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint8",
@@ -1334,7 +1245,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Version",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "string",
@@ -1349,14 +1259,12 @@
      "since"   : "1.0",
      "input"   : [  { "name"       : "Current Code",
                       "id"         : "0x01",
-                      "mandatory"  : "yes",
                       "type"       : "TLV",
                       "since"      : "1.0",
                       "format"     : "string",
                       "fixed-size" : "6" },
                     { "name"       : "New Code",
                       "id"         : "0x02",
-                      "mandatory"  : "yes",
                       "type"       : "TLV",
                       "since"      : "1.0",
                       "format"     : "string",
@@ -1373,7 +1281,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -1391,7 +1298,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"          : "Mode",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint8",
@@ -1409,63 +1315,54 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Model",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Boot version",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "AMSS version",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "SKU ID",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Package ID",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Carrier ID",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "PRI version",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Carrier",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Config version",
                      "id"            : "0x18",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string",
@@ -1481,7 +1378,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Current",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.20",
                      "format"        : "guint8",
@@ -1489,7 +1385,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Supported",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.20",
                      "format"        : "array",
@@ -1506,7 +1401,6 @@
      "since"   : "1.20",
      "input"   : [ { "name"          : "Current",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.20",
                      "format"        : "guint8",
diff --git a/data/qmi-service-loc.json b/data/qmi-service-loc.json
index 235e82f..e7c6579 100644
--- a/data/qmi-service-loc.json
+++ b/data/qmi-service-loc.json
@@ -26,13 +26,11 @@
      "since"   : "1.20",
      "input"   : [ { "name"          : "Session ID",
                      "id"            : "0x01",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.20",
                      "format"        : "guint8" },
                    { "name"          : "Intermediate Report State",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint32",
@@ -48,7 +46,6 @@
      "since"   : "1.20",
      "input"   : [ { "name"          : "Session ID",
                      "id"            : "0x01",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.20",
                      "format"        : "guint8" } ],
@@ -64,7 +61,6 @@
      "version" : "1.20",
      "output"  : [ { "name"      : "Session ID",
                      "id"        : "0x02",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "guint8" } ] }
diff --git a/data/qmi-service-nas.json b/data/qmi-service-nas.json
index bc50865..5769429 100644
--- a/data/qmi-service-nas.json
+++ b/data/qmi-service-nas.json
@@ -36,7 +36,6 @@
      "scope"   : "library-only",
      "input"   : [  { "name"      : "Transaction ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" } ],
@@ -51,7 +50,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Signal Strength Indicator",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -63,21 +61,18 @@
                                         "array-element" : { "format" : "gint8" } } ] },
                     { "name"          : "RF Band Information",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Registration Reject Reason",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "RSSI Indicator",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -88,7 +83,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "ECIO Indicator",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -99,7 +93,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "IO Indicator",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -110,7 +103,6 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "SINR Indicator",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -121,14 +113,12 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "Error Rate Indicator",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "ECIO Threshold",
                       "id"        : "0x19",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -140,7 +130,6 @@
                                         "array-element" : { "format" : "gint16" } } ] },
                     { "name"      : "SINR Threshold",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -152,7 +141,6 @@
                                         "array-element" : { "format" : "guint8" } } ] },
                     { "name"      : "LTE SNR Delta",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -163,7 +151,6 @@
                                         "format"        : "guint8" } ] },
                     { "name"      : "LTE RSRP Delta",
                       "id"        : "0x1C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -181,7 +168,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "Signal Strength",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -192,7 +178,6 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"               : "RF Band Information",
                       "id"                 : "0x11",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -208,7 +193,6 @@
                                                                 "format"        : "guint16" } ] } },
                     { "name"      : "Registration Reject Reason",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -219,7 +203,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "RSSI",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -230,7 +213,6 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"      : "ECIO",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       // API changed in 1.14
                       "since"     : "1.14",
@@ -242,20 +224,17 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"      : "IO",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint32" },
                     { "name"          : "SINR",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasEvdoSinrLevel" },
                     { "name"      : "Error Rate",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -266,7 +245,6 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"      : "RSRQ",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -277,13 +255,11 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"      : "LTE SNR",
                       "id"        : "0x19",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint16" },
                     { "name"      : "LTE RSRP",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint16" } ] },
@@ -297,105 +273,90 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "System Selection Preference",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "DDTM Events",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Serving System Events",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Dual Standby Preference",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Subscription Info",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Network Time",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "System Info",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Signal Info",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Error Rate",
                       "id"            : "0x1A",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "HDR New UATI Assigned",
                       "id"            : "0x1B",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "HDR Session Closed",
                       "id"            : "0x1C",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Managed Roaming",
                       "id"            : "0x1D",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Current PLMN Name",
                       "id"            : "0x1E",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "eMBMS Status",
                       "id"            : "0x1F",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "RF Band Information",
                       "id"            : "0x20",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -412,7 +373,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.0",
                      "format"             : "array",
@@ -429,7 +389,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Request Mask",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
@@ -437,7 +396,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Signal Strength",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -449,7 +407,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"               : "Strength List",
                       "id"                 : "0x10",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -463,7 +420,6 @@
                                                                 "public-format" : "QmiNasRadioInterface" } ] } },
                     { "name"               : "RSSI List",
                       "id"                 : "0x11",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -477,7 +433,6 @@
                                                                 "public-format" : "QmiNasRadioInterface" } ] } },
                     { "name"               : "ECIO List",
                       "id"                 : "0x12",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -491,20 +446,17 @@
                                                                 "public-format" : "QmiNasRadioInterface" } ] } },
                     { "name"      : "IO",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint32" },
                     { "name"          : "SINR",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasEvdoSinrLevel" },
                     { "name"               : "Error Rate List",
                       "id"                 : "0x15",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -518,7 +470,6 @@
                                                                 "public-format" : "QmiNasRadioInterface" } ] } },
                     { "name"      : "RSRQ",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -529,13 +480,11 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"      : "LTE SNR",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint16" },
                     { "name"      : "LTE RSRP",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint16" } ] },
@@ -551,7 +500,6 @@
      "abort"   : "yes",
      "input"   : [  { "name"          : "Network Type",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -559,7 +507,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"               : "Network Information",
                       "id"                 : "0x10",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -577,7 +524,6 @@
                                                                 "format" : "string" } ] } },
                     { "name"               : "Radio Access Technology",
                       "id"                 : "0x11",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -593,7 +539,6 @@
                                                                 "public-format" : "QmiNasRadioInterface" } ] } },
                     { "name"               : "MNC PCS Digit Include Status",
                       "id"                 : "0x12",
-                      "mandatory"          : "no",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -617,14 +562,12 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Action",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkRegisterType" },
                     { "name"      : "Manual Registration Info 3GPP",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -637,14 +580,12 @@
                                         "public-format" : "QmiNasRadioInterface" } ] },
                     { "name"          : "Change Duration",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasChangeDuration" },
                     { "name"          : "MNC PCS Digit Include Status",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -677,7 +618,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Serving System",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -700,14 +640,12 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"          : "Roaming Indicator",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasRoamingIndicatorStatus" },
                     { "name"          : "Data Service Capability",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
@@ -715,7 +653,6 @@
                                           "public-format" : "QmiNasDataCapability" } },
                     { "name"      : "Current PLMN",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -727,7 +664,6 @@
                                         "format" : "string" } ] },
                     { "name"      : "CDMA System ID",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -737,7 +673,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "CDMA Base Station Info",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -749,7 +684,6 @@
                                         "format" : "gint32" } ] },
                     { "name"      : "Roaming Indicator List",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"        : "array",
@@ -763,14 +697,12 @@
                                                            "public-format" : "QmiNasRoamingIndicatorStatus" } ] } },
                     { "name"          : "Default Roaming Indicator",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasRoamingIndicatorStatus" },
                     { "name"      : "Time Zone 3GPP2",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -783,58 +715,49 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA P Rev",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"      : "Time Zone 3GPP",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" },
                     { "name"      : "Daylight Saving Time Adjustment 3GPP",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"      : "LAC 3GPP",
                       "id"        : "0x1C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "CID 3GPP",
                       "id"        : "0x1D",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"          : "Concurrent Service Info 3GPP2",
                       "id"            : "0x1E",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"          : "PRL Indicator 3GPP2",
                       "id"            : "0x1F",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"          : "DTM Support",
                       "id"            : "0x20",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"      : "Detailed Service Status",
                       "id"        : "0x21",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -855,7 +778,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA System Info",
                       "id"        : "0x22",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -865,20 +787,17 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "HDR Personality",
                       "id"            : "0x23",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasHdrPersonality"},
                     { "name"      : "LTE TAC",
                       "id"        : "0x24",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "Call Barring Status",
                       "id"        : "0x25",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -890,13 +809,11 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"      : "UMTS Primary Scrambling Code",
                       "id"        : "0x26",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "MNC PCS Digit Include Status",
                       "id"        : "0x27",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -916,7 +833,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "Serving System",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -938,14 +854,12 @@
                                                             "public-format" : "QmiNasRadioInterface" } } ] },
                     { "name"          : "Roaming Indicator",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasRoamingIndicatorStatus" },
                     { "name"          : "Data Service Capability",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
@@ -953,7 +867,6 @@
                                           "public-format" : "QmiNasDataCapability" } },
                     { "name"      : "Current PLMN",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"      : "1.0",
                       "format"    : "sequence",
@@ -965,7 +878,6 @@
                                         "format" : "string" } ] },
                     { "name"      : "CDMA System ID",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -975,7 +887,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "CDMA Base Station Info",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -987,7 +898,6 @@
                                         "format" : "gint32" } ] },
                     { "name"      : "Roaming Indicator List",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"        : "array",
@@ -1001,14 +911,12 @@
                                                            "public-format" : "QmiNasRoamingIndicatorStatus" } ] } },
                     { "name"          : "Default Roaming Indicator",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasRoamingIndicatorStatus" },
                     { "name"      : "Time Zone 3GPP2",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1021,32 +929,27 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA P Rev",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"          : "PLMN Name Flag 3GPP",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "gint8",
                       "public-format" : "gboolean" },
                     { "name"      : "Time Zone 3GPP",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" },
                     { "name"      : "Daylight Saving Time Adjustment 3GPP",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"      : "Universal Time and Local Time Zone 3GPP",
                       "id"        : "0x1C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1066,40 +969,34 @@
                                         "format" : "guint8" } ] },
                     { "name"      : "LAC 3GPP",
                       "id"        : "0x1D",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "CID 3GPP",
                       "id"        : "0x1E",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"          : "Concurrent Service Info 3GPP2",
                       "id"            : "0x1F",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"          : "PRL Indicator 3GPP2",
                       "id"            : "0x20",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"          : "DTM Support",
                       "id"            : "0x21",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean"},
                     { "name"      : "Detailed Service Status",
                       "id"        : "0x22",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1120,7 +1017,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA System Info",
                       "id"        : "0x23",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1130,20 +1026,17 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "HDR Personality",
                       "id"            : "0x24",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasHdrPersonality"},
                     { "name"      : "LTE TAC",
                       "id"        : "0x25",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "Call Barring Status",
                       "id"        : "0x26",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1155,20 +1048,17 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"          : "PLMN Not Changed Indication",
                       "id"            : "0x27",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "UMTS Primary Scrambling Code",
                       "id"        : "0x28",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" },
                     { "name"      : "MNC PCS Digit Include Status",
                       "id"        : "0x29",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1190,7 +1080,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Home Network",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1203,7 +1092,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Home System ID",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1213,7 +1101,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "Home Network 3GPP2",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1231,7 +1118,6 @@
                                         "format" : "string" } ] },
                     { "name"      : "Home Network 3GPP MNC",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1251,7 +1137,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Current",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1273,7 +1158,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Active",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1286,7 +1170,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Persistent",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16",
@@ -1302,7 +1185,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "List",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
@@ -1326,49 +1208,42 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Emergency mode",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Mode Preference",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasRatModePreference" },
                     { "name"          : "Band Preference",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasBandPreference" },
                     { "name"          : "CDMA PRL Preference",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasCdmaPrlPreference" },
                     { "name"          : "Roaming Preference",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasRoamingPreference" },
                     { "name"          : "LTE Band Preference",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasLteBandPreference" },
                     { "name"      : "Network Selection Preference",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1381,42 +1256,36 @@
                                         "format" : "guint16" } ] },
                     { "name"          : "Change Duration",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasChangeDuration" },
                     { "name"          : "Service Domain Preference",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
                       "public-format" : "QmiNasServiceDomainPreference" },
                     { "name"          : "GSM WCDMA Acquisition Order Preference",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
                       "public-format" : "QmiNasGsmWcdmaAcquisitionOrderPreference" },
                     { "name"          : "MNC PDS Digit Include Status",
                       "id"            : "0x1A",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "TD SCDMA Band Preference",
                       "id"            : "0x1D",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasTdScdmaBandPreference" },
                     { "name"          : "Extended LTE Band Preference",
                       "id"            : "0x24",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.20",
                       "format"        : "sequence",
@@ -1440,77 +1309,66 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Emergency mode",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Mode Preference",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasRatModePreference" },
                     { "name"          : "Band Preference",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasBandPreference" },
                     { "name"          : "CDMA PRL Preference",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasCdmaPrlPreference" },
                     { "name"          : "Roaming Preference",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiNasRoamingPreference" },
                     { "name"          : "LTE Band Preference",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasLteBandPreference" },
                     { "name"          : "Network Selection Preference",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkSelectionPreference" },
                     { "name"          : "Service Domain Preference",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
                       "public-format" : "QmiNasServiceDomainPreference" },
                     { "name"          : "GSM WCDMA Acquisition Order Preference",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
                       "public-format" : "QmiNasGsmWcdmaAcquisitionOrderPreference" },
                     { "name"          : "TD SCDMA Band Preference",
                       "id"            : "0x1A",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint64",
                       "public-format" : "QmiNasTdScdmaBandPreference" },
                     { "name"      : "Manual Network Selection",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1523,7 +1381,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"          : "Extended LTE Band Preference",
                       "id"            : "0x23",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.20",
                       "format"        : "sequence",
@@ -1587,7 +1444,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "GERAN Info",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1625,7 +1481,6 @@
                                                                              "format" : "guint16" } ] } } ] },
                     { "name"      : "UMTS Info",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1670,7 +1525,6 @@
                                                                              "format" : "gint16" } ] } } ] },
                     { "name"      : "CDMA Info",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1688,7 +1542,6 @@
                                         "format" : "guint32" } ] },
                     { "name"      : "Intrafrequency LTE Info",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1730,7 +1583,6 @@
                                                                              "format" : "gint16" } ] } } ] },
                     { "name"      : "Interfrequency LTE Info",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1765,7 +1617,6 @@
                                                                                                                   "format" : "gint16" } ] } } ] } } ] },
                     { "name"      : "LTE Info Neighboring GSM",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1804,7 +1655,6 @@
                                                                                                                   "format" : "gint16" } ] } } ] } } ] },
                     { "name"      : "LTE Info Neighboring WCDMA",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1837,13 +1687,11 @@
                                                                                                                   "format" : "gint16" } ] } } ] } } ] },
                     { "name"      : "UMTS Cell ID",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "guint32" },
                     { "name"      : "UMTS Info Neighboring LTE",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.10",
                       "format"    : "sequence",
@@ -1877,7 +1725,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "Universal Time",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.4",
                       "format"    : "sequence",
@@ -1898,20 +1745,17 @@
                                         "public-format" : "QmiNasDayOfWeek" } ] },
                     { "name"      : "Timezone Offset",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.4",
                       "format"    : "gint8" },
                     { "name"      : "Daylight Savings Adjustment",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.4",
                       "format"    : "guint8",
                       "public-format" : "QmiNasDaylightSavingsAdjustment" },
                     { "name"      : "Radio Interface",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.4",
                       "format"    : "gint8",
@@ -1927,7 +1771,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "CDMA Service Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1939,7 +1782,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "HDR Service Status",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1951,7 +1793,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "GSM Service Status",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1966,7 +1807,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "WCDMA Service Status",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1981,7 +1821,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "LTE Service Status",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1996,7 +1835,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA System Info",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2078,7 +1916,6 @@
                                         "fixed-size" : "3" } ] },
                     { "name"      : "HDR System Info",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2132,7 +1969,6 @@
                                         "fixed-size" : "16" } ] },
                     { "name"      : "GSM System Info",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2201,7 +2037,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "WCDMA System Info",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2275,7 +2110,6 @@
                                         "format"        : "guint16" } ] },
                     { "name"      : "LTE System Info",
                       "id"        : "0x19",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2337,7 +2171,6 @@
                                         "format"        : "guint16" } ] },
                     { "name"      : "Additional CDMA System Info",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2347,7 +2180,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "Additional HDR System Info",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2355,7 +2187,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "Additional GSM System Info",
                       "id"        : "0x1C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2366,7 +2197,6 @@
                                         "public-format" : "QmiNasCellBroadcastCapability" } ] },
                     { "name"      : "Additional WCDMA System Info",
                       "id"        : "0x1D",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2377,7 +2207,6 @@
                                         "public-format" : "QmiNasCellBroadcastCapability" } ] },
                     { "name"      : "Additional LTE System Info",
                       "id"        : "0x1E",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2385,7 +2214,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "GSM Call Barring Status",
                       "id"        : "0x1F",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2397,7 +2225,6 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"      : "WCDMA Call Barring Status",
                       "id"        : "0x20",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2409,28 +2236,24 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"          : "LTE Voice Support",
                       "id"            : "0x21",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "GSM Cipher Domain",
                       "id"            : "0x22",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkServiceDomain" },
                     { "name"          : "WCDMA Cipher Domain",
                       "id"            : "0x23",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkServiceDomain" },
                     { "name"      : "TD SCDMA Service Status",
                       "id"        : "0x24",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2445,7 +2268,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "TD SCDMA System Info",
                       "id"        : "0x25",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2543,14 +2365,12 @@
                                         "public-format" : "QmiNasNetworkServiceDomain" } ] },
                     { "name"          : "LTE eMBMS Coverage Info Support",
                       "id"            : "0x26",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "SIM Reject Info",
                       "id"            : "0x27",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
@@ -2565,7 +2385,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "CDMA Service Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2577,7 +2396,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "HDR Service Status",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2589,7 +2407,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "GSM Service Status",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2604,7 +2421,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "WCDMA Service Status",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2619,7 +2435,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "LTE Service Status",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2634,7 +2449,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "CDMA System Info",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"         : "1.0",
                       "format"    : "sequence",
@@ -2716,7 +2530,6 @@
                                         "fixed-size" : "3" } ] },
                     { "name"      : "HDR System Info",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2770,7 +2583,6 @@
                                         "fixed-size" : "16" } ] },
                     { "name"      : "GSM System Info",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2839,7 +2651,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "WCDMA System Info",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2913,7 +2724,6 @@
                                         "format"        : "guint16" } ] },
                     { "name"      : "LTE System Info",
                       "id"        : "0x19",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2975,7 +2785,6 @@
                                         "format"        : "guint16" } ] },
                     { "name"      : "Additional CDMA System Info",
                       "id"        : "0x1A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2985,7 +2794,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "Additional HDR System Info",
                       "id"        : "0x1B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -2993,7 +2801,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "Additional GSM System Info",
                       "id"        : "0x1C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3004,7 +2811,6 @@
                                         "public-format" : "QmiNasCellBroadcastCapability" } ] },
                     { "name"      : "Additional WCDMA System Info",
                       "id"        : "0x1D",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3015,7 +2821,6 @@
                                         "public-format" : "QmiNasCellBroadcastCapability" } ] },
                     { "name"      : "Additional LTE System Info",
                       "id"        : "0x1E",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3023,7 +2828,6 @@
                                         "format" : "guint16" } ] },
                     { "name"      : "GSM Call Barring Status",
                       "id"        : "0x1F",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3035,7 +2839,6 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"      : "WCDMA Call Barring Status",
                       "id"        : "0x20",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3047,35 +2850,30 @@
                                         "public-format" : "QmiNasCallBarringStatus" } ] },
                     { "name"          : "LTE Voice Support",
                       "id"            : "0x21",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "GSM Cipher Domain",
                       "id"            : "0x22",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkServiceDomain" },
                     { "name"          : "WCDMA Cipher Domain",
                       "id"            : "0x23",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiNasNetworkServiceDomain" },
                     { "name"          : "PLMN Not Changed Indication",
                       "id"            : "0x24",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "TD SCDMA Service Status",
                       "id"        : "0x25",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3090,7 +2888,6 @@
                                         "public-format" : "gboolean" } ] },
                     { "name"      : "TD SCMA System Info",
                       "id"        : "0x26",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3188,14 +2985,12 @@
                                         "public-format" : "QmiNasNetworkServiceDomain" } ] },
                     { "name"          : "LTE eMBMS Coverage Info Support",
                       "id"            : "0x27",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "SIM Reject Info",
                       "id"            : "0x28",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint32",
@@ -3211,7 +3006,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "CDMA Signal Strength",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3221,7 +3015,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "HDR Signal Strength",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3236,13 +3029,11 @@
                                         "format" : "gint32" } ] },
                     { "name"      : "GSM Signal Strength",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" },
                     { "name"      : "WCDMA Signal Strength",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3252,7 +3043,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "LTE Signal Strength",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3266,7 +3056,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "TDMA Signal Strength",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" } ] },
@@ -3280,56 +3069,48 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "RSSI Threshold",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint8" } },
                     { "name"          : "ECIO Threshold",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint16" } },
                     { "name"          : "SINR Threshold",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "guint8" } },
                     { "name"          : "LTE SNR Threshold",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint16" } },
                     { "name"          : "IO Threshold",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint32" } },
                     { "name"          : "RSRQ Threshold",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint8" } },
                     { "name"          : "RSRP Threshold",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
                       "array-element" : { "format" : "gint16" } },
                     { "name"      : "LTE Report",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3339,7 +3120,6 @@
                                         "format" : "guint8" } ] },
                     { "name"          : "RSCP Threshold",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "array",
@@ -3355,7 +3135,6 @@
      "since"   : "1.0",
      "output"  : [  { "name"      : "CDMA Signal Strength",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3365,7 +3144,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "HDR Signal Strength",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3380,13 +3158,11 @@
                                         "format" : "gint32" } ] },
                     { "name"      : "GSM Signal Strength",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" },
                     { "name"      : "WCDMA Signal Strength",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3396,7 +3172,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "LTE Signal Strength",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -3410,7 +3185,6 @@
                                         "format" : "gint16" } ] },
                     { "name"      : "TDMA Signal Strength",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8" } ] },
@@ -3424,7 +3198,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Radio Interface",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "gint8",
@@ -3432,7 +3205,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Rx Chain 0 Info",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -3452,7 +3224,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"      : "Rx Chain 1 Info",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -3472,7 +3243,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"      : "Tx Info",
                      "id"        : "0x12",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -3502,7 +3272,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"       : "CDMA Position Info",
                      "id"         : "0x10",
-                     "mandatory"  : "no",
                      "type"       : "TLV",
                      "since"      : "1.0",
                      "format"     : "sequence",
@@ -3543,7 +3312,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"       : "DL Bandwidth",
                      "id"         : "0x11",
-                     "mandatory"  : "no",
                      "type"       : "TLV",
                      "since"      : "1.16",
                      "format"     : "guint32",
@@ -3551,7 +3319,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"       : "Phy CA Agg SCell Info",
                      "id"         : "0x12",
-                     "mandatory"  : "no",
                      "type"       : "TLV",
                      "since"      : "1.16",
                      "format"     : "sequence",
@@ -3571,7 +3338,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"       : "Phy CA Agg PCell Info",
                      "id"         : "0x13",
-                     "mandatory"  : "no",
                      "type"       : "TLV",
                      "since"      : "1.16",
                      "format"     : "sequence",
@@ -3588,14 +3354,12 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"       : "SCell index",
                      "id"         : "0x14",
-                     "mandatory"  : "no",
                      "type"       : "TLV",
                      "since"      : "1.16",
                      "format"     : "guint8",
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"               : "Phy CA Agg Secondary Cells",
                      "id"                 : "0x15",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.16",
 		     "format"             : "array",
diff --git a/data/qmi-service-oma.json b/data/qmi-service-oma.json
index a287af3..180b28e 100644
--- a/data/qmi-service-oma.json
+++ b/data/qmi-service-oma.json
@@ -35,14 +35,12 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Network Initiated Alert Reporting",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Session State Reporting",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -56,7 +54,6 @@
      "since"   : "1.6",
      "output"  : [ { "name"      : "Network Initiated Alert",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -67,14 +64,12 @@
                                        "format" : "guint16" } ] },
                     { "name"          : "Session State",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.6",
                       "format"        : "guint8",
                       "public-format" : "QmiOmaSessionState" },
                     { "name"          : "Session Fail Reason",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.6",
                       "format"        : "guint8",
@@ -89,7 +84,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Session Type",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -113,7 +107,6 @@
      "since"   : "1.6",
      "output"  : [ { "name"         : "Session Info",
                      "id"           : "0x10",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.6",
                      "format"       : "sequence",
@@ -126,7 +119,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Session Failed Reason",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -136,7 +128,6 @@
                                            "value" : "QMI_OMA_SESSION_STATE_FAILED" } ] },
                    { "name"         : "Retry Info",
                      "id"           : "0x12",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.6",
                      "format"       : "sequence",
@@ -149,7 +140,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"         : "Network Initiated Alert",
                      "id"           : "0x13",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.6",
                      "format"       : "sequence",
@@ -169,7 +159,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"         : "Network Initiated Alert Selection",
                      "id"           : "0x10",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
                      "since"        : "1.6",
                      "format"       : "sequence",
@@ -188,7 +177,6 @@
      "since"   : "1.6",
      "output"  : [ { "name"          : "Device Provisioning Service Update Config",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -196,7 +184,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "PRL Update Service Config",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -204,7 +191,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "HFA Feature Config",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -212,7 +198,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "HFA Feature Done State",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -228,21 +213,18 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Device Provisioning Service Update Config",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "PRL Update Service Config",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "HFA Feature Config",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
diff --git a/data/qmi-service-pbm.json b/data/qmi-service-pbm.json
index 45ca9e4..f9106da 100644
--- a/data/qmi-service-pbm.json
+++ b/data/qmi-service-pbm.json
@@ -22,7 +22,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Event Registration Mask",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -30,7 +29,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Event Registration Mask",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -46,7 +44,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"      : "Phonebook Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -59,7 +56,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Capability Basic Information",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -80,7 +76,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Group Capability",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -91,7 +86,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Additional Number Capability",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -104,7 +98,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Email Capability",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -115,7 +108,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Second Name Capability",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -124,7 +116,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Hidden Records Capability",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -134,7 +125,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Grouping Information Alpha String Capability",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -147,7 +137,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Additional Number Alpha String Capability",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -169,7 +158,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "Capability Basic Information",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -198,7 +186,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Group Capability",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -215,7 +202,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Number Capability",
                      "id"                 : "0x12",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -234,7 +220,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Email Capability",
                      "id"                 : "0x13",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -251,7 +236,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Second Name Capability",
                      "id"                 : "0x14",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -266,7 +250,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Hidden Records Capability",
                      "id"                 : "0x15",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -282,7 +265,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Grouping Information Alpha String Capability",
                      "id"                 : "0x16",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -301,7 +283,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Number Alpha String Capability",
                      "id"                 : "0x17",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
diff --git a/data/qmi-service-pdc.json b/data/qmi-service-pdc.json
index 511937a..393c568 100644
--- a/data/qmi-service-pdc.json
+++ b/data/qmi-service-pdc.json
@@ -20,7 +20,6 @@
   { "common-ref"    : "Config Type",
     "name"          : "Config Type",
     "id"            : "0x1",
-    "mandatory"     : "yes",
     "type"          : "TLV",
     "format"        : "guint32",
     "public-format" : "QmiPdcConfigurationType" },
@@ -28,7 +27,6 @@
   { "common-ref"    : "Indication Result",
     "name"          : "Indication Result",
     "id"            : "0x01",
-    "mandatory"     : "yes",
     "type"          : "TLV",
     "format"        : "guint16" },
 
@@ -37,7 +35,6 @@
     "name"       : "Type With Id",
     "fullname"   : "Qmi Config Type And Id",
     "id"         : "0x01",
-    "mandatory"  : "yes",
     "type"       : "TLV",
     "format"     : "struct",
     "contents"   : [ { "name"          : "Config Type",
@@ -51,7 +48,6 @@
   { "common-ref" : "Token",
     "name"       : "Token",
     "id"         : "0x10",
-    "mandatory"  : "no",
     "type"       : "TLV",
     "format"     : "guint32"},
 
@@ -120,14 +116,12 @@
                      "since"         : "1.18" },
                    { "name"          : "Active Id",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "array",
                      "array-element" : { "format" : "guint8" } },
                    { "name"          : "Pending Id",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "array",
@@ -188,7 +182,6 @@
                      "since"              : "1.18" },
                    { "name"               : "Configs",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.18",
                      "format"             : "array",
@@ -233,7 +226,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"          : "Config Chunk",
                      "id"            : "0x1",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "sequence",
@@ -267,19 +259,16 @@
                      "since"         : "1.18" },
                    { "name"          : "Received",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint32" },
                    { "name"          : "Remaining Size",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint32" },
                    { "name"          : "Frame Reset",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint8",
@@ -337,20 +326,17 @@
                      "since"              : "1.18" },
                    { "name"               : "Total Size",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.18",
                      "format"             : "guint32" },
                    { "name"               : "Description",
                      "id"                 : "0x12",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.18",
                      "format"             : "string",
                      "size-prefix-format" : "guint8"},
                    { "name"               : "Version",
                      "id"                 : "0x13",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.18",
                      "format"             : "guint32" }
@@ -372,13 +358,11 @@
                      "since"      : "1.18" },
                    { "name"          : "Maximum Size",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint64" },
                    { "name"          : "Current Size",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint64" }] },
@@ -399,19 +383,16 @@
                      "since"      : "1.18" },
                    { "name"          : "Version",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint32" },
                    { "name"          : "Total Size",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint32" },
                    { "name"          : "Description",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "string" }
diff --git a/data/qmi-service-pds.json b/data/qmi-service-pds.json
index bb2a57d..6ac23c4 100644
--- a/data/qmi-service-pds.json
+++ b/data/qmi-service-pds.json
@@ -35,140 +35,120 @@
      "since"   : "1.0",
      "input"   : [ { "name"          : "NMEA Position Reporting",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Extended NMEA Position Reporting",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Parsed Position Reporting",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External XTRA Data Request Reporting",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External Time Injection Request Reporting",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External WIFI Position Request Reporting",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Satellite Information Reporting",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "VX Network Initiated Request Reporting",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "SUPL Network Initiated Prompt Reporting",
                      "id"            : "0x18",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "UMTS CP Network Initiated Prompt Reporting",
                      "id"            : "0x19",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "PDS Comm Event Reporting",
                      "id"            : "0x1A",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Accelerometer Data Streaming Ready Reporting",
                      "id"            : "0x1B",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Gyro Data Streaming Ready Reporting",
                      "id"            : "0x1C",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Time Sync Request Reporting",
                      "id"            : "0x1D",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Position Reliability Indicator Reporting",
                      "id"            : "0x1E",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Sensor Data Usage Indicator Reporting",
                      "id"            : "0x1F",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Time Source Information Reporting",
                      "id"            : "0x20",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Heading Uncertainty Reporting",
                      "id"            : "0x21",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "NMEA Debug Strings Reporting",
                      "id"            : "0x22",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Extended External XTRA Data Request Reporting",
                      "id"            : "0x23",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -182,14 +162,12 @@
      "since"   : "1.0",
      "output"  : [ { "name"      : "NMEA Position",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "string",
                      "max-size"  : "200" },
                    { "name"      : "Extended NMEA Position",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -203,7 +181,6 @@
                                        "max-size" : "200" } ] },
                    { "name"          : "Position Session Status",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -213,7 +190,6 @@
                    // Reading gfloat/gdouble is still missing
                    //{ "name"         : "Parsed Position",
                    //  "id"           : "0x13",
-                   //  "mandatory"    : "no",
                    //  "type"         : "TLV",
                    //  "format"       : "sequence",
                    //  "contents"     : [ { "name"   : "Valid Mask",
@@ -295,7 +271,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -316,7 +291,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -335,7 +309,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Info",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.12",
                      "format"    : "sequence",
@@ -359,7 +332,6 @@
      "since"   : "1.12",
      "input"   : [ { "name"      : "Info",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.12",
                      "format"    : "sequence",
@@ -383,7 +355,6 @@
      "since"   : "1.12",
      "input"   : [ { "name"          : "Network Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.12",
                      "format"        : "guint8",
@@ -391,7 +362,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Location Server Address",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.12",
                      "format"    : "sequence",
@@ -403,7 +373,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Location Server URL",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.12",
                      "format"             : "array",
@@ -420,7 +389,6 @@
      "since"   : "1.12",
      "input"   : [ { "name"      : "Location Server Address",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.12",
                      "format"    : "sequence",
@@ -431,7 +399,6 @@
                                        "format" : "guint32" } ] },
                    { "name"               : "Location Server URL",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.12",
                      "format"             : "array",
@@ -439,7 +406,6 @@
                      "array-element"      : { "format" : "guint8" } },
                    { "name"          : "Network Mode",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.12",
                      "format"        : "guint8",
@@ -456,7 +422,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -474,7 +439,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
diff --git a/data/qmi-service-uim.json b/data/qmi-service-uim.json
index 292d220..313b472 100644
--- a/data/qmi-service-uim.json
+++ b/data/qmi-service-uim.json
@@ -32,7 +32,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -49,7 +48,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -60,7 +58,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -71,7 +68,6 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Read Information",
                      "id"        : "0x03",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -81,13 +77,11 @@
                                        "format" : "guint16" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "guint32" },
                    { "name"          : "Encrypt Data",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -95,7 +89,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -105,7 +98,6 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "Read result",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -114,14 +106,12 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Encrypted Data",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint8",
@@ -137,7 +127,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -148,7 +137,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -159,7 +147,6 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Record",
                      "id"        : "0x03",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -169,20 +156,17 @@
                                        "format" : "guint16" } ] },
                    { "name"      : "Last Record",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "guint16" },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -192,7 +176,6 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "Read Result",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -201,7 +184,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Read Result",
                      "id"                 : "0x12",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "array",
@@ -210,7 +192,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -225,7 +206,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -236,7 +216,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "sequence",
@@ -247,14 +226,12 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.6",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "sequence",
@@ -264,7 +241,6 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "File Attributes",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.6",
                      "format"             : "sequence",
@@ -316,7 +292,6 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -331,7 +306,6 @@
      "since"   : "1.14",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -342,7 +316,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -356,14 +329,12 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -374,7 +345,6 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint32",
@@ -389,7 +359,6 @@
      "since"   : "1.14",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -400,7 +369,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -411,14 +379,12 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x12",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -429,14 +395,12 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -454,7 +418,6 @@
      "since"   : "1.14",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -465,7 +428,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -478,14 +440,12 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -496,14 +456,12 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -521,7 +479,6 @@
      "since"   : "1.14",
      "input"   : [ { "name"      : "Session Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -532,7 +489,6 @@
                                        "format" : "string" } ] },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -545,14 +501,12 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -563,14 +517,12 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -589,7 +541,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card Status",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "sequence",
@@ -671,7 +622,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"      : "Slot",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.18",
                      "format"    : "sequence",
@@ -690,7 +640,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"      : "Slot",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.18",
                      "format"    : "sequence",
diff --git a/data/qmi-service-voice.json b/data/qmi-service-voice.json
index 22b15d1..b9a2a64 100644
--- a/data/qmi-service-voice.json
+++ b/data/qmi-service-voice.json
@@ -27,7 +27,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -44,14 +43,12 @@
        "since"   : "1.14",
        "input"   : [ { "name"          : "Calling Number",
                        "id"            : "0x01",
-                       "mandatory"     : "yes",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "string" } ],
        "output"  : [ { "common-ref" : "Operation Result" },
                      { "name"      : "Call ID",
                        "id"        : "0x10",
-                       "mandatory" : "no",
                        "type"      : "TLV",
                        "since"     : "1.14",
                        "format"    : "guint8" } ] },
@@ -65,14 +62,12 @@
        "since"   : "1.14",
        "input"   : [ { "name"          : "Call ID",
                        "id"            : "0x01",
-                       "mandatory"     : "yes",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8" } ],
        "output"  : [ { "common-ref" : "Operation Result" },
                      { "name"      : "Call ID",
                        "id"        : "0x10",
-                       "mandatory" : "no",
                        "type"      : "TLV",
                        "since"     : "1.14",
                        "format"    : "guint8" } ] },
@@ -86,14 +81,12 @@
        "since"   : "1.14",
        "input"   : [ { "name"          : "Call ID",
                        "id"            : "0x01",
-                       "mandatory"     : "yes",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8" } ],
        "output"  : [ { "common-ref" : "Operation Result" },
                      { "name"      : "Call ID",
                        "id"        : "0x10",
-                       "mandatory" : "no",
                        "type"      : "TLV",
                        "since"     : "1.14",
                        "format"    : "guint8" } ] },
@@ -107,7 +100,6 @@
        "since"   : "1.14",
        "output"  : [ { "name"               : "Call Information",
                        "id"                 : "0x01",
-                       "mandatory"          : "yes",
                        "type"               : "TLV",
                        "since"              : "1.14",
                        "format"             : "array",
@@ -136,7 +128,6 @@
                                                                  "public-format" : "QmiVoiceAls" } ] } },
                      { "name"               : "Remote Party Number",
                        "id"                 : "0x10",
-                       "mandatory"          : "yes",
                        "type"               : "TLV",
                        "since"              : "1.14",
                        "format"             : "array",
@@ -160,63 +151,54 @@
        "since"   : "1.14",
        "input"   : [ { "name"          : "Auto Answer",
                        "id"            : "0x10",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "Air Timer",
                        "id"            : "0x11",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "Roam Timer",
                        "id"            : "0x12",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "TTY Mode",
                        "id"            : "0x13",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "Preferred Voice Service Option",
                        "id"            : "0x14",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "AMR Status",
                        "id"            : "0x15",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "Preferred Voice Privacy",
                        "id"            : "0x16",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "NAM Index",
                        "id"            : "0x17",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "gboolean" },
                      { "name"          : "Voice Domain Preference",
                        "id"            : "0x18",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
@@ -224,14 +206,12 @@
        "output" : [ { "common-ref" : "Operation Result" },
                     { "name"      : "Auto Answer Status",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "guint8",
                       "public-format" : "gboolean" },
                     { "name"      : "Air Timer Count",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "sequence",
@@ -241,7 +221,6 @@
                                         "format" : "guint32" } ] },
                     { "name"      : "Roam Timer Count",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "sequence",
@@ -251,14 +230,12 @@
                                         "format" : "guint32" } ] },
                     { "name"          : "Current TTY Mode",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.14",
                       "format"        : "guint8",
                       "public-format" : "QmiVoiceTtyMode" },
                     { "name"      : "Current Preferred Voice SO",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "sequence",
@@ -278,7 +255,6 @@
                                         "public-format" : "QmiVoiceServiceOption" } ] },
                     { "name"      : "Current AMR Status",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "sequence",
@@ -290,14 +266,12 @@
                                        "public-format" : "QmiVoiceWcdmaAmrStatus" } ] },
                      { "name"          : "Current Voice Privacy Preference",
                        "id"            : "0x16",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
                        "public-format" : "QmiVoicePrivacy" },
                      { "name"          : "Current Voice Domain Preference",
                        "id"            : "0x17",
-                       "mandatory"     : "no",
                        "type"          : "TLV",
                        "since"         : "1.14",
                        "format"        : "guint8",
diff --git a/data/qmi-service-wda.json b/data/qmi-service-wda.json
index 35e6a9c..bda42da 100644
--- a/data/qmi-service-wda.json
+++ b/data/qmi-service-wda.json
@@ -23,7 +23,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -40,53 +39,45 @@
      "since"   : "1.10",
      "input"   : [ { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaLinkLayerProtocol" },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol" },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol" },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32" },
                    { "name"          : "Downlink Data Aggregation Max Datagrams",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32" },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32" },
                    { "name"          : "Endpoint Info",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "sequence",
@@ -98,7 +89,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint8",
@@ -106,7 +96,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -114,7 +103,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -122,7 +110,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -130,21 +117,18 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Datagrams",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -160,7 +144,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint8",
@@ -168,7 +151,6 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -176,7 +158,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -184,7 +165,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
@@ -192,21 +172,18 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Uplink Data Aggregation Max Size",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.10",
                      "format"        : "guint32",
diff --git a/data/qmi-service-wds.json b/data/qmi-service-wds.json
index 498710b..3c25d3d 100644
--- a/data/qmi-service-wds.json
+++ b/data/qmi-service-wds.json
@@ -35,14 +35,12 @@
      "since"   : "1.18",
      "input"   : [  { "name"          : "Channel Rate",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Transfer Statistics",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "sequence",
@@ -53,83 +51,71 @@
                                         "public-format" : "QmiWdsSetEventReportTransferStatistics" } ] },
                     { "name"          : "Data Bearer Technology",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Dormancy Status",
                       "id"            : "0x13",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "MIP Status",
                       "id"            : "0x14",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8" },
                     { "name"          : "Current Data Bearer Technology",
                       "id"            : "0x15",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Data Call Status",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Preferred Data System",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "EVDO PM Change",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Data Systems",
                       "id"            : "0x1A",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Uplink Flow Control",
                       "id"            : "0x1B",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Limited Data System Status",
                       "id"            : "0x1C",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "PDN Filter Removals",
                       "id"            : "0x1D",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Extended Data Bearer Technology",
                       "id"            : "0x1E",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
@@ -143,43 +129,36 @@
      "since"   : "1.18",
      "output"  : [  { "name"      : "Tx Packets Ok",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Rx Packets Ok",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Tx Packets Error",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Rx Packets Error",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Tx Overflows",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Rx Overflows",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "guint32" },
                     { "name"      : "Channel Rates",
                       "id"        : "0x16",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "sequence",
@@ -189,40 +168,34 @@
                                         "format" : "gint32" } ] },
                     { "name"          : "Data Bearer Technology",
                       "id"            : "0x17",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "gint8",
                       "public-format" : "QmiWdsDataBearerTechnology" },
                     { "name"          : "Dormancy Status",
                       "id"            : "0x18",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsDormancyStatus" },
                     { "name"          : "Tx Bytes Ok",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint64" },
                     { "name"          : "Rx Bytes Ok",
                       "id"            : "0x1A",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint64" },
                     { "name"          : "MIP Status",
                       "id"            : "0x1B",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Current Data Bearer Technology",
                       "id"            : "0x1D",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "sequence",
@@ -235,21 +208,18 @@
                                             "format" : "guint32" } ] },
                     { "name"          : "Data Call Status",
                       "id"            : "0x1F",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsDataCallStatus" },
                     { "name"          : "Preferred Data System",
                       "id"            : "0x20",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint32",
                       "public-format" : "QmiWdsDataSystem" },
                     { "name"          : "Data Call Type",
                       "id"            : "0x22",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "sequence",
@@ -261,7 +231,6 @@
                                             "public-format" : "QmiWdsTetheredCallType" } ] },
                     { "name"          : "EVDO Page Monitor Period Change",
                       "id"            : "0x23",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "sequence",
@@ -272,7 +241,6 @@
                                             "public-format" : "gboolean" } ] },
                     { "name"          : "Data Systems",
                       "id"            : "0x24",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "sequence",
@@ -293,26 +261,22 @@
                                                                                       "format" : "guint32" } ] } } ] },
                     { "name"          : "Tx Packets Dropped",
                       "id"            : "0x25",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint32" },
                     { "name"          : "Rx Packets Dropped",
                       "id"            : "0x26",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "guint32" },
                     { "name"          : "Uplink Flow Control Enabled",
                       "id"            : "0x27",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       "format"        : "gint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Data Call Address Family",
                       "id"            : "0x28",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.18",
                       // Yes, TLV wants a u32
@@ -320,7 +284,6 @@
                       "public-format" : "QmiWdsIpFamily" },
                     { "name"      : "PDN Filters Removed",
                       "id"        : "0x29",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "sequence",
@@ -330,7 +293,6 @@
                                         "array-element" : { "format": "guint32" } } ] },
                     { "name"      : "Extended Data Bearer Technology",
                       "id"        : "0x2A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.18",
                       "format"    : "sequence",
@@ -370,7 +332,6 @@
      "scope"   : "library-only",
      "input"   : [  { "name"      : "Transaction ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint16" } ],
@@ -386,7 +347,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -405,95 +365,80 @@
      "abort"   : "yes",
      "input"   : [  { "name"      : "Primary DNS Address Preference",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"      : "Secondary DNS Address Preference",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"      : "Primary NBNS Address Preference",
                       "id"        : "0x12",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"      : "Secondary NBNS Address Preference",
                       "id"        : "0x13",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"      : "APN",
                       "id"        : "0x14",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string" },
                     { "name"      : "IPv4 Address Preference",
                       "id"        : "0x15",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"          : "Authentication Preference",
                       "id"            : "0x16",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsAuthentication" },
                     { "name"      : "Username",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string" },
                     { "name"      : "Password",
                       "id"        : "0x18",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "string" },
                     { "name"          : "IP Family Preference",
                       "id"            : "0x19",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsIpFamily" },
                     { "name"          : "Technology Preference",
                       "id"            : "0x30",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsTechnologyPreference" },
                     { "name"      : "Profile Index 3GPP",
                       "id"        : "0x31",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"      : "Profile Index 3GPP2",
                       "id"        : "0x32",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8" },
                     { "name"          : "Enable Autoconnect",
                       "id"            : "0x33",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "gboolean" },
                     { "name"          : "Extended Technology Preference",
                       "id"            : "0x34",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       // Note: docs give this as gint16 with negative enum values. Instead, we use
@@ -502,7 +447,6 @@
                       "public-format" : "QmiWdsExtendedTechnologyPreference" },
                     { "name"          : "Call Type",
                       "id"            : "0x35",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -510,14 +454,12 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Packet Data Handle",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32",
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"          : "Call End Reason",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint16",
@@ -530,7 +472,6 @@
                                             "value"     : "QMI_PROTOCOL_ERROR_CALL_FAILED" } ] },
                     { "name"      : "Verbose Call End Reason",
                       "id"        : "0x11",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -555,13 +496,11 @@
      "since"   : "1.0",
      "input"   : [  { "name"      : "Packet Data Handle",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32" },
                     { "name"          : "Disable Autoconnect",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -578,7 +517,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Connection Status",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -593,7 +531,6 @@
      "since"   : "1.14",
      "output"  : [ { "name"          : "Connection Status",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "sequence",
@@ -605,14 +542,12 @@
                                            "public-format" : "gboolean" } ] },
                    { "name"          : "Call End Reason",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint16",
                      "public-format" : "QmiWdsCallEndReason" },
                    { "name"      : "Verbose Call End Reason",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
@@ -623,14 +558,12 @@
                                        "format" : "gint16" } ] },
                     { "name"          : "IP Family",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.14",
                       "format"        : "guint8",
                       "public-format" : "QmiWdsIpFamily" },
                     { "name"          : "Extended Technology Preference",
                       "id"            : "0x34",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.14",
                       // Note: docs give this as gint16 with negative enum values. Instead, we use
@@ -648,7 +581,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"       : "Channel Rates",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                      "format"     : "sequence",
@@ -670,7 +602,6 @@
      "since"   : "1.6",
      "input"   : [ { "name"          : "Mask",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -678,56 +609,48 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Tx Packets Ok",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Rx Packets Ok",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Tx Packets Error",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Rx Packets Error",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Tx Overflows",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Rx Overflows",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Tx Bytes Ok",
                      "id"            : "0x19",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint64",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Rx Bytes Ok",
                      "id"            : "0x1A",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint64",
@@ -735,26 +658,22 @@
                    // Note: last call TX/RX given along with QMI Error 'out of call'
                    { "name"          : "Last Call Tx Bytes Ok",
                      "id"            : "0x1B",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint64" },
                    { "name"          : "Last Call Rx Bytes Ok",
                      "id"            : "0x1C",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint64" },
                    { "name"          : "Tx Packets Dropped",
                      "id"            : "0x1D",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Rx Packets Dropped",
                      "id"            : "0x1E",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.6",
                      "format"        : "guint32",
@@ -787,7 +706,6 @@
      "since"   : "1.18",
      "input"   : [ { "name"          : "Profile Type",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.18",
                      "format"        : "guint8",
@@ -1012,7 +930,6 @@
      "since"   : "1.8",
      "input"   : [ { "name"          : "Profile Type",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.8",
                      "format"        : "guint8",
@@ -1020,7 +937,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Profile List",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.8",
                      "format"        : "array",
@@ -1046,7 +962,6 @@
      "since"   : "1.8",
      "input"   : [ { "name"      : "Profile ID",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.8",
                      "format"    : "sequence",
@@ -1184,7 +1099,6 @@
      "since"   : "1.8",
      "input"   : [ { "name"      : "Profile Type",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.8",
                      "format"    :  "guint8",
@@ -1341,7 +1255,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "UMTS Granted QoS",
                       "id"        : "0x17",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.14",
                       "format"    : "sequence",
@@ -1377,7 +1290,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "GPRS Granted QoS",
                       "id"        : "0x19",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1400,7 +1312,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv4 Address",
                       "id"        : "0x1E",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "endian"    : "little",
@@ -1408,7 +1319,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "Profile ID",
                       "id"        : "0x1F",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1420,7 +1330,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv4 Gateway Address",
                       "id"        : "0x20",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "endian"    : "little",
@@ -1428,7 +1337,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv4 Gateway Subnet Mask",
                       "id"        : "0x21",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "endian"    : "little",
@@ -1436,14 +1344,12 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "PCSCF Address Using PCO",
                       "id"        : "0x22",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "PCSCF Server Address List",
                       "id"        : "0x23",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"        : "array",
@@ -1453,7 +1359,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "PCSCF Domain Name List",
                       "id"        : "0x24",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"        : "array",
@@ -1463,7 +1368,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv6 Address",
                       "id"        : "0x25",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1476,7 +1380,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv6 Gateway Address",
                       "id"        : "0x26",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1489,7 +1392,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv6 Primary DNS Address",
                       "id"        : "0x27",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "array",
@@ -1498,7 +1400,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IPv6 Secondary DNS Address",
                       "id"        : "0x28",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "array",
@@ -1507,14 +1408,12 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "MTU",
                       "id"        : "0x29",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint32",
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "Domain Name List",
                       "id"        : "0x2A",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"        : "array",
@@ -1524,7 +1423,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IP Family",
                       "id"        : "0x2B",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "guint8",
@@ -1532,14 +1430,12 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "IMCN Flag",
                       "id"        : "0x2C",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "gint8",
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"      : "Extended Technology Preference",
                       "id"        : "0x2D",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       // Note: docs give this as gint16 with negative enum values. Instead, we use
@@ -1558,7 +1454,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Dormancy Status",
                      "id"            : "0x01",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
@@ -1575,7 +1470,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Status",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
@@ -1583,7 +1477,6 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Roaming",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
@@ -1600,7 +1493,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Current",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "gint8",
@@ -1608,7 +1500,6 @@
                       "prerequisites" : [ { "common-ref" : "Success" } ] },
                     { "name"          : "Last",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "gint8",
@@ -1630,7 +1521,6 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Current",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1644,7 +1534,6 @@
                       "prerequisites": [ { "common-ref" : "Success" } ] },
                     { "name"      : "Last",
                       "id"        : "0x10",
-                      "mandatory" : "no",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -1665,7 +1554,6 @@
      "since"   : "1.0",
      "input"   : [  { "name"          : "Preference",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -1681,14 +1569,12 @@
      "since"   : "1.14",
      "input"   : [ { "name"          : "Status",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
                      "public-format" : "QmiWdsAutoconnectSetting" },
                    { "name"          : "Roaming",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
@@ -1704,7 +1590,6 @@
      "since"   : "1.14",
      "input"   : [ { "name"          : "Network Type",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "guint8",
@@ -1712,7 +1597,6 @@
      "output"  : [ { "common-ref"   : "Operation Result" },
                    { "name"          : "Info",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.14",
                      "format"        : "array",
@@ -1740,7 +1624,6 @@
         "since"   : "1.18",
         "input"   : [ { "name"          : "Endpoint Info",
                         "id"            : "0x10",
-                        "mandatory"     : "no",
                         "type"          : "TLV",
                         "since"         : "1.18",
                         "format"        : "sequence",
@@ -1753,13 +1636,11 @@
                         "id"            : "0x11",
                         "type"          : "TLV",
                         "since"         : "1.18",
-                        "mandatory"     : "no",
                         "format"        : "guint8"},
                       { "name"          : "Client Type",
                         "id"            : "0x13",
                         "type"          : "TLV",
                         "since"         : "1.18",
-                        "mandatory"     : "no",
                         "format"        : "guint32",
                         "public-format" : "QmiWdsClientType"}
                       ],
diff --git a/data/qmi-service-wms.json b/data/qmi-service-wms.json
index c5fc871..1edd0cf 100644
--- a/data/qmi-service-wms.json
+++ b/data/qmi-service-wms.json
@@ -35,7 +35,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "New MT Message Indicator",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -51,7 +50,6 @@
      "since"   : "1.0",
      "output"  : [ { "name"      : "MT Message",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -62,7 +60,6 @@
                                        "format" : "guint32" } ] },
                    { "name"      : "Transfer Route MT Message",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -80,14 +77,12 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" },
                    { "name"      : "ETWS Message",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -100,7 +95,6 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"      : "ETWS PLMN Information",
                      "id"        : "0x14",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -110,13 +104,11 @@
                                        "format" : "guint16" } ] },
                    { "name"          : "SMSC Address",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "string" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -132,7 +124,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
                      "since"              : "1.14",
                      "format"             : "array",
@@ -149,7 +140,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Raw Message Data",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -162,7 +152,6 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"      : "CDMA Force On DC",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -174,7 +163,6 @@
                                        "public-format" : "QmiWmsCdmaServiceOption" } ] },
                    { "name"      : "CDMA Follow On DC",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -183,13 +171,11 @@
                                        "public-format" : "gboolean" } ] },
                    { "name"      : "GSM WCDMA Link Timer",
                      "id"        : "0x12",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "guint8" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -198,14 +184,12 @@
                    { "name"          : "Message ID",
                      "id"            : "0x01",
                      // Even if we have this TLV as mandatory, it seems it really isn't
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint16",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "CDMA Cause Code",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint16",
@@ -218,7 +202,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "CDMA Error Class",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -231,7 +214,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "GSM WCDMA Cause Info",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "sequence",
@@ -249,7 +231,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "Message Delivery Failure Type",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -270,7 +251,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Raw Message Data",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -287,7 +267,6 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Memory Index",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint32",
@@ -302,7 +281,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Message Memory Storage ID",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -313,14 +291,12 @@
                                        "format"        : "guint32" } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -328,7 +304,6 @@
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"      : "Raw Message Data",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
                       "since"     : "1.0",
                       "format"    : "sequence",
@@ -353,7 +328,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Message Tag",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -367,7 +341,6 @@
                                        "public-format" : "QmiWmsMessageTagType" } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -383,27 +356,23 @@
      "since"   : "1.0",
      "input"   : [ { "name"          : "Memory Storage",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsStorageType" },
                    { "name"      : "Memory Index",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "guint32" },
                    { "name"          : "Message Tag",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageTagType" },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -420,7 +389,6 @@
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"          : "Message Protocol",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -436,21 +404,18 @@
      "since"   : "1.0",
      "input"   : [ { "name"          : "Storage Type",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsStorageType" },
                    { "name"          : "Message Tag",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageTagType" },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -458,7 +423,6 @@
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"               : "Message List",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -481,7 +445,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"               : "Route List",
                      "id"                 : "0x01",
-                     "mandatory"          : "yes",
                      "type"               : "TLV",
                      "since"              : "1.0",
                      "format"             : "array",
@@ -502,7 +465,6 @@
                                                                "public-format" : "QmiWmsReceiptAction" } ] } },
                    { "name"          : "Transfer Status Report",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -519,7 +481,6 @@
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"               : "Route List",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
                       "since"              : "1.0",
                       "format"             : "array",
@@ -541,7 +502,6 @@
                       "prerequisites"      : [ { "common-ref" : "Success" } ] },
                     { "name"          : "Transfer Status Report",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
                       "since"         : "1.0",
                       "format"        : "guint8",
@@ -557,7 +517,6 @@
      "since"   : "1.0",
      "input"   : [ { "name"      : "Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.0",
                      "format"    : "sequence",
@@ -571,7 +530,6 @@
                                        "public-format" : "QmiWmsMessageMode" } ] },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -579,14 +537,12 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Message ID",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint16",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "CDMA Cause Code",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint16",
@@ -599,7 +555,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "CDMA Error Class",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -612,7 +567,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "GSM WCDMA Cause Info",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "sequence",
@@ -630,7 +584,6 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "Message Delivery Failure Type",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
                      "since"         : "1.0",
                      "format"        : "guint8",
@@ -651,7 +604,6 @@
      "since"   : "1.14",
      "output"  : [ { "name"      : "Address",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
                      "since"     : "1.14",
                      "format"    : "sequence",
-- 
2.16.2



More information about the libqmi-devel mailing list