nas: implement "Get Serving System" request/response

This commit is contained in:
Aleksander Morgado 2012-08-01 13:44:13 +02:00
parent b2bc79f28b
commit fd65ff12d2
2 changed files with 368 additions and 3 deletions

View File

@ -511,6 +511,221 @@
"format" : "guint8",
"public-format" : "gboolean" } ] } } ] },
// *********************************************************************************
{ "name" : "Get Serving System",
"type" : "Message",
"service" : "NAS",
"id" : "0x0024",
"version" : "1.0",
"output" : [ { "common-ref" : "Operation Result" },
{ "name" : "Serving System",
"id" : "0x01",
"mandatory" : "yes",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Registration State",
"format" : "guint8",
"public-format" : "QmiNasRegistrationState" },
{ "name" : "CS Attach State",
"format" : "guint8",
"public-format" : "QmiNasAttachState" },
{ "name" : "PS Attach State",
"format" : "guint8",
"public-format" : "QmiNasAttachState" },
{ "name" : "Selected Network",
"format" : "guint8",
"public-format" : "QmiNasNetworkType" },
{ "name" : "Radio Interfaces",
"format" : "array",
"array-element" : { "format" : "gint8",
"public-format" : "QmiNasRadioInterface" } } ] },
{ "name" : "Roaming Indicator",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiNasRoamingIndicatorStatus" },
{ "name" : "Data Service Capability",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "array",
"array-element" : { "format" : "guint8",
"public-format" : "QmiNasDataCapability" } },
{ "name" : "Current PLMN",
"id" : "0x12",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "MCC",
"format" : "guint16" },
{ "name" : "MNC",
"format" : "guint16" },
{ "name" : "Description",
"format" : "string" } ] },
{ "name" : "CDMA System ID",
"id" : "0x13",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "SID",
"format" : "guint16" },
{ "name" : "NID",
"format" : "guint16" } ] },
{ "name" : "CDMA Base Station Info",
"id" : "0x14",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Base Station ID",
"format" : "guint16" },
{ "name" : "Base Station Latitude",
"format" : "gint32" },
{ "name" : "Base Station Longitude",
"format" : "gint32" } ] },
{ "name" : "Roaming Indicator List",
"id" : "0x15",
"mandatory" : "no",
"type" : "TLV",
"format" : "array",
"array-element" : { "name" : "Element",
"format" : "struct",
"contents" : [ { "name" : "Radio Interface",
"format" : "guint8",
"public-format" : "QmiNasRadioInterface" },
{ "name" : "Roaming Indicator",
"format" : "guint8",
"public-format" : "QmiNasRoamingIndicatorStatus" } ] } },
{ "name" : "Default Roaming Indicator",
"id" : "0x16",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiNasRoamingIndicatorStatus" },
{ "name" : "Time Zone 3GPP2",
"id" : "0x17",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Leap Seconds",
"format" : "guint8" },
{ "name" : "Local Time Offset",
"format" : "gint8" },
{ "name" : "Daylight Saving Time",
"format" : "guint8",
"public-format" : "gboolean" } ] },
{ "name" : "CDMA P Rev",
"id" : "0x18",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8" },
{ "name" : "Time Zone 3GPP",
"id" : "0x1A",
"mandatory" : "no",
"type" : "TLV",
"format" : "gint8" },
{ "name" : "Daylight Saving Time Adjustment 3GPP",
"id" : "0x1B",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8" },
{ "name" : "LAC 3GPP",
"id" : "0x1C",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint16" },
{ "name" : "CID 3GPP",
"id" : "0x1D",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint32" },
{ "name" : "Concurrent Service Info 3GPP2",
"id" : "0x1E",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean"},
{ "name" : "PRL Indicator 3GPP2",
"id" : "0x1F",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean"},
{ "name" : "Dual Transfer Mode Supported",
"id" : "0x20",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean"},
{ "name" : "Detailed Service Status",
"id" : "0x21",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Status",
"format" : "guint8",
"public-format" : "QmiNasServiceStatus" },
{ "name" : "Capability",
"format" : "guint8",
"public-format" : "QmiNasNetworkServiceDomain" },
{ "name" : "HDR Status",
"format" : "guint8",
"public-format" : "QmiNasServiceStatus" },
{ "name" : "HDR Hybrid",
"format" : "guint8",
"public-format" : "gboolean" },
{ "name" : "Forbidden",
"format" : "guint8",
"public-format" : "gboolean" } ] },
{ "name" : "CDMA System Info",
"id" : "0x22",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "MCC",
"format" : "guint16" },
{ "name" : "IMSI_11_12",
"format" : "guint8" } ] },
{ "name" : "HDR Personality",
"id" : "0x23",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiNasHdrPersonality"},
{ "name" : "LTE TAC",
"id" : "0x24",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint16" },
{ "name" : "Call Barring Status",
"id" : "0x25",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "CS Status",
"format" : "gint32",
"public-format" : "QmiNasCallBarringStatus" },
{ "name" : "PS Status",
"format" : "gint32",
"public-format" : "QmiNasCallBarringStatus" } ] },
{ "name" : "UMTS Primary Scrambling Code",
"id" : "0x26",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint16" },
{ "name" : "MNC PCS Digit Include Status",
"id" : "0x27",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "MCC",
"format" : "guint16" },
{ "name" : "MNC",
"format" : "guint16" },
{ "name" : "Includes PCS Digit",
"format" : "guint8",
"public-format" : "gboolean" } ] } ] },
// *********************************************************************************
{ "name" : "Set Technology Preference",
"type" : "Message",

View File

@ -216,16 +216,20 @@ typedef enum {
/**
* QmiNasNetworkServiceDomain:
* @QMI_NAS_NETWORK_SERVICE_DOMAIN_NONE: No service.
* @QMI_NAS_NETWORK_SERVICE_DOMAIN_CS: Circuit switched.
* @QMI_NAS_NETWORK_SERVICE_DOMAIN_PS: Packet switched.
* @QMI_NAS_NETWORK_SERVICE_DOMAIN_CS_PS: Circuit and packet switched.
* @QMI_NAS_NETWORK_SERVICE_DOMAIN_UNKNOWN: Unknown service..
*
* Network Service Domain.
*/
typedef enum {
QMI_NAS_NETWORK_SERVICE_DOMAIN_CS = 1,
QMI_NAS_NETWORK_SERVICE_DOMAIN_PS = 2,
QMI_NAS_NETWORK_SERVICE_DOMAIN_CS_PS = 3,
QMI_NAS_NETWORK_SERVICE_DOMAIN_NONE = 0x00,
QMI_NAS_NETWORK_SERVICE_DOMAIN_CS = 0x01,
QMI_NAS_NETWORK_SERVICE_DOMAIN_PS = 0x02,
QMI_NAS_NETWORK_SERVICE_DOMAIN_CS_PS = 0x03,
QMI_NAS_NETWORK_SERVICE_DOMAIN_UNKNOWN = 0x04,
} QmiNasNetworkServiceDomain;
/**
@ -326,6 +330,152 @@ typedef enum {
QMI_NAS_NETWORK_STATUS_NOT_PREFERRED = 1 << 7
} QmiNasNetworkStatus;
/*****************************************************************************/
/* Helper enums for the 'QMI NAS Get Serving System' request/response */
/**
* QmiNasRegistrationState:
* @QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED: Not registered.
* @QMI_NAS_REGISTRATION_STATE_REGISTERED: Registered.
* @QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING: Searching.
* @QMI_NAS_REGISTRATION_STATE_REGISTRATION_DENIED: Registration denied.
* @QMI_NAS_REGISTRATION_STATE_UNKNOWN: Unknown.
*
* Status of the network registration.
*/
typedef enum {
QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED = 0x00,
QMI_NAS_REGISTRATION_STATE_REGISTERED = 0x01,
QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING = 0x02,
QMI_NAS_REGISTRATION_STATE_REGISTRATION_DENIED = 0x03,
QMI_NAS_REGISTRATION_STATE_UNKNOWN = 0x04
} QmiNasRegistrationState;
/**
* QmiNasAttachState:
* @QMI_NAS_ATTACH_STATE_UNKNOWN: Unknown attach state.
* @QMI_NAS_ATTACH_STATE_ATTACHED: Attached.
* @QMI_NAS_ATTACH_STATE_DETACHED: Detached.
*
* Domain attach state.
*/
typedef enum {
QMI_NAS_ATTACH_STATE_UNKNOWN = 0x00,
QMI_NAS_ATTACH_STATE_ATTACHED = 0x01,
QMI_NAS_ATTACH_STATE_DETACHED = 0x02,
} QmiNasAttachState;
/**
* QmiNasNetworkType:
* @QMI_NAS_NETWORK_TYPE_UNKNOWN: Unknown.
* @QMI_NAS_NETWORK_TYPE_3GPP: 3GPP network.
* @QMI_NAS_NETWORK_TYPE_3GPP2: 3GPP2 network.
*
* Type of network.
*/
typedef enum {
QMI_NAS_NETWORK_TYPE_UNKNOWN = 0x00,
QMI_NAS_NETWORK_TYPE_3GPP = 0x01,
QMI_NAS_NETWORK_TYPE_3GPP2 = 0x02
} QmiNasNetworkType;
/**
* QmiNasRoamingIndicatorStatus:
* @QMI_NAS_ROAMING_INDICATOR_STATUS_ON: Roaming.
* @QMI_NAS_ROAMING_INDICATOR_STATUS_OFF: Home.
*
* Status of the roaming indication.
*/
typedef enum {
QMI_NAS_ROAMING_INDICATOR_STATUS_ON = 0x00,
QMI_NAS_ROAMING_INDICATOR_STATUS_OFF = 0x01,
/* next values only for 3GPP2 */
} QmiNasRoamingIndicatorStatus;
/**
* QmiNasDataCapability:
* @QMI_NAS_DATA_CAPABILITY_GPRS: GPRS.
* @QMI_NAS_DATA_CAPABILITY_EDGE: EDGE.
* @QMI_NAS_DATA_CAPABILITY_HSDPA: HSDPA.
* @QMI_NAS_DATA_CAPABILITY_HSUPA: HSUPA.
* @QMI_NAS_DATA_CAPABILITY_WCDMA: WCDMA.
* @QMI_NAS_DATA_CAPABILITY_CDMA: CDMA.
* @QMI_NAS_DATA_CAPABILITY_EVDO_REV_0: EV-DO revision 0.
* @QMI_NAS_DATA_CAPABILITY_EVDO_REV_A: EV-DO revision A.
* @QMI_NAS_DATA_CAPABILITY_GSM: GSM.
* @QMI_NAS_DATA_CAPABILITY_EVDO_REV_B: EV-DO revision B.
* @QMI_NAS_DATA_CAPABILITY_LTE: LTE.
* @QMI_NAS_DATA_CAPABILITY_HSDPA_PLUS: HSDPA+.
* @QMI_NAS_DATA_CAPABILITY_DC_HSDPA_PLUS: DC-HSDPA+.
*
* Data capability of the network.
*/
typedef enum {
QMI_NAS_DATA_CAPABILITY_GPRS = 0x01,
QMI_NAS_DATA_CAPABILITY_EDGE = 0x02,
QMI_NAS_DATA_CAPABILITY_HSDPA = 0x03,
QMI_NAS_DATA_CAPABILITY_HSUPA = 0x04,
QMI_NAS_DATA_CAPABILITY_WCDMA = 0x05,
QMI_NAS_DATA_CAPABILITY_CDMA = 0x06,
QMI_NAS_DATA_CAPABILITY_EVDO_REV_0 = 0x07,
QMI_NAS_DATA_CAPABILITY_EVDO_REV_A = 0x08,
QMI_NAS_DATA_CAPABILITY_GSM = 0x09,
QMI_NAS_DATA_CAPABILITY_EVDO_REV_B = 0x0A,
QMI_NAS_DATA_CAPABILITY_LTE = 0x0B,
QMI_NAS_DATA_CAPABILITY_HSDPA_PLUS = 0x0C,
QMI_NAS_DATA_CAPABILITY_DC_HSDPA_PLUS = 0x0D
} QmiNasDataCapability;
/**
* QmiNasServiceStatus:
* @QMI_NAS_SERVICE_STATUS_NONE: No service.
* @QMI_NAS_SERVICE_STATUS_LIMITED: Limited service.
* @QMI_NAS_SERVICE_STATUS_AVAILABLE: Service available.
* @QMI_NAS_SERVICE_STATUS_LIMITED_REGIONAL: Limited regional service.
* @QMI_NAS_SERVICE_STATUS_POWER_SAVE: Device in power save mode.
*
* Status of the service.
*/
typedef enum {
QMI_NAS_SERVICE_STATUS_NONE = 0x00,
QMI_NAS_SERVICE_STATUS_LIMITED = 0x01,
QMI_NAS_SERVICE_STATUS_AVAILABLE = 0x02,
QMI_NAS_SERVICE_STATUS_LIMITED_REGIONAL = 0x03,
QMI_NAS_SERVICE_STATUS_POWER_SAVE = 0x04
} QmiNasServiceStatus;
/**
* QmiNasHdrPersonality:
* @QMI_NAS_HDR_PERSONALITY_UNKNOWN: Unknown.
* @QMI_NAS_HDR_PERSONALITY_HRPD: HRPD.
* @QMI_NAS_HDR_PERSONALITY_EHRPD: eHRPD.
*
* HDR personality type.
*/
typedef enum {
QMI_NAS_HDR_PERSONALITY_UNKNOWN = 0x00,
QMI_NAS_HDR_PERSONALITY_HRPD = 0x01,
QMI_NAS_HDR_PERSONALITY_EHRPD = 0x02,
} QmiNasHdrPersonality;
/**
* QmiNasCallBarringStatus:
* @QMI_NAS_CALL_BARRING_STATUS_NORMAL_ONLY: Normal calls only.
* @QMI_NAS_CALL_BARRING_STATUS_EMERGENCY_ONLY: Emergency calls only.
* @QMI_NAS_CALL_BARRING_STATUS_NO_CALLS: No calls allowed.
* @QMI_NAS_CALL_BARRING_STATUS_ALL_CALLS: All calls allowed.
* @QMI_NAS_CALL_BARRING_STATUS_UNKNOWN: Unknown.
*
* Status of the call barring functionality.
*/
typedef enum {
QMI_NAS_CALL_BARRING_STATUS_NORMAL_ONLY = 0x00,
QMI_NAS_CALL_BARRING_STATUS_EMERGENCY_ONLY = 0x01,
QMI_NAS_CALL_BARRING_STATUS_NO_CALLS = 0x02,
QMI_NAS_CALL_BARRING_STATUS_ALL_CALLS = 0x03,
QMI_NAS_CALL_BARRING_STATUS_UNKNOWN = -1
} QmiNasCallBarringStatus;
/*****************************************************************************/
/* Helper enums for the 'QMI NAS Get Technology Preference' request/response */