
[
  // *********************************************************************************
  { "type" : "Service",
    "name" : "Basic Connect" },

  // *********************************************************************************
  { "name"     : "Device Caps",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.0",
    "query"    : [],
    "response" : [ { "name"          : "DeviceType",
                     "format"        : "guint32",
                     "public-format" : "MbimDeviceType" },
                   { "name"          : "CellularClass",
                     "format"        : "guint32",
                     "public-format" : "MbimCellularClass" },
                   { "name"          : "VoiceClass",
                     "format"        : "guint32",
                     "public-format" : "MbimVoiceClass" },
                   { "name"          : "SimClass",
                     "format"        : "guint32",
                     "public-format" : "MbimSimClass" },
                  { "name"          : "DataClass",
                    "format"        : "guint32",
                    "public-format" : "MbimDataClass" },
                   { "name"          : "SmsCaps",
                     "format"        : "guint32",
                     "public-format" : "MbimSmsCaps" },
                   { "name"          : "ControlCaps",
                     "format"        : "guint32",
                     "public-format" : "MbimCtrlCaps" },
                   { "name"   : "MaxSessions",
                     "format" : "guint32" },
                   { "name"     : "CustomDataClass",
                     "format"   : "string",
                     "max-size" : "22" },
                   { "name"     : "DeviceId",
                     "format"   : "string",
                     "max-size" : "36" },
                   { "name"     : "FirmwareInfo",
                     "format"   : "string",
                     "max-size" : "60" },
                   { "name"     : "HardwareInfo",
                     "format"   : "string",
                     "max-size" : "60" } ] },

  // *********************************************************************************
  { "name"         : "Subscriber Ready Status",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since-ex"     : { "query"        : "1.0",
                       "response"     : "1.0",
                       "notification" : "1.8" },
    "query"        : [],
    "response"     : [ { "name"          : "ReadyState",
                         "format"        : "guint32",
                         "public-format" : "MbimSubscriberReadyState" },
                       { "name"   : "SubscriberId",
                         "format" : "string" },
                       { "name"   : "SimIccId",
                         "format" : "string" },
                       { "name"          : "ReadyInfo",
                         "format"        : "guint32",
                         "public-format" : "MbimReadyInfoFlag" },
                       { "name"   : "TelephoneNumbersCount",
                         "format" : "guint32" },
                       { "name"             : "TelephoneNumbers",
                         "format"           : "string-array",
                         "array-size-field" : "TelephoneNumbersCount" } ],
    "notification" : [ { "name"          : "ReadyState",
                         "format"        : "guint32",
                         "public-format" : "MbimSubscriberReadyState" },
                       { "name"   : "SubscriberId",
                         "format" : "string" },
                       { "name"   : "SimIccId",
                         "format" : "string" },
                       { "name"          : "ReadyInfo",
                         "format"        : "guint32",
                         "public-format" : "MbimReadyInfoFlag" },
                       { "name"   : "TelephoneNumbersCount",
                         "format" : "guint32" },
                       { "name"             : "TelephoneNumbers",
                         "format"           : "string-array",
                         "array-size-field" : "TelephoneNumbersCount" } ] },

  // *********************************************************************************
  { "name"         : "Radio State",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"          : "RadioState",
                         "format"        : "guint32",
                         "public-format" : "MbimRadioSwitchState" } ],
    "query"        : [],
    "response"     : [ { "name"          : "HwRadioState",
                         "format"        : "guint32",
                         "public-format" : "MbimRadioSwitchState" },
                       { "name"          : "SwRadioState",
                         "format"        : "guint32",
                         "public-format" : "MbimRadioSwitchState" } ],
    "notification" : [ { "name"          : "HwRadioState",
                         "format"        : "guint32",
                         "public-format" : "MbimRadioSwitchState" },
                       { "name"          : "SwRadioState",
                         "format"        : "guint32",
                         "public-format" : "MbimRadioSwitchState" } ] },

  // *********************************************************************************
  { "name"     : "Pin",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.0",
    "set"      : [ { "name"          : "PinType",
                     "format"        : "guint32",
                     "public-format" : "MbimPinType" },
                   { "name"          : "PinOperation",
                     "format"        : "guint32",
                     "public-format" : "MbimPinOperation" },
                   { "name"   : "Pin",
                     "format" : "string" },
                   { "name"   : "NewPin",
                     "format" : "string" } ],
    "query"    : [],
    "response" : [ { "name"          : "PinType",
                     "format"        : "guint32",
                     "public-format" : "MbimPinType" },
                   { "name"          : "PinState",
                     "format"        : "guint32",
                     "public-format" : "MbimPinState" },
                   { "name"   : "RemainingAttempts",
                     "format" : "guint32" } ] },

  // *********************************************************************************
  { "name"     : "MbimPinDesc",
    "type"     : "Struct",
    "since"    : "1.0",
    "contents" : [ { "name"          : "PinMode",
                     "format"        : "guint32",
                     "public-format" : "MbimPinMode" },
                   { "name"          : "PinFormat",
                     "format"        : "guint32",
                     "public-format" : "MbimPinFormat" },
                   { "name"   : "PinLengthMin",
                     "format" : "guint32" },
                   { "name"   : "PinLengthMax",
                     "format" : "guint32" } ] },

  { "name"     : "Pin List",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.0",
    "query"    : [],
    "response" : [ { "name"        : "PinDescPin1",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescPin2",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescDeviceSimPin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescDeviceFirstSimPin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescNetworkPin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescNetworkSubsetPin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescServiceProviderPin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescCorporatePin",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescSubsidyLock",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" },
                   { "name"        : "PinDescCustom",
                     "format"      : "struct",
                     "struct-type" : "MbimPinDesc" } ] },

  // *********************************************************************************
  { "name"     : "MbimProvider",
    "type"     : "Struct",
    "since"    : "1.2",
    "contents" : [ { "name"   : "ProviderId",
                     "format" : "string" },
                   { "name"          : "ProviderState",
                     "format"        : "guint32",
                     "public-format" : "MbimProviderState" },
                   { "name"   : "ProviderName",
                     "format" : "string" },
                   { "name"          : "CellularClass",
                     "format"        : "guint32",
                     "public-format" : "MbimCellularClass" },
                   { "name"   : "Rssi",
                     "format" : "guint32" },
                   { "name"   : "ErrorRate",
                     "format" : "guint32" } ] },

  { "name"     : "Home Provider",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.2",
    "set"      : [ { "name"        : "Provider",
                     "format"      : "struct" ,
                     "struct-type" : "MbimProvider" } ],
    "query"    : [],
    "response" : [ { "name"        : "Provider",
                     "format"      : "struct",
                     "struct-type" : "MbimProvider" } ] },

  // *********************************************************************************
  { "name"         : "Preferred Providers",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since-ex"     : { "set"          : "1.2",
                       "query"        : "1.2",
                       "response"     : "1.2",
                       "notification" : "1.8" },
    "set"          : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ],
    "query"        : [],
    "response"     : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ],
    "notification" : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ] },

  // *********************************************************************************
  { "name"       : "Visible Providers",
    "service"    : "Basic Connect",
    "type"       : "Command",
    "since"      : "1.2",
    "query"      : [ { "name" : "Action",
                       "format": "guint32",
                       "public-format" : "MbimVisibleProvidersAction" } ],
    "response"   : [ { "name"   : "ProvidersCount",
                       "format" : "guint32" },
                     { "name"             : "Providers",
                       "format"           : "ref-struct-array" ,
                       "struct-type"      : "MbimProvider",
                       "array-size-field" : "ProvidersCount" } ] },

  // *********************************************************************************
  { "name"         : "Register State",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"   : "ProviderId",
                         "format" : "string" },
                       { "name"          : "RegisterAction",
                         "format"        : "guint32",
                         "public-format" : "MbimRegisterAction" },
                       { "name"          : "DataClass",
                         "format"        : "guint32",
                         "public-format" : "MbimDataClass" } ],
    "query"        : [],
    "response"     : [ { "name"          : "NwError",
                         "format"        : "guint32",
                         "public-format" : "MbimNwError" },
                       { "name"          : "RegisterState",
                         "format"        : "guint32",
                         "public-format" : "MbimRegisterState" },
                       { "name"          : "RegisterMode",
                         "format"        : "guint32",
                         "public-format" : "MbimRegisterMode" },
                       { "name"          : "AvailableDataClasses",
                         "format"        : "guint32",
                         "public-format" : "MbimDataClass" },
                       { "name"          : "CurrentCellularClass",
                         "format"        : "guint32",
                         "public-format" : "MbimCellularClass" },
                       { "name"   : "ProviderId",
                         "format" : "string" },
                       { "name"   : "ProviderName",
                         "format" : "string" },
                       { "name"   : "RoamingText",
                         "format" : "string" },
                       { "name"          : "RegistrationFlag",
                         "format"        : "guint32",
                         "public-format" : "MbimRegistrationFlag" } ],
    "notification" : [ { "name"          : "NwError",
                         "format"        : "guint32",
                         "public-format" : "MbimNwError" },
                       { "name"          : "RegisterState",
                         "format"        : "guint32",
                         "public-format" : "MbimRegisterState" },
                       { "name"          : "RegisterMode",
                         "format"        : "guint32",
                         "public-format" : "MbimRegisterMode" },
                       { "name"          : "AvailableDataClasses",
                         "format"        : "guint32",
                         "public-format" : "MbimDataClass" },
                       { "name"          : "CurrentCellularClass",
                         "format"        : "guint32",
                         "public-format" : "MbimCellularClass" },
                       { "name"   : "ProviderId",
                         "format" : "string" },
                       { "name"   : "ProviderName",
                         "format" : "string" },
                       { "name"   : "RoamingText",
                         "format" : "string" },
                       { "name"          : "RegistrationFlag",
                         "format"        : "guint32",
                         "public-format" : "MbimRegistrationFlag" } ] },

  // *********************************************************************************
  { "name"         : "Signal State",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"   : "SignalStrengthInterval",
                         "format" : "guint32" },
                       { "name"   : "RssiThreshold",
                         "format" : "guint32" },
                       { "name"   : "ErrorRateThreshold",
                         "format" : "guint32" } ],
    "query"        : [],
    "response"     : [ { "name"   : "Rssi",
                         "format" : "guint32" },
                       { "name"   : "ErrorRate",
                         "format" : "guint32" },
                       { "name"   : "SignalStrengthInterval",
                         "format" : "guint32" },
                       { "name"   : "RssiThreshold",
                         "format" : "guint32" },
                       { "name"   : "ErrorRateThreshold",
                         "format" : "guint32" } ],
    "notification" : [ { "name"   : "Rssi",
                         "format" : "guint32" },
                       { "name"   : "ErrorRate",
                         "format" : "guint32" },
                       { "name"   : "SignalStrengthInterval",
                         "format" : "guint32" },
                       { "name"   : "RssiThreshold",
                         "format" : "guint32" },
                       { "name"   : "ErrorRateThreshold",
                         "format" : "guint32" } ] },


  // *********************************************************************************
  { "name"         : "Packet Service",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"          : "PacketServiceAction",
                         "format"        : "guint32",
                         "public-format" : "MbimPacketServiceAction" } ],
    "query"        : [],
    "response"     : [ { "name"   : "NwError",
                         "format" : "guint32" },
                       { "name"          : "PacketServiceState",
                         "format"        : "guint32",
                         "public-format" : "MbimPacketServiceState" },
                       { "name"          : "HighestAvailableDataClass",
                         "format"        : "guint32",
                         "public-format" : "MbimDataClass" },
                       { "name"   : "UplinkSpeed",
                         "format" : "guint64" },
                       { "name"   : "DownlinkSpeed",
                         "format" : "guint64" } ],
    "notification" : [ { "name"   : "NwError",
                         "format" : "guint32" },
                       { "name"          : "PacketServiceState",
                         "format"        : "guint32",
                         "public-format" : "MbimPacketServiceState" },
                       { "name"          : "HighestAvailableDataClass",
                         "format"        : "guint32",
                         "public-format" : "MbimDataClass" },
                       { "name"   : "UplinkSpeed",
                         "format" : "guint64" },
                       { "name"   : "DownlinkSpeed",
                         "format" : "guint64" } ] },

  // *********************************************************************************
  { "name"         : "Connect",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "ActivationCommand",
                         "format"        : "guint32",
                         "public-format" : "MbimActivationCommand" },
                       { "name"   : "AccessString",
                         "format" : "string" },
                       { "name"   : "UserName",
                         "format" : "string" },
                       { "name"   : "Password",
                         "format" : "string" },
                       { "name"          : "Compression",
                         "format"        : "guint32",
                         "public-format" : "MbimCompression" },
                       { "name"          : "AuthProtocol",
                         "format"        : "guint32",
                         "public-format" : "MbimAuthProtocol" },
                       { "name"          : "IpType",
                         "format"        : "guint32",
                         "public-format" : "MbimContextIpType" },
                       { "name"   : "ContextType",
                         "format" : "uuid" } ],
    "query"        : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "ActivationState",
                         "format"        : "guint32",
                         "public-format" : "MbimActivationState" },
                       { "name"          : "VoiceCallState",
                         "format"        : "guint32",
                         "public-format" : "MbimVoiceCallState" },
                       { "name"          : "IpType",
                         "format"        : "guint32",
                         "public-format" : "MbimContextIpType" },
                       { "name"   : "ContextType",
                         "format" : "uuid" },
                       { "name"   : "NwError",
                         "format" : "guint32" } ],
    "response"     : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "ActivationState",
                         "format"        : "guint32",
                         "public-format" : "MbimActivationState" },
                       { "name"          : "VoiceCallState",
                         "format"        : "guint32",
                         "public-format" : "MbimVoiceCallState" },
                       { "name"          : "IpType",
                         "format"        : "guint32",
                         "public-format" : "MbimContextIpType" },
                       { "name"   : "ContextType",
                         "format" : "uuid" },
                       { "name"   : "NwError",
                         "format" : "guint32" } ],
    "notification" : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "ActivationState",
                         "format"        : "guint32",
                         "public-format" : "MbimActivationState" },
                       { "name"          : "VoiceCallState",
                         "format"        : "guint32",
                         "public-format" : "MbimVoiceCallState" },
                       { "name"          : "IpType",
                         "format"        : "guint32",
                         "public-format" : "MbimContextIpType" },
                       { "name"   : "ContextType",
                         "format" : "uuid" },
                       { "name"   : "NwError",
                         "format" : "guint32" } ] },

  // *********************************************************************************
  { "name"     : "MbimProvisionedContextElement",
    "type"     : "Struct",
    "since"    : "1.0",
    "contents" : [ { "name"   : "ContextId",
                     "format" : "guint32" },
                   { "name"   : "ContextType",
                     "format" : "uuid" },
                   { "name"   : "AccessString",
                     "format" : "string" },
                   { "name"   : "UserName",
                     "format" : "string" },
                   { "name"   : "Password",
                     "format" : "string" },
                   { "name"          : "Compression",
                     "format"        : "guint32",
                     "public-format" : "MbimCompression" },
                   { "name"          : "AuthProtocol",
                     "format"        : "guint32",
                     "public-format" : "MbimAuthProtocol" } ] },

  { "name"         : "Provisioned Contexts",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "set"          : [ { "name"   : "ContextId",
                         "format" : "guint32" },
                       { "name"   : "ContextType",
                         "format" : "uuid" },
                       { "name"   : "AccessString",
                         "format" : "string" },
                       { "name"   : "UserName",
                         "format" : "string" },
                       { "name"   : "Password",
                         "format" : "string" },
                       { "name"          : "Compression",
                         "format"        : "guint32",
                         "public-format" : "MbimCompression" },
                       { "name"          : "AuthProtocol",
                         "format"        : "guint32",
                         "public-format" : "MbimAuthProtocol" },
                       { "name"   : "ProviderId",
                         "format" : "string" } ],
    "query"        : [],
    "response"     : [ { "name"   : "ProvisionedContextsCount",
                         "format" : "guint32" },
                       { "name"             : "ProvisionedContexts",
                         "format"           : "ref-struct-array",
                         "struct-type"      : "MbimProvisionedContextElement",
                         "array-size-field" : "ProvisionedContextsCount" } ],
    "notification" : [ { "name"   : "ProvisionedContextsCount",
                         "format" : "guint32" },
                       { "name"             : "ProvisionedContexts",
                         "format"           : "ref-struct-array",
                         "struct-type"      : "MbimProvisionedContextElement",
                         "array-size-field" : "ProvisionedContextsCount" } ] },

  // *********************************************************************************

  { "name"     : "Service Activation",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.2",
    "set"      : [ { "name"   : "Buffer",
                     "format" : "unsized-byte-array" } ],
    "response" : [ { "name"          : "NwError",
                     "format"        : "guint32",
                     "public-format" : "MbimNwError" },
                   { "name"   : "Buffer",
                     "format" : "unsized-byte-array" } ] },

  // *********************************************************************************
  { "name"     : "MbimIPv4Element",
    "type"     : "Struct",
    "since"    : "1.0",
    "contents" : [ { "name"   : "OnLinkPrefixLength",
                     "format" : "guint32" },
                   { "name"   : "IPv4Address",
                     "format" : "ipv4" } ] },

  { "name"     : "MbimIPv6Element",
    "type"     : "Struct",
    "since"    : "1.0",
    "contents" : [ { "name"   : "OnLinkPrefixLength",
                     "format" : "guint32" },
                   { "name"   : "IPv6Address",
                     "format" : "ipv6" } ] },

  { "name"         : "IP Configuration",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since"        : "1.0",
    "query"        : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "IPv4ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"          : "IPv6ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"   : "IPv4AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv4Element",
                         "array-size-field" : "IPv4AddressCount" },
                       { "name"   : "IPv6AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv6Element",
                         "array-size-field" : "IPv6AddressCount" },
                       { "name"   : "IPv4Gateway",
                         "format" : "ref-ipv4" },
                       { "name"   : "IPv6Gateway",
                         "format" : "ref-ipv6" },
                       { "name"   : "IPv4DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4DnsServer",
                         "format"           : "ipv4-array",
                         "array-size-field" : "IPv4DnsServerCount" },
                       { "name"   : "IPv6DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6DnsServer",
                         "format"           : "ipv6-array",
                         "array-size-field" : "IPv6DnsServerCount" },
                       { "name"   : "IPv4Mtu",
                         "format" : "guint32" },
                       { "name"   : "IPv6Mtu",
                         "format" : "guint32" } ],
    "response"     : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "IPv4ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"          : "IPv6ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"   : "IPv4AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv4Element",
                         "array-size-field" : "IPv4AddressCount" },
                       { "name"   : "IPv6AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv6Element",
                         "array-size-field" : "IPv6AddressCount" },
                       { "name"   : "IPv4Gateway",
                         "format" : "ref-ipv4" },
                       { "name"   : "IPv6Gateway",
                         "format" : "ref-ipv6" },
                       { "name"   : "IPv4DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4DnsServer",
                         "format"           : "ipv4-array",
                         "array-size-field" : "IPv4DnsServerCount" },
                       { "name"   : "IPv6DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6DnsServer",
                         "format"           : "ipv6-array",
                         "array-size-field" : "IPv6DnsServerCount" },
                       { "name"   : "IPv4Mtu",
                         "format" : "guint32" },
                       { "name"   : "IPv6Mtu",
                         "format" : "guint32" } ],
    "notification" : [ { "name"   : "SessionId",
                         "format" : "guint32" },
                       { "name"          : "IPv4ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"          : "IPv6ConfigurationAvailable",
                         "format"        : "guint32",
                         "public-format" : "MbimIPConfigurationAvailableFlag" },
                       { "name"   : "IPv4AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv4Element",
                         "array-size-field" : "IPv4AddressCount" },
                       { "name"   : "IPv6AddressCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6Address",
                         "format"           : "struct-array",
                         "struct-type"      : "MbimIPv6Element",
                         "array-size-field" : "IPv6AddressCount" },
                       { "name"   : "IPv4Gateway",
                         "format" : "ref-ipv4" },
                       { "name"   : "IPv6Gateway",
                         "format" : "ref-ipv6" },
                       { "name"   : "IPv4DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv4DnsServer",
                         "format"           : "ipv4-array",
                         "array-size-field" : "IPv4DnsServerCount" },
                       { "name"   : "IPv6DnsServerCount",
                         "format" : "guint32" },
                       { "name"             : "IPv6DnsServer",
                         "format"           : "ipv6-array",
                         "array-size-field" : "IPv6DnsServerCount" },
                       { "name"   : "IPv4Mtu",
                         "format" : "guint32" },
                       { "name"   : "IPv6Mtu",
                         "format" : "guint32" } ] },

  // *********************************************************************************
  { "name"     : "MbimDeviceServiceElement",
    "type"     : "Struct",
    "since"    : "1.0",
    "contents" : [ { "name"   : "DeviceServiceId",
                     "format" : "uuid" },
                   { "name"   : "DssPayload",
                     "format" : "guint32" },
                   { "name"   : "MaxDssInstances",
                     "format" : "guint32" },
                   { "name"       : "CidsCount",
                     "format"     : "guint32" },
                   { "name"             : "Cids",
                     "format"           : "guint32-array",
                     "array-size-field" : "CidsCount" } ] },

  { "name"     : "Device Services",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.0",
    "query"    : [],
    "response" : [ { "name"   : "DeviceServicesCount",
                     "format" : "guint32" },
                   { "name"   : "MaxDssSessions",
                     "format" : "guint32" },
                   { "name"             : "DeviceServices",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimDeviceServiceElement",
                     "array-size-field" : "DeviceServicesCount" } ] },

  // *********************************************************************************
  { "name"     : "MbimEventEntry",
    "type"     : "Struct",
    "since"    : "1.4",
    "contents" : [ { "name"   : "DeviceServiceId",
                     "format" : "uuid" },
                   { "name"       : "CidsCount",
                     "format"     : "guint32" },
                   { "name"             : "Cids",
                     "format"           : "guint32-array",
                     "array-size-field" : "CidsCount" } ] },

  { "name"     : "Device Service Subscribe List",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.8",
    "set"      : [ { "name"   : "EventsCount",
                     "format" : "guint32" },
                   { "name"             : "Events",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimEventEntry",
                     "array-size-field" : "EventsCount" } ],
    "response" : [ { "name"   : "EventsCount",
                     "format" : "guint32" },
                   { "name"             : "Events",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimEventEntry",
                     "array-size-field" : "EventsCount" } ] },

  // *********************************************************************************
  { "name"     : "Packet Statistics",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.4",
    "query"    : [],
    "response" : [ { "name"   : "InDiscards",
                     "format" : "guint32" },
                   { "name"   : "InErrors",
                     "format" : "guint32" },
                   { "name"   : "InOctets",
                     "format" : "guint64" },
                   { "name"   : "InPackets",
                     "format" : "guint64" },
                   { "name"   : "OutOctets",
                     "format" : "guint64" },
                   { "name"   : "OutPackets",
                     "format" : "guint64" },
                   { "name"   : "OutErrors",
                     "format" : "guint32" },
                   { "name"   : "OutDiscards",
                     "format" : "guint32" } ] },

  // *********************************************************************************
  { "name"     : "Network Idle Hint",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.4",
    "query"    : [],
    "set"      : [ { "name"          : "State",
                     "format"        : "guint32",
                     "public-format" : "MbimNetworkIdleHintState" } ],
    "response" : [ { "name"          : "State",
                     "format"        : "guint32",
                     "public-format" : "MbimNetworkIdleHintState" } ] },

  // *********************************************************************************
  { "name"         : "Emergency Mode",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since-ex"     : { "set"          : "1.4",
                       "query"        : "1.4",
                       "response"     : "1.4",
                       "notification" : "1.8" },
    "query"        : [],
    "set"          : [ { "name"          : "State",
                         "format"        : "guint32",
                         "public-format" : "MbimEmergencyModeState" } ],
    "response"     : [ { "name"          : "State",
                         "format"        : "guint32",
                         "public-format" : "MbimEmergencyModeState" } ],
    "notification" : [ { "name"          : "State",
                         "format"        : "guint32",
                         "public-format" : "MbimEmergencyModeState" } ] },

  // *********************************************************************************
  { "name"     : "MbimPacketFilter",
    "type"     : "Struct",
    "since"    : "1.4",
    "contents" : [ { "name"   : "FilterSize",
                     "format" : "guint32" },
                   { "name"             : "PacketFilter",
                     "format"           : "ref-byte-array",
                     "array-size-field" : "FilterSize" },
                   { "name"             : "PacketMask",
                     "format"           : "ref-byte-array",
                     "array-size-field" : "FilterSize" } ] },

  { "name"     : "IP Packet Filters",
    "service"  : "Basic Connect",
    "type"     : "Command",
    "since"    : "1.4",
    "query"    : [ { "name"   : "SessionId",
                     "format" : "guint32" },
                   { "name"   : "PacketFiltersCount",
                     "format" : "guint32" },
                   { "name"             : "PacketFilters",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimPacketFilter",
                     "array-size-field" : "PacketFiltersCount" } ],
    "set"      : [ { "name"   : "SessionId",
                     "format" : "guint32" },
                   { "name"   : "PacketFiltersCount",
                     "format" : "guint32" },
                   { "name"             : "PacketFilters",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimPacketFilter",
                     "array-size-field" : "PacketFiltersCount" } ],
    "response" : [ { "name"   : "SessionId",
                     "format" : "guint32" },
                   { "name"   : "PacketFiltersCount",
                     "format" : "guint32" },
                   { "name"             : "PacketFilters",
                     "format"           : "ref-struct-array",
                     "struct-type"      : "MbimPacketFilter",
                     "array-size-field" : "PacketFiltersCount" } ] },

  // *********************************************************************************
  { "name"         : "Multicarrier Providers",
    "service"      : "Basic Connect",
    "type"         : "Command",
    "since-ex"     : { "set"          : "1.4",
                       "query"        : "1.4",
                       "response"     : "1.4",
                       "notification" : "1.8" },
    "set"          : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ],
    "query"        : [],
    "response"     : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ],
    "notification" : [ { "name"   : "ProvidersCount",
                         "format" : "guint32" },
                       { "name"             : "Providers",
                         "format"           : "ref-struct-array" ,
                         "struct-type"      : "MbimProvider",
                         "array-size-field" : "ProvidersCount" } ] }

]
