qcom

package
v0.0.0-...-ac3d764 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	QMUXHeaderIfType             = 0x01
	QMUXHeaderControlFlagRequest = 0x00

	QMUXIfType             = QMUXHeaderIfType
	QMUXControlFlagRequest = QMUXHeaderControlFlagRequest
)

QMUX header constants

View Source
const (
	MaxEncodedMessageLength = 0xffff

	QMUXHeaderLength         = 1 + 5
	QMIControlHeaderLength   = 6
	QMIServiceHeaderLength   = 7
	QRTRInternalHeaderLength = 1 + 5

	MaxQMUXControlTLVLength = MaxEncodedMessageLength - QMUXHeaderLength - QMIControlHeaderLength
	MaxQMUXServiceTLVLength = MaxEncodedMessageLength - QMUXHeaderLength - QMIServiceHeaderLength
	MaxQRTRServiceTLVLength = MaxEncodedMessageLength - QRTRInternalHeaderLength - QMIServiceHeaderLength
	MaxQRTRQMIMessageLength = QMIServiceHeaderLength + MaxQRTRServiceTLVLength
)
View Source
const (
	DMSFirmwareImageModem DMSFirmwareImageType = iota
	DMSFirmwareImagePRI

	// Longer aliases mirror the names used by the QMI IDL documentation.
	DMSFirmwareImageTypeModem = DMSFirmwareImageModem
	DMSFirmwareImageTypePRI   = DMSFirmwareImagePRI
)
View Source
const (
	DMSBootImageDownloadNormal           DMSBootImageDownloadMode = 0
	DMSBootImageDownloadBootAndRecovery  DMSBootImageDownloadMode = 1
	DMSBootImageDownloadModeNormal                                = DMSBootImageDownloadNormal
	DMSBootImageDownloadModeBootRecovery                          = DMSBootImageDownloadBootAndRecovery
)
View Source
const (
	WDSDataEndpointReserved = DataEndpointReserved
	WDSDataEndpointHSIC     = DataEndpointHSIC
	WDSDataEndpointHSUSB    = DataEndpointHSUSB
	WDSDataEndpointPCIe     = DataEndpointPCIe
	WDSDataEndpointEmbedded = DataEndpointEmbedded
	WDSDataEndpointBAMDMUX  = DataEndpointBAMDMUX
)
View Source
const (
	WDSVerboseCallEndReasonInternalPDNIPv4CallDisallowed     int16 = 208
	WDSVerboseCallEndReasonInternalPDNIPv6CallDisallowed     int16 = 210
	WDSVerboseCallEndReasonInternalCallAlreadyPresent        int16 = 236
	WDSVerboseCallEndReasonInternalInterfaceInUse            int16 = 237
	WDSVerboseCallEndReasonInternalInterfaceInUseConfigMatch int16 = 241
)

Internal verbose call-end reasons returned in the WDS type-2 namespace.

View Source
const (
	WDSVerboseCallEndReason3GPPOperatorDeterminedBarring    int16 = 8
	WDSVerboseCallEndReason3GPPLLCSNDCPFailure              int16 = 25
	WDSVerboseCallEndReason3GPPInsufficientResources        int16 = 26
	WDSVerboseCallEndReason3GPPUnknownAPN                   int16 = 27
	WDSVerboseCallEndReason3GPPUnknownPDP                   int16 = 28
	WDSVerboseCallEndReason3GPPAuthenticationFailed         int16 = 29
	WDSVerboseCallEndReason3GPPGGSNReject                   int16 = 30
	WDSVerboseCallEndReason3GPPActivationReject             int16 = 31
	WDSVerboseCallEndReason3GPPOptionNotSupported           int16 = 32
	WDSVerboseCallEndReason3GPPOptionUnsubscribed           int16 = 33
	WDSVerboseCallEndReason3GPPOptionTemporarilyOutOfOrder  int16 = 34
	WDSVerboseCallEndReason3GPPNSAPIAlreadyUsed             int16 = 35
	WDSVerboseCallEndReason3GPPRegularDeactivation          int16 = 36
	WDSVerboseCallEndReason3GPPQoSNotAccepted               int16 = 37
	WDSVerboseCallEndReason3GPPNetworkFailure               int16 = 38
	WDSVerboseCallEndReason3GPPUMTSReactivationRequested    int16 = 39
	WDSVerboseCallEndReason3GPPFeatureNotSupported          int16 = 40
	WDSVerboseCallEndReason3GPPTFTSemanticError             int16 = 41
	WDSVerboseCallEndReason3GPPTFTSyntaxError               int16 = 42
	WDSVerboseCallEndReason3GPPUnknownPDPContext            int16 = 43
	WDSVerboseCallEndReason3GPPFilterSemanticError          int16 = 44
	WDSVerboseCallEndReason3GPPFilterSyntaxError            int16 = 45
	WDSVerboseCallEndReason3GPPPDPWithoutActiveTFT          int16 = 46
	WDSVerboseCallEndReason3GPPIPv4OnlyAllowed              int16 = 50
	WDSVerboseCallEndReason3GPPIPv6OnlyAllowed              int16 = 51
	WDSVerboseCallEndReason3GPPSingleAddressBearerOnly      int16 = 52
	WDSVerboseCallEndReason3GPPInvalidTransactionID         int16 = 81
	WDSVerboseCallEndReason3GPPMessageIncorrectSemantic     int16 = 95
	WDSVerboseCallEndReason3GPPInvalidMandatoryInformation  int16 = 96
	WDSVerboseCallEndReason3GPPMessageTypeUnsupported       int16 = 97
	WDSVerboseCallEndReason3GPPMessageTypeIncompatibleState int16 = 98
	WDSVerboseCallEndReason3GPPUnknownInformationElement    int16 = 99
	WDSVerboseCallEndReason3GPPConditionalInformationError  int16 = 100
	WDSVerboseCallEndReason3GPPMessageProtocolStateMismatch int16 = 101
	WDSVerboseCallEndReason3GPPProtocolError                int16 = 111
	WDSVerboseCallEndReason3GPPAPNTypeConflict              int16 = 112
)

3GPP verbose call-end reasons returned in the WDS type-6 namespace.

View Source
const DefaultIMSPDNAPN = "ims"
View Source
const (
	// Network scans routinely exceed the normal request timeout while the modem
	// searches every enabled RAT and band.
	DefaultNASNetworkScanTimeout = 3 * time.Minute
)
View Source
const (
	DefaultRequestTimeout = 30 * time.Second
)

Variables

View Source
var ErrWDSIPv4Only = errors.New("WDS network allows IPv4 only")

ErrWDSIPv4Only reports that the network restricted a dual-stack WDS call to IPv4.

View Source
var ErrWDSIPv6Only = errors.New("WDS network allows IPv6 only")

ErrWDSIPv6Only reports that the network restricted a dual-stack WDS call to IPv6.

View Source
var ErrWDSProfileNotFound = errors.New("WDS profile not found")

Functions

func RequestDeadline

func RequestDeadline(ctx context.Context, timeout time.Duration) (time.Time, bool)

RequestDeadline returns the earlier of the context deadline and the request timeout. A non-positive timeout leaves an existing context deadline intact.

func ResultError

func ResultError(tlvs tlv.TLVs) error

func ResultTLVError

func ResultTLVError(item tlv.TLV) error

Types

type AllocateClientIDRequest

type AllocateClientIDRequest struct {
	TransactionID uint16
	ServiceType   ServiceType
}

func (AllocateClientIDRequest) Request

func (r AllocateClientIDRequest) Request() Request

type AllocateClientIDResponse

type AllocateClientIDResponse struct {
	ClientID uint8
}

func (*AllocateClientIDResponse) UnmarshalTLVs

func (r *AllocateClientIDResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

type ApplicationState

type ApplicationState byte
const (
	ApplicationStateUnknown ApplicationState = iota
	ApplicationStateDetected
	ApplicationStatePIN1OrUPINRequired
	ApplicationStatePUK1OrUPINRequired
	ApplicationStateCheckPersonalization
	ApplicationStatePIN1Blocked
	ApplicationStateIllegal
	ApplicationStateReady
)

type ApplicationType

type ApplicationType byte
const (
	ApplicationTypeUnknown ApplicationType = iota
	ApplicationTypeSIM
	ApplicationTypeUSIM
	ApplicationTypeRUIM
	ApplicationTypeCSIM
	ApplicationTypeISIM
)

type AuthContext

type AuthContext byte
const (
	AuthContext3G     AuthContext = 3
	AuthContextIMSAKA AuthContext = 11
)

type AuthenticateRequest

type AuthenticateRequest struct {
	Session Session
	AID     []byte
	Context AuthContext
	Rand    []byte
	AUTN    []byte
}

func (AuthenticateRequest) MarshalBinary

func (r AuthenticateRequest) MarshalBinary() ([]byte, error)

func (*AuthenticateRequest) UnmarshalBinary

func (r *AuthenticateRequest) UnmarshalBinary(data []byte) error

type CAT

type CAT struct {
	// contains filtered or unexported fields
}

func NewCAT

func NewCAT(client *Client) *CAT

func (*CAT) CachedProactiveCommand

func (c *CAT) CachedProactiveCommand(ctx context.Context, commandID CATCachedCommandID) (CATCommand, error)

CachedProactiveCommand retrieves a recovery copy of a persistent proactive command. The returned command is historical state and must not receive a terminal response.

func (*CAT) Commands

func (c *CAT) Commands(ctx context.Context, eventMask, fullFunctionMask uint32) (<-chan CATCommand, error)

func (*CAT) Configuration

func (c *CAT) Configuration(ctx context.Context) (CATConfiguration, error)

func (*CAT) Envelope

func (c *CAT) Envelope(ctx context.Context, envelope []byte, envType uint16) (EnvelopeResponse, error)

func (*CAT) EventConfirmation

func (c *CAT) EventConfirmation(ctx context.Context, confirmation CATEventConfirmation) error

func (*CAT) ForceClaimCommands

func (c *CAT) ForceClaimCommands(ctx context.Context, config CATEventClaimConfig) (<-chan CATCommand, CATEventClaim, error)

ForceClaimCommands installs the indication watch before force-claiming the requested events, so cached commands replayed during registration are not lost. Releasing another CAT client is disruptive and must be explicitly requested by the caller.

func (*CAT) ForceClaimEvents

func (c *CAT) ForceClaimEvents(ctx context.Context, config CATEventClaimConfig) (CATEventClaim, error)

func (*CAT) ServiceState

func (c *CAT) ServiceState(ctx context.Context) (CATServiceState, error)

func (*CAT) SetConfiguration

func (c *CAT) SetConfiguration(ctx context.Context, config CATConfiguration) error

func (*CAT) TerminalProfile

func (c *CAT) TerminalProfile(ctx context.Context) ([]byte, error)

func (*CAT) TerminalResponse

func (c *CAT) TerminalResponse(ctx context.Context, ref uint32, response []byte) error

type CATCachedCommandID

type CATCachedCommandID uint32

CATCachedCommandID identifies a proactive command retained by the modem for recovery after the host STK service restarts.

const (
	// CATCachedCommandSetupMenu identifies a cached SET UP MENU command.
	CATCachedCommandSetupMenu CATCachedCommandID = iota + 1
	// CATCachedCommandSetupEventList identifies a cached SET UP EVENT LIST command.
	CATCachedCommandSetupEventList
	// CATCachedCommandSetupIdleModeText identifies a cached SET UP IDLE MODE TEXT command.
	CATCachedCommandSetupIdleModeText
)

type CATCommand

type CATCommand struct {
	Ref                   uint32
	Data                  []byte
	ExpectedResponse      CATExpectedResponse
	ExpectedResponseKnown bool
}

func (CATCommand) MarshalBinary

func (c CATCommand) MarshalBinary() ([]byte, error)

func (*CATCommand) ReadFrom

func (c *CATCommand) ReadFrom(r io.Reader) (int64, error)

func (*CATCommand) UnmarshalBinary

func (c *CATCommand) UnmarshalBinary(data []byte) error

func (*CATCommand) UnmarshalTLVs

func (c *CATCommand) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes a raw command from a QMI CAT indication.

func (CATCommand) WriteTo

func (c CATCommand) WriteTo(w io.Writer) (int64, error)

type CATConfigMode

type CATConfigMode uint8
const (
	CATConfigDisabled      CATConfigMode = 0x00
	CATConfigGobi          CATConfigMode = 0x01
	CATConfigAndroid       CATConfigMode = 0x02
	CATConfigDecoded       CATConfigMode = 0x03
	CATConfigDecodedPull   CATConfigMode = 0x04
	CATConfigCustomRaw     CATConfigMode = 0x05
	CATConfigCustomDecoded CATConfigMode = 0x06
)

func (CATConfigMode) String

func (m CATConfigMode) String() string

type CATConfiguration

type CATConfiguration struct {
	Mode          CATConfigMode
	CustomProfile []byte
}

type CATEventClaim

type CATEventClaim struct {
	Service          ServiceType
	ClientID         uint8
	ReleasedClientID uint8
	StateBefore      CATServiceState
}

type CATEventClaimConfig

type CATEventClaimConfig struct {
	RawMask            uint32
	FullFunctionMask   uint32
	CandidateClientIDs []uint8
}

type CATEventConfirmation

type CATEventConfirmation struct {
	UserConfirmed *bool
	IconDisplayed *bool
}

type CATExpectedResponse

type CATExpectedResponse uint32

CATExpectedResponse identifies the response requested by a CAT indication.

const (
	CATExpectedResponseTerminalResponse CATExpectedResponse = iota
	CATExpectedResponseEventConfirmation
)

type CATServiceState

type CATServiceState struct {
	RawGlobalMask     uint32
	RawClientMask     uint32
	DecodedGlobalMask uint32
	DecodedClientMask uint32
	FullFunctionMask  uint32
}

func (*CATServiceState) UnmarshalTLVs

func (s *CATServiceState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a CAT Get Service State response.

type CTLDataFormatConfig

type CTLDataFormatConfig struct {
	QoSHeader     CTLQoSHeader
	LinkProtocols CTLLinkProtocol
}

CTLDataFormatConfig describes the legacy CTL data format negotiation. A zero LinkProtocols value omits the optional protocol mask.

type CTLLinkProtocol

type CTLLinkProtocol uint16

CTLLinkProtocol identifies a link-layer format supported by the host.

const (
	CTLLinkProtocolEthernet CTLLinkProtocol = 1 << iota
	CTLLinkProtocolRawIP
)

type CTLQoSHeader

type CTLQoSHeader uint8

CTLQoSHeader controls whether data packets include a QMI QoS flow header.

const (
	CTLQoSHeaderAbsent CTLQoSHeader = iota
	CTLQoSHeaderPresent
)

type Card

type Card struct {
	State        CardState
	UPINState    PINState
	UPINRetries  byte
	UPUKRetries  byte
	ErrorCode    CardError
	Applications []CardApplication
}

type CardApplication

type CardApplication struct {
	Type                          ApplicationType
	State                         ApplicationState
	PersonalizationState          PersonalizationState
	PersonalizationFeature        PersonalizationFeature
	PersonalizationRetries        byte
	PersonalizationUnblockRetries byte
	AID                           []byte
	UPINReplacesPIN1              byte
	PIN1State                     PINState
	PIN1Retries                   byte
	PUK1Retries                   byte
	PIN2State                     PINState
	PIN2Retries                   byte
	PUK2Retries                   byte
}

type CardError

type CardError byte
const (
	CardErrorUnknown CardError = iota
	CardErrorPowerDown
	CardErrorPoll
	CardErrorNoATRReceived
	CardErrorVoltageMismatch
	CardErrorParity
	CardErrorPossiblyRemoved
	CardErrorTechnical
	CardErrorNullBytes
	CardErrorSAPConnected
	CardErrorCommandTimeout
)

type CardProtocol

type CardProtocol uint32
const (
	CardProtocolUnknown CardProtocol = iota
	CardProtocolICC
	CardProtocolUICC
)

type CardState

type CardState byte
const (
	CardStateAbsent CardState = iota
	CardStatePresent
	CardStateError
)

type CardStatus

type CardStatus struct {
	IndexGWPrimary   uint16
	Index1XPrimary   uint16
	IndexGWSecondary uint16
	Index1XSecondary uint16
	Cards            []Card
}

func (CardStatus) Ready

func (s CardStatus) Ready() bool

func (*CardStatus) UnmarshalTLVs

func (s *CardStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a UIM card-status response or indication.

type ChangeProvisioningSessionRequest

type ChangeProvisioningSessionRequest struct {
	Session  Session
	Activate bool
	Slot     uint8
	AID      []byte
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client owns a QMI transport and every QMUX client ID allocated through it. Closing Client invalidates any stateful session created from it.

func NewClient

func NewClient(transport Transport, opts ...Option) (*Client, error)

NewClient creates a QCOM QMI client. Service client IDs are allocated on first use and released by Close.

func (*Client) ATR

func (c *Client) ATR(ctx context.Context) ([]byte, error)

func (*Client) ActivateAutomatic

func (c *Client) ActivateAutomatic(ctx context.Context, activationCode string) error

ActivateAutomatic requests automatic service activation.

func (*Client) ActivateManual

func (c *Client) ActivateManual(ctx context.Context, req DMSManualActivationRequest) error

ActivateManual requests manual CDMA service activation.

func (*Client) ActivateSlot

func (c *Client) ActivateSlot(ctx context.Context) error

func (*Client) ActivationState

func (c *Client) ActivationState(ctx context.Context) (DMSActivationState, error)

ActivationState returns the CDMA activation state reported by DMS.

func (*Client) Authenticate

func (c *Client) Authenticate(ctx context.Context, req AuthenticateRequest) ([]byte, error)

func (*Client) BandCapabilities

func (c *Client) BandCapabilities(ctx context.Context) (DMSBandCapabilities, error)

BandCapabilities returns legacy masks and explicit LTE/NR5G bands.

func (*Client) BootImageDownloadMode

func (c *Client) BootImageDownloadMode(ctx context.Context) (DMSBootImageDownloadMode, error)

BootImageDownloadMode returns the modem's current next-boot mode.

func (*Client) CDMAPositionInfo

func (c *Client) CDMAPositionInfo(ctx context.Context) (NASCDMAPositionInfo, error)

CDMAPositionInfo returns serving and neighboring CDMA base-station positions.

func (*Client) CTLSetDataFormat

func (c *Client) CTLSetDataFormat(ctx context.Context, config CTLDataFormatConfig) (CTLLinkProtocol, error)

CTLSetDataFormat negotiates the legacy QMUX link protocol.

func (*Client) CTLSetInstanceID

func (c *Client) CTLSetInstanceID(ctx context.Context, instanceID uint8) (uint16, error)

CTLSetInstanceID assigns the host instance and returns its QMI link ID.

func (*Client) CTLSync

func (c *Client) CTLSync(ctx context.Context) error

CTLSync synchronizes the QMI control point with the modem.

func (*Client) CTLWatchSync

func (c *Client) CTLWatchSync(ctx context.Context) (<-chan struct{}, error)

CTLWatchSync subscribes to modem-initiated CTL synchronization events.

func (*Client) CardStatus

func (c *Client) CardStatus(ctx context.Context) (CardStatus, error)

func (*Client) CellLocationInfo

func (c *Client) CellLocationInfo(ctx context.Context) (NASCellLocationInfo, error)

CellLocationInfo returns current serving-cell and neighbor measurements.

func (*Client) ChangePIN

func (c *Client) ChangePIN(ctx context.Context, req PINChangeRequest) (PINOperationResult, error)

ChangePIN replaces a PIN after verifying its current value.

func (*Client) ChangeProvisioningSession

func (c *Client) ChangeProvisioningSession(ctx context.Context, req ChangeProvisioningSessionRequest) error

func (*Client) Close

func (c *Client) Close() error

Close cancels in-flight work, releases allocated QMUX client IDs, and closes the transport. It is safe to call more than once.

func (*Client) CloseLogicalChannel

func (c *Client) CloseLogicalChannel(ctx context.Context, channel uint8) error

func (*Client) ConfigureSignalInfo

func (c *Client) ConfigureSignalInfo(ctx context.Context, config NASSignalThresholdConfig) error

ConfigureSignalInfo sets threshold crossings that trigger Signal Info indications.

func (*Client) ConfigureSignalInfo2

func (c *Client) ConfigureSignalInfo2(ctx context.Context, config NASSignalThresholdConfig2) error

ConfigureSignalInfo2 sets per-RAT LTE, NR5G, and WCDMA signal thresholds.

func (*Client) DMSAltNetworkConfig

func (c *Client) DMSAltNetworkConfig(ctx context.Context) (bool, error)

DMSAltNetworkConfig returns the legacy alternate-network configuration.

func (*Client) DMSBindSubscription

func (c *Client) DMSBindSubscription(ctx context.Context, subscription DMSSubscription) error

DMSBindSubscription associates the DMS client with a modem subscription.

func (*Client) DMSBoundSubscription

func (c *Client) DMSBoundSubscription(ctx context.Context) (DMSGetBindSubscriptionResponse, error)

DMSBoundSubscription returns the subscription associated with the DMS client.

func (*Client) DMSChangePIN

DMSChangePIN replaces a legacy DMS UIM PIN.

func (*Client) DMSERIFile

func (c *Client) DMSERIFile(ctx context.Context) ([]byte, error)

DMSERIFile reads the modem's Extended Roaming Indicator file.

func (*Client) DMSGetCKStatus

func (c *Client) DMSGetCKStatus(ctx context.Context, facility DMSUIMFacility) (DMSCKStatus, error)

DMSGetCKStatus queries a legacy DMS UIM control-key status.

func (*Client) DMSICCID

func (c *Client) DMSICCID(ctx context.Context) (string, error)

DMSICCID returns the ICCID reported by the legacy DMS UIM interface.

func (*Client) DMSIMSI

func (c *Client) DMSIMSI(ctx context.Context) (string, error)

DMSIMSI returns the IMSI reported by the legacy DMS UIM interface.

func (*Client) DMSMACAddress

func (c *Client) DMSMACAddress(ctx context.Context, device DMSMACDevice) (net.HardwareAddr, error)

DMSMACAddress returns the factory address for WLAN or Bluetooth.

func (*Client) DMSPINStatuses

func (c *Client) DMSPINStatuses(ctx context.Context) (DMSPINStatusResponse, error)

DMSPINStatuses returns the current status of legacy DMS UIM PINs.

func (*Client) DMSPRLVersion

func (c *Client) DMSPRLVersion(ctx context.Context) (DMSPRLVersion, error)

DMSPRLVersion returns the active Preferred Roaming List version.

func (*Client) DMSReset

func (c *Client) DMSReset(ctx context.Context) error

DMSReset resets state owned by this DMS client.

func (*Client) DMSSetAltNetworkConfig

func (c *Client) DMSSetAltNetworkConfig(ctx context.Context, enabled bool) error

DMSSetAltNetworkConfig updates the legacy alternate-network configuration.

func (*Client) DMSSetCKProtection

func (c *Client) DMSSetCKProtection(ctx context.Context, req DMSCKProtectionRequest) (DMSCKOperationResult, error)

DMSSetCKProtection activates or deactivates a legacy UIM facility.

func (*Client) DMSSetEventReport

func (c *Client) DMSSetEventReport(ctx context.Context, config DMSEventReportConfig) error

DMSSetEventReport configures DMS state-change indications.

func (*Client) DMSSetPINProtection

func (c *Client) DMSSetPINProtection(ctx context.Context, req DMSPINProtectionRequest) (DMSPINOperationResult, error)

DMSSetPINProtection enables or disables a legacy DMS UIM PIN.

func (*Client) DMSSetSPC

func (c *Client) DMSSetSPC(ctx context.Context, currentSPC, newSPC string) error

DMSSetSPC replaces the six-digit service programming code.

func (*Client) DMSSetTime

func (c *Client) DMSSetTime(ctx context.Context, milliseconds uint64) error

DMSSetTime sets the user clock in milliseconds since the GPS epoch.

func (*Client) DMSSetUserLockCode

func (c *Client) DMSSetUserLockCode(ctx context.Context, currentCode, newCode string) error

DMSSetUserLockCode replaces the legacy device user-lock code.

func (*Client) DMSSetUserLockState

func (c *Client) DMSSetUserLockState(ctx context.Context, enabled bool, code string) error

DMSSetUserLockState enables or disables the legacy device user lock.

func (*Client) DMSUIMGetPINStatus

func (c *Client) DMSUIMGetPINStatus(ctx context.Context) (DMSPINStatusResponse, error)

DMSUIMGetPINStatus is an alias for DMSPINStatuses.

func (*Client) DMSUIMState

func (c *Client) DMSUIMState(ctx context.Context) (DMSUIMState, error)

DMSUIMState returns the legacy DMS view of UIM initialization.

func (*Client) DMSUnblockCK

func (c *Client) DMSUnblockCK(ctx context.Context, req DMSCKUnblockRequest) (DMSCKOperationResult, error)

DMSUnblockCK unblocks a legacy UIM personalization facility.

func (*Client) DMSUnblockPIN

func (c *Client) DMSUnblockPIN(ctx context.Context, req DMSPINUnblockRequest) (DMSPINOperationResult, error)

DMSUnblockPIN unblocks a legacy DMS UIM PIN with its PUK.

func (*Client) DMSUserData

func (c *Client) DMSUserData(ctx context.Context) ([]byte, error)

DMSUserData reads the legacy persistent user-data blob.

func (*Client) DMSUserLockState

func (c *Client) DMSUserLockState(ctx context.Context) (bool, error)

DMSUserLockState returns the legacy device user-lock state.

func (*Client) DMSValidateSPC

func (c *Client) DMSValidateSPC(ctx context.Context, spc string) error

DMSValidateSPC authenticates a six-digit service programming code.

func (*Client) DMSVerifyPIN

DMSVerifyPIN verifies a legacy DMS UIM PIN.

func (*Client) DMSWatchEvents

func (c *Client) DMSWatchEvents(ctx context.Context) (<-chan DMSEvent, error)

DMSWatchEvents subscribes to common DMS power, UIM, activation, operating mode, hardware-radio-switch, and PRL initialization changes.

func (*Client) DMSWriteUserData

func (c *Client) DMSWriteUserData(ctx context.Context, data []byte) error

DMSWriteUserData replaces the legacy persistent user-data blob.

func (*Client) DPMCapabilities

func (c *Client) DPMCapabilities(ctx context.Context) (DPMCapabilities, error)

DPMCapabilities returns features supported by the data-port mapper.

func (*Client) DPMClosePort

func (c *Client) DPMClosePort(ctx context.Context, config DPMClosePortConfig) error

DPMClosePort closes the requested modem control and data ports.

func (*Client) DPMOpenPort

func (c *Client) DPMOpenPort(ctx context.Context, config DPMOpenPortConfig) error

DPMOpenPort opens the requested modem control and data ports.

func (*Client) DRX

func (c *Client) DRX(ctx context.Context) (NASDRX, error)

DRX returns the modem's configured legacy DRX cycle.

func (*Client) DSDAPNInfo

func (c *Client) DSDAPNInfo(ctx context.Context, apnType DSDAPNType) (DSDAPNInfo, error)

DSDAPNInfo reads the APN assigned to a standardized APN type.

func (*Client) DSDBindSubscription

func (c *Client) DSDBindSubscription(ctx context.Context, subscription DSDSubscription) error

DSDBindSubscription associates the DSD client with a modem subscription.

func (*Client) DSDBoundSubscription

func (c *Client) DSDBoundSubscription(ctx context.Context) (DSDSubscription, error)

DSDBoundSubscription returns the subscription associated with the DSD client.

func (*Client) DSDCurrentDDS

func (c *Client) DSDCurrentDDS(ctx context.Context) (DSDCurrentDDS, error)

DSDCurrentDDS returns the current default data subscription.

func (*Client) DSDRequestSwitchDDS

func (c *Client) DSDRequestSwitchDDS(ctx context.Context, subscription DSDSubscription, switchType DSDSwitchType) error

DSDRequestSwitchDDS requests a DDS change without waiting for its result indication.

func (*Client) DSDSetAPNType

func (c *Client) DSDSetAPNType(ctx context.Context, config DSDAPNTypeConfig) error

DSDSetAPNType assigns standardized APN uses to an APN.

func (*Client) DSDSetIndicationReport

func (c *Client) DSDSetIndicationReport(ctx context.Context, config DSDIndicationConfig) error

DSDSetIndicationReport updates general DSD indication settings.

func (*Client) DSDSetSystemStatusReport

func (c *Client) DSDSetSystemStatusReport(ctx context.Context, config DSDSystemStatusReportConfig) error

DSDSetSystemStatusReport updates system-status indication settings.

func (*Client) DSDSwitchDDS

func (c *Client) DSDSwitchDDS(ctx context.Context, subscription DSDSubscription, switchType DSDSwitchType) (DSDSwitchResult, error)

DSDSwitchDDS requests a DDS change and waits for the modem's result indication.

func (*Client) DSDSystemStatus

func (c *Client) DSDSystemStatus(ctx context.Context) (DSDSystemStatus, error)

DSDSystemStatus reads the modem's current global data-system status.

func (*Client) DSDWatchCurrentDDS

func (c *Client) DSDWatchCurrentDDS(ctx context.Context) (<-chan DSDCurrentDDS, error)

DSDWatchCurrentDDS subscribes to current default-data-subscription changes.

func (*Client) DSDWatchSystemStatus

func (c *Client) DSDWatchSystemStatus(ctx context.Context) (<-chan DSDSystemStatus, error)

DSDWatchSystemStatus subscribes to global system-status changes.

func (*Client) DeleteStoredImage

func (c *Client) DeleteStoredImage(ctx context.Context, image DMSFirmwareImage) error

DeleteStoredImage removes one firmware image from modem storage.

func (*Client) Depersonalize

Depersonalize deactivates or unblocks one SIM network-lock category.

func (*Client) DeviceCapabilities

func (c *Client) DeviceCapabilities(ctx context.Context) (DMSDeviceCapabilities, error)

DeviceCapabilities returns the modem's common data, voice, SIM, RAT, and IMS capabilities.

func (*Client) DeviceTime

func (c *Client) DeviceTime(ctx context.Context) (DMSDeviceTime, error)

DeviceTime returns raw GPS-epoch time values reported by the modem.

func (*Client) ENDCConfig

func (c *Client) ENDCConfig(ctx context.Context) (NASENDCConfig, error)

ENDCConfig returns LTE/NR dual-connectivity configuration.

func (*Client) EncryptedSerialNumbers

func (c *Client) EncryptedSerialNumbers(ctx context.Context) (DMSEncryptedSerialNumbers, error)

EncryptedSerialNumbers returns opaque encrypted device identifiers.

func (*Client) FactorySKU

func (c *Client) FactorySKU(ctx context.Context) (string, error)

FactorySKU returns the factory-provisioned SKU string.

func (*Client) FileAttributes

func (c *Client) FileAttributes(ctx context.Context, file File) (FileAttributes, error)

func (*Client) FirmwarePreference

func (c *Client) FirmwarePreference(ctx context.Context) (DMSFirmwarePreference, error)

FirmwarePreference returns the modem's selected firmware images.

func (*Client) ForceNetworkSearch

func (c *Client) ForceNetworkSearch(ctx context.Context) error

ForceNetworkSearch asks the modem to immediately search for service.

func (*Client) HardwareRevision

func (c *Client) HardwareRevision(ctx context.Context) (string, error)

HardwareRevision returns the modem hardware revision.

func (*Client) HomeNetwork

func (c *Client) HomeNetwork(ctx context.Context) (NASHomeNetwork, error)

HomeNetwork returns the provisioned home network.

func (*Client) ICCID

func (c *Client) ICCID(ctx context.Context) (string, error)

ICCID is an alias for DMSICCID.

func (*Client) IMSABindSubscription

func (c *Client) IMSABindSubscription(ctx context.Context, subscription IMSASubscription) error

IMSABindSubscription binds the IMSA client to one modem subscription.

func (*Client) IMSABoundSubscription

func (c *Client) IMSABoundSubscription(ctx context.Context) (IMSAGetBindResponse, error)

IMSABoundSubscription returns the subscription bound to the IMSA client.

func (*Client) IMSARegisterIndications

func (c *Client) IMSARegisterIndications(ctx context.Context, config IMSAIndicationConfig) error

IMSARegisterIndications updates IMSA status-indication subscriptions.

func (*Client) IMSAStatus

func (c *Client) IMSAStatus(ctx context.Context) (IMSAStatus, error)

IMSAStatus reads IMS registration and VoIP service state from QMI IMSA.

func (*Client) IMSBindSubscription

func (c *Client) IMSBindSubscription(ctx context.Context, subscription IMSSubscription) error

IMSBindSubscription binds the IMS Settings client to one modem subscription.

func (*Client) IMSDCMPDPActivate

func (c *Client) IMSDCMPDPActivate(ctx context.Context, request IMSDCMPDPActivateRequest) (IMSDCMPDPActivateResponse, error)

IMSDCMPDPActivate requests an IMS packet-data connection.

func (*Client) IMSDCMPDPDeactivate

func (c *Client) IMSDCMPDPDeactivate(ctx context.Context, pdpID uint8, instance *IMSDCMInstance) (IMSDCMPDPDeactivateResponse, error)

IMSDCMPDPDeactivate requests teardown of an IMS packet-data connection.

func (*Client) IMSI

func (c *Client) IMSI(ctx context.Context) (string, error)

IMSI is an alias for DMSIMSI.

func (*Client) IMSPEnablerState

func (c *Client) IMSPEnablerState(ctx context.Context) (IMSPEnablerState, error)

IMSPEnablerState returns IMS presence initialization and registration state.

func (*Client) IMSPolicyManagerSettings

func (c *Client) IMSPolicyManagerSettings(ctx context.Context) (IMSGetPolicyManagerSettingsResponse, error)

IMSPolicyManagerSettings returns current IMS Policy Manager settings.

func (*Client) IMSRegisterIndications

func (c *Client) IMSRegisterIndications(ctx context.Context, config IMSIndicationConfig) error

IMSRegisterIndications updates IMS Settings indication subscriptions.

func (*Client) IMSSTestMode

func (c *Client) IMSSTestMode(ctx context.Context) (bool, error)

IMSSTestMode returns whether the modem's internal IMS registration is disabled.

func (*Client) IMSServices

func (c *Client) IMSServices(ctx context.Context) (IMSGetServicesEnabledResponse, error)

IMSServices returns current IMS service settings.

func (*Client) IMSWatchPolicyManagerSettings

func (c *Client) IMSWatchPolicyManagerSettings(ctx context.Context) (<-chan IMSPolicyManagerSettings, error)

IMSWatchPolicyManagerSettings subscribes to Policy Manager setting changes.

func (*Client) IMSWatchServicesEnabled

func (c *Client) IMSWatchServicesEnabled(ctx context.Context) (<-chan IMSServicesEnabled, error)

IMSWatchServicesEnabled subscribes to IMS service-setting changes.

func (*Client) IncrementalNetworkScan

func (c *Client) IncrementalNetworkScan(
	ctx context.Context,
	config NASIncrementalNetworkScanConfig,
) (<-chan NASIncrementalNetworkScanUpdate, error)

IncrementalNetworkScan starts a scan and streams partial results until a terminal status arrives or ctx is canceled.

func (*Client) LOCDeleteAssistanceData

func (c *Client) LOCDeleteAssistanceData(ctx context.Context, config LOCDeleteAssistanceDataConfig) error

LOCDeleteAssistanceData removes selected cached location assistance data.

func (*Client) LOCEngineLock

func (c *Client) LOCEngineLock(ctx context.Context) (LOCLockType, error)

LOCEngineLock returns the active location-engine lock policy.

func (*Client) LOCInjectPosition

func (c *Client) LOCInjectPosition(ctx context.Context, config LOCInjectPositionConfig) error

LOCInjectPosition supplies a coarse external position to the engine.

func (*Client) LOCInjectPredictedOrbitsPart

func (c *Client) LOCInjectPredictedOrbitsPart(
	ctx context.Context,
	part LOCAssistanceDataPart,
	format *LOCPredictedOrbitsDataFormat,
) (LOCAssistanceDataPartResult, error)

LOCInjectPredictedOrbitsPart injects one predicted-orbits fragment and waits for its asynchronous acknowledgement.

func (*Client) LOCInjectUTCTime

func (c *Client) LOCInjectUTCTime(ctx context.Context, config LOCInjectUTCTimeConfig) error

LOCInjectUTCTime supplies coarse UTC time to the location engine.

func (*Client) LOCInjectXTRAPart

func (c *Client) LOCInjectXTRAPart(ctx context.Context, part LOCAssistanceDataPart) (LOCAssistanceDataPartResult, error)

LOCInjectXTRAPart injects one XTRA fragment and waits for its asynchronous acknowledgement.

func (*Client) LOCNMEATypes

func (c *Client) LOCNMEATypes(ctx context.Context) (LOCNMEAType, error)

LOCNMEATypes returns the NMEA sentence families enabled in the engine.

func (*Client) LOCOperationMode

func (c *Client) LOCOperationMode(ctx context.Context) (LOCOperationMode, error)

LOCOperationMode returns the engine's positioning mode.

func (*Client) LOCPredictedOrbitsDataSource

func (c *Client) LOCPredictedOrbitsDataSource(ctx context.Context) (LOCPredictedOrbitsSource, error)

LOCPredictedOrbitsDataSource returns assistance download limits and server candidates.

func (*Client) LOCPredictedOrbitsDataValidity

func (c *Client) LOCPredictedOrbitsDataValidity(ctx context.Context) (LOCPredictedOrbitsValidity, error)

LOCPredictedOrbitsDataValidity returns the modem's injected-data lifetime.

func (*Client) LOCRegisterEvents

func (c *Client) LOCRegisterEvents(ctx context.Context, config LOCRegisterEventsConfig) error

LOCRegisterEvents updates the caller-owned event mask while preserving bits required by active watchers.

func (*Client) LOCServer

func (c *Client) LOCServer(ctx context.Context, query LOCServerQuery) (LOCAssistanceServer, error)

LOCServer returns an assisted-location server selected by the query.

func (*Client) LOCSetEngineLock

func (c *Client) LOCSetEngineLock(ctx context.Context, lock LOCLockType) error

LOCSetEngineLock changes which location sessions the modem accepts.

func (*Client) LOCSetNMEATypes

func (c *Client) LOCSetNMEATypes(ctx context.Context, types LOCNMEAType) error

LOCSetNMEATypes selects the NMEA sentence families emitted by the engine.

func (*Client) LOCSetOperationMode

func (c *Client) LOCSetOperationMode(ctx context.Context, mode LOCOperationMode) error

LOCSetOperationMode selects the engine's positioning mode.

func (*Client) LOCSetServer

func (c *Client) LOCSetServer(ctx context.Context, config LOCServerConfig) error

LOCSetServer updates an assisted-location server and waits for the modem's asynchronous completion status.

func (*Client) LOCStart

func (c *Client) LOCStart(ctx context.Context, config LOCStartConfig) error

LOCStart starts a location tracking session.

func (*Client) LOCStop

func (c *Client) LOCStop(ctx context.Context, sessionID uint8) error

LOCStop stops a location tracking session.

func (*Client) LOCWatchEngineState

func (c *Client) LOCWatchEngineState(ctx context.Context) (<-chan LOCEngineState, error)

LOCWatchEngineState subscribes to location-engine state changes.

func (*Client) LOCWatchFixRecurrence

func (c *Client) LOCWatchFixRecurrence(ctx context.Context) (<-chan LOCFixRecurrence, error)

LOCWatchFixRecurrence subscribes to fix-session recurrence changes.

func (*Client) LOCWatchGNSSSatelliteInfo

func (c *Client) LOCWatchGNSSSatelliteInfo(ctx context.Context) (<-chan LOCGNSSSatelliteInfo, error)

LOCWatchGNSSSatelliteInfo subscribes to GNSS satellite-view changes.

func (*Client) LOCWatchInjectPositionRequests

func (c *Client) LOCWatchInjectPositionRequests(ctx context.Context) (<-chan LOCPositionInjectionRequest, error)

LOCWatchInjectPositionRequests subscribes to coarse-position requests.

func (*Client) LOCWatchInjectPredictedOrbitsRequests

func (c *Client) LOCWatchInjectPredictedOrbitsRequests(ctx context.Context) (<-chan LOCInjectPredictedOrbitsRequest, error)

LOCWatchInjectPredictedOrbitsRequests subscribes to assistance-data requests.

func (*Client) LOCWatchInjectTimeRequests

func (c *Client) LOCWatchInjectTimeRequests(ctx context.Context) (<-chan LOCInjectTimeRequest, error)

LOCWatchInjectTimeRequests subscribes to time-injection requests.

func (*Client) LOCWatchNMEA

func (c *Client) LOCWatchNMEA(ctx context.Context) (<-chan string, error)

LOCWatchNMEA subscribes to raw NMEA sentences. Starting and stopping the positioning session remains under the caller's control.

func (*Client) LOCWatchPositionReports

func (c *Client) LOCWatchPositionReports(ctx context.Context) (<-chan LOCPositionReport, error)

LOCWatchPositionReports subscribes to standard position reports.

func (*Client) LTECarrierAggregationInfo

func (c *Client) LTECarrierAggregationInfo(ctx context.Context) (NASLTECarrierAggregationInfo, error)

LTECarrierAggregationInfo returns the active LTE primary and secondary carriers.

func (*Client) ListStoredImages

func (c *Client) ListStoredImages(ctx context.Context) (DMSStoredImages, error)

ListStoredImages is an alias for StoredImages.

func (*Client) MSISDN

func (c *Client) MSISDN(ctx context.Context) (DMSGetMSISDNResponse, error)

MSISDN returns the voice number and related subscriber identifiers reported by QMI DMS.

func (*Client) Manufacturer

func (c *Client) Manufacturer(ctx context.Context) (string, error)

Manufacturer returns the modem manufacturer reported by QMI DMS.

func (*Client) ModelID

func (c *Client) ModelID(ctx context.Context) (string, error)

ModelID returns the modem model identifier reported by QMI DMS.

func (*Client) NASAttachDetach

func (c *Client) NASAttachDetach(ctx context.Context, action NASPSAttachAction) error

NASAttachDetach requests an immediate packet-domain attach or detach.

func (*Client) NASBindSubscription

func (c *Client) NASBindSubscription(ctx context.Context, subscription NASSubscription) error

NASBindSubscription associates the NAS client with a modem subscription.

func (*Client) NASReset

func (c *Client) NASReset(ctx context.Context) error

NASReset resets the NAS service state.

func (*Client) NASServingSystem

func (c *Client) NASServingSystem(ctx context.Context) (NASServingSystem, error)

NASServingSystem reads the current QMI NAS serving-system fields.

func (*Client) NASSetEventReport

func (c *Client) NASSetEventReport(ctx context.Context, config NASSetEventReportConfig) error

NASSetEventReport configures legacy NAS state-change indications.

func (*Client) NASSetIndicationRegistration

func (c *Client) NASSetIndicationRegistration(ctx context.Context, config NASIndicationConfig) error

NASSetIndicationRegistration changes common NAS indication subscriptions.

func (*Client) NASWatchCurrentPLMNName

func (c *Client) NASWatchCurrentPLMNName(ctx context.Context) (<-chan NASCurrentPLMNName, error)

NASWatchCurrentPLMNName subscribes to current operator-name changes.

func (*Client) NASWatchEDRXParameters

func (c *Client) NASWatchEDRXParameters(ctx context.Context) (<-chan NASEDRXParameters, error)

NASWatchEDRXParameters subscribes to negotiated eDRX parameter changes.

func (*Client) NASWatchErrorRate

func (c *Client) NASWatchErrorRate(ctx context.Context) (<-chan NASErrorRateMeasurement, error)

NASWatchErrorRate subscribes to RAT-specific legacy error-rate changes.

func (*Client) NASWatchNetworkReject

func (c *Client) NASWatchNetworkReject(ctx context.Context) (<-chan NASNetworkReject, error)

NASWatchNetworkReject subscribes to network registration rejection details.

func (*Client) NASWatchNetworkTime

func (c *Client) NASWatchNetworkTime(ctx context.Context) (<-chan NASNetworkTimeUpdate, error)

NASWatchNetworkTime subscribes to network-provided civil-time changes.

func (*Client) NASWatchOperatorName

func (c *Client) NASWatchOperatorName(ctx context.Context) (<-chan NASOperatorNameData, error)

NASWatchOperatorName subscribes to legacy SIM and network operator-name data.

func (*Client) NASWatchRFBandInfo

func (c *Client) NASWatchRFBandInfo(ctx context.Context) (<-chan NASRFBandInfo, error)

NASWatchRFBandInfo subscribes to current radio-band changes.

func (*Client) NASWatchServingSystem

func (c *Client) NASWatchServingSystem(ctx context.Context) (<-chan NASServingSystem, error)

NASWatchServingSystem subscribes to registration and serving-cell changes.

func (*Client) NASWatchSignalInfo

func (c *Client) NASWatchSignalInfo(ctx context.Context) (<-chan NASSignalInfo, error)

NASWatchSignalInfo subscribes to per-RAT signal measurement changes.

func (*Client) NASWatchSystemInfo

func (c *Client) NASWatchSystemInfo(ctx context.Context) (<-chan NASSysInfo, error)

NASWatchSystemInfo subscribes to service, serving-cell, and voice/SMS domain changes.

func (*Client) NASWatchSystemSelection

func (c *Client) NASWatchSystemSelection(ctx context.Context) (<-chan NASSystemSelectionPreference, error)

NASWatchSystemSelection subscribes to modem selection-policy changes.

func (*Client) NetworkScan

func (c *Client) NetworkScan(ctx context.Context, config NASNetworkScanConfig) (NASNetworkScan, error)

NetworkScan performs a synchronous visible-network scan.

func (*Client) NetworkTime

func (c *Client) NetworkTime(ctx context.Context) (NASNetworkTimes, error)

NetworkTime returns the latest network-provided 3GPP and 3GPP2 times.

func (*Client) OMACancelSession

func (c *Client) OMACancelSession(ctx context.Context) error

OMACancelSession cancels the active OMA session.

func (*Client) OMAFeatureSettings

func (c *Client) OMAFeatureSettings(ctx context.Context) (OMAFeatureSettings, error)

OMAFeatureSettings reads the modem's OMA feature configuration.

func (*Client) OMAReset

func (c *Client) OMAReset(ctx context.Context) error

OMAReset resets the OMA service state.

func (*Client) OMASendSelection

func (c *Client) OMASendSelection(ctx context.Context, sessionID uint16, accept bool) error

OMASendSelection accepts or rejects a network-initiated OMA alert.

func (*Client) OMASessionInfo

func (c *Client) OMASessionInfo(ctx context.Context) (OMASessionInfo, error)

OMASessionInfo reads the current or previous OMA session information.

func (*Client) OMASetEventReport

func (c *Client) OMASetEventReport(ctx context.Context, config OMAEventReportConfig) error

OMASetEventReport updates selected OMA event-report settings.

func (*Client) OMASetFeatureSettings

func (c *Client) OMASetFeatureSettings(ctx context.Context, update OMAFeatureSettingsUpdate) error

OMASetFeatureSettings updates selected OMA features.

func (*Client) OMAStartSession

func (c *Client) OMAStartSession(ctx context.Context, sessionType OMASessionType) error

OMAStartSession starts an OMA device-management session.

func (*Client) OMAWatchEvents

func (c *Client) OMAWatchEvents(ctx context.Context) (<-chan OMAEvent, error)

OMAWatchEvents subscribes to network-initiated alerts and session-state changes. Canceling ctx releases the shared modem registration.

func (*Client) OpenIMSPDN

func (c *Client) OpenIMSPDN(ctx context.Context, cfg IMSPDNConfig) (*IMSPDNSession, error)

OpenIMSPDN starts an IMS PDN and reads the matching NAS voice state. When IPPreference leaves the family to the modem, a 3GPP IPv4-only or IPv6-only response starts one new WDS call with that family. Info reports the family negotiated by the successful call.

func (*Client) OpenLogicalChannel

func (c *Client) OpenLogicalChannel(ctx context.Context, aid []byte) (uint8, error)

func (*Client) OpenLogicalChannelWithConfig

func (c *Client) OpenLogicalChannelWithConfig(ctx context.Context, config UIMOpenLogicalChannelConfig) (OpenLogicalChannelResponse, error)

OpenLogicalChannelWithConfig opens an application channel and returns its select response.

func (*Client) OpenPDN

func (c *Client) OpenPDN(ctx context.Context, cfg PDNConfig) (*PDNSession, error)

OpenPDN starts a general QMI WDS packet-data call. It does not allocate a NAS client or apply IMS defaults.

func (*Client) OpenPDNs

func (c *Client) OpenPDNs(ctx context.Context, configs []PDNConfig) ([]PDNOpenResult, error)

OpenPDNs prepares every WDS client first, then writes Start Network requests in config order before awaiting any response. Qualcomm dual-stack calls use this ordering so IPv4 and IPv6 share one mux without serializing on the first family becoming fully connected. A transport without ordered dispatch is rejected before modem state is changed. Individual failures are returned in result order; err is non-nil when setup fails or no PDN opens successfully.

func (*Client) OperatingMode

func (c *Client) OperatingMode(ctx context.Context) (DMSOperatingMode, error)

OperatingMode reads the current QMI DMS modem operating mode.

func (*Client) OperatingModeInfo

func (c *Client) OperatingModeInfo(ctx context.Context) (DMSGetOperatingModeResponse, error)

OperatingModeInfo reads the modem operating mode and its optional offline and hardware-restriction details.

func (*Client) OperatorNameData

func (c *Client) OperatorNameData(ctx context.Context) (NASOperatorNameData, error)

OperatorNameData returns legacy SIM and network operator-name sources.

func (*Client) PBMAllCapabilities

func (c *Client) PBMAllCapabilities(ctx context.Context) (PBMAllCapabilities, error)

PBMAllCapabilities reads capabilities for every available PBM session.

func (*Client) PBMCapabilities

func (c *Client) PBMCapabilities(ctx context.Context, session PBMSessionType, phonebook PBMPhonebookType) (PBMCapabilities, error)

PBMCapabilities reads capabilities for the selected session and phonebook mask.

func (*Client) PBMEmergencyList

func (c *Client) PBMEmergencyList(ctx context.Context) (PBMEmergencyList, error)

PBMEmergencyList reads the modem's consolidated emergency-number list.

func (*Client) PBMSetIndicationRegistration

func (c *Client) PBMSetIndicationRegistration(ctx context.Context, mask PBMEventRegistrationMask) error

PBMSetIndicationRegistration updates the PBM indication event mask.

func (*Client) PDCActivateConfiguration

func (c *Client) PDCActivateConfiguration(ctx context.Context, activation PDCConfigActivation) error

PDCActivateConfiguration activates the pending configuration for a store. A regular activation may reboot the modem before it emits its completion indication; callers should treat transport removal according to device lifecycle policy.

func (*Client) PDCConfigurationInfo

func (c *Client) PDCConfigurationInfo(ctx context.Context, config PDCConfig) (PDCConfigInfo, error)

PDCConfigurationInfo returns metadata for one stored configuration.

func (*Client) PDCConfigurationLimits

func (c *Client) PDCConfigurationLimits(ctx context.Context, configType PDCConfigurationType) (PDCConfigLimits, error)

PDCConfigurationLimits returns storage use for one configuration type.

func (*Client) PDCConfigurations

func (c *Client) PDCConfigurations(ctx context.Context, configType PDCConfigurationType) ([]PDCConfig, error)

PDCConfigurations lists stored configurations of the requested type.

func (*Client) PDCDeactivateConfiguration

func (c *Client) PDCDeactivateConfiguration(ctx context.Context, deactivation PDCConfigDeactivation) error

PDCDeactivateConfiguration deactivates the active configuration for a store.

func (*Client) PDCDefaultConfigurationInfo

func (c *Client) PDCDefaultConfigurationInfo(ctx context.Context, configType PDCConfigurationType) (PDCConfigInfo, error)

PDCDefaultConfigurationInfo returns metadata for the embedded default.

func (*Client) PDCDeleteConfiguration

func (c *Client) PDCDeleteConfiguration(ctx context.Context, config PDCConfig) error

PDCDeleteConfiguration deletes one stored configuration.

func (*Client) PDCLoadConfiguration

func (c *Client) PDCLoadConfiguration(ctx context.Context, load PDCConfigLoad) error

PDCLoadConfiguration uploads one complete configuration in bounded frames.

func (*Client) PDCRegister

func (c *Client) PDCRegister(ctx context.Context, config PDCIndicationConfig) error

PDCRegister updates selected PDC indication settings.

func (*Client) PDCReset

func (c *Client) PDCReset(ctx context.Context) error

PDCReset resets this control point's PDC service state.

func (*Client) PDCSelectConfiguration

func (c *Client) PDCSelectConfiguration(ctx context.Context, selection PDCConfigSelection) error

PDCSelectConfiguration makes one stored configuration pending.

func (*Client) PDCSelectedConfiguration

func (c *Client) PDCSelectedConfiguration(ctx context.Context, query PDCSelectionQuery) (PDCSelectedConfig, error)

PDCSelectedConfiguration returns active and pending configuration IDs.

func (*Client) PDCWatchConfigChanges

func (c *Client) PDCWatchConfigChanges(ctx context.Context) (<-chan PDCConfig, error)

PDCWatchConfigChanges subscribes to selected-configuration changes.

func (*Client) PDCWatchRefresh

func (c *Client) PDCWatchRefresh(ctx context.Context) (<-chan PDCRefreshEvent, error)

PDCWatchRefresh subscribes to modem configuration refresh events.

func (*Client) PDSAGPSConfig

func (c *Client) PDSAGPSConfig(ctx context.Context, networkMode PDSNetworkMode) (PDSAGPSConfig, error)

PDSAGPSConfig returns the A-GPS server configuration for a network mode.

func (*Client) PDSAutoTrackingState

func (c *Client) PDSAutoTrackingState(ctx context.Context) (bool, error)

PDSAutoTrackingState returns whether automatic tracking is enabled.

func (*Client) PDSDefaultTrackingSession

func (c *Client) PDSDefaultTrackingSession(ctx context.Context) (PDSDefaultTrackingSession, error)

PDSDefaultTrackingSession returns the modem's default positioning parameters.

func (*Client) PDSGPSServiceState

func (c *Client) PDSGPSServiceState(ctx context.Context) (PDSGPSServiceState, error)

PDSGPSServiceState returns the GPS engine and tracking-session states.

func (*Client) PDSReset

func (c *Client) PDSReset(ctx context.Context) error

PDSReset resets this control point's PDS service state.

func (*Client) PDSSetAGPSConfig

func (c *Client) PDSSetAGPSConfig(ctx context.Context, config PDSAGPSConfigUpdate) error

PDSSetAGPSConfig updates selected A-GPS server fields.

func (*Client) PDSSetAutoTrackingState

func (c *Client) PDSSetAutoTrackingState(ctx context.Context, enabled bool) error

PDSSetAutoTrackingState enables or disables automatic tracking.

func (*Client) PDSSetDefaultTrackingSession

func (c *Client) PDSSetDefaultTrackingSession(ctx context.Context, session PDSDefaultTrackingSession) error

PDSSetDefaultTrackingSession updates the modem's default positioning parameters.

func (*Client) PDSSetEventReport

func (c *Client) PDSSetEventReport(ctx context.Context, config PDSEventReportConfig) error

PDSSetEventReport configures PDS event indications.

func (*Client) PDSSetGPSServiceState

func (c *Client) PDSSetGPSServiceState(ctx context.Context, enabled bool) error

PDSSetGPSServiceState enables or disables the GPS engine.

func (*Client) PDSWatchEvents

func (c *Client) PDSWatchEvents(ctx context.Context) (<-chan PDSEvent, error)

PDSWatchEvents subscribes to NMEA, extended NMEA, and positioning-session status events. Canceling ctx releases the shared modem registration.

func (*Client) PDSWatchGPSReady

func (c *Client) PDSWatchGPSReady(ctx context.Context) (<-chan struct{}, error)

PDSWatchGPSReady subscribes to the legacy empty GPS Ready indication.

func (*Client) PLMNName

func (c *Client) PLMNName(ctx context.Context, req NASPLMNNameRequest) (NASPLMNName, error)

PLMNName queries the modem's operator-name sources for one PLMN.

func (*Client) PowerOffSIM

func (c *Client) PowerOffSIM(ctx context.Context, slot uint8) error

func (*Client) PowerOnSIM

func (c *Client) PowerOnSIM(ctx context.Context, req PowerOnSIMRequest) error

func (*Client) PowerState

func (c *Client) PowerState(ctx context.Context) (DMSPowerState, error)

PowerState returns the current device power and battery state.

func (*Client) PreferredNetworks

func (c *Client) PreferredNetworks(ctx context.Context) (NASPreferredNetworks, error)

PreferredNetworks returns user and static preferred PLMN lists.

func (*Client) QoSBindDataPort

func (c *Client) QoSBindDataPort(ctx context.Context, config QoSDataPortConfig) error

QoSBindDataPort binds this QoS control point to a data channel.

func (*Client) QoSBindSubscription

func (c *Client) QoSBindSubscription(ctx context.Context, subscription QoSSubscription) error

QoSBindSubscription binds this QoS control point to a subscription.

func (*Client) QoSBoundSubscription

func (c *Client) QoSBoundSubscription(ctx context.Context) (QoSSubscription, error)

QoSBoundSubscription reads the subscription bound to this QoS control point.

func (*Client) QoSFlowStatus

func (c *Client) QoSFlowStatus(ctx context.Context, flowID uint32) (QoSFlowStatus, error)

QoSFlowStatus reads the current status of one negotiated flow.

func (*Client) QoSNetworkSupported

func (c *Client) QoSNetworkSupported(ctx context.Context) (bool, error)

QoSNetworkSupported reports whether the active network supports QoS.

func (*Client) QoSReset

func (c *Client) QoSReset(ctx context.Context) error

QoSReset resets this control point's QoS service state.

func (*Client) QoSWatchFlowStatus

func (c *Client) QoSWatchFlowStatus(ctx context.Context) (<-chan QoSFlowStatusUpdate, error)

QoSWatchFlowStatus subscribes to status changes for flows owned by this control point.

func (*Client) QoSWatchNetworkStatus

func (c *Client) QoSWatchNetworkStatus(ctx context.Context) (<-chan bool, error)

QoSWatchNetworkStatus subscribes to changes in network QoS support.

func (*Client) RFBandInfo

func (c *Client) RFBandInfo(ctx context.Context) (NASRFBandInfo, error)

RFBandInfo returns active radio bands, channels, and optional bandwidths.

func (*Client) ReadRecord

func (c *Client) ReadRecord(ctx context.Context, req RecordRead) ([]byte, error)

func (*Client) ReadRecords

func (c *Client) ReadRecords(ctx context.Context, req RecordRead) ([][]byte, error)

ReadRecords reads a contiguous range from a linear-fixed or cyclic file.

func (*Client) ReadTransparent

func (c *Client) ReadTransparent(ctx context.Context, req TransparentRead) ([]byte, error)

func (*Client) ReadTransparentResult

func (c *Client) ReadTransparentResult(ctx context.Context, req TransparentRead) (UIMTransparentReadResult, error)

ReadTransparentResult reads a transparent file and reports whether the modem encrypted it.

func (*Client) RegisterNetwork

func (c *Client) RegisterNetwork(ctx context.Context, registration NASNetworkRegistration) error

RegisterNetwork initiates automatic or manual network registration.

func (*Client) RemoteUnlock

func (c *Client) RemoteUnlock(ctx context.Context, data []byte) error

RemoteUnlock submits an opaque carrier SIMLock blob. Data up to 1024 bytes uses the original field; larger data uses the extended field.

func (*Client) Reset

func (c *Client) Reset(ctx context.Context) error

func (*Client) RestoreFactoryDefaults

func (c *Client) RestoreFactoryDefaults(ctx context.Context, spc string) error

RestoreFactoryDefaults restores the modem's DMS factory settings.

func (*Client) RevisionInfo

func (c *Client) RevisionInfo(ctx context.Context) (DMSRevisionInfo, error)

RevisionInfo returns firmware, boot-code, and PRI revisions.

func (*Client) SARRFState

func (c *Client) SARRFState(ctx context.Context) (SARRFState, error)

SARRFState returns the modem's active RF exposure profile.

func (*Client) SSCControl

func (c *Client) SSCControl(ctx context.Context, data []byte, reportType *SSCReportType) (SSCControlResponse, error)

SSCControl sends opaque control data to Snapdragon Sensor Core.

func (*Client) SendAPDU

func (c *Client) SendAPDU(ctx context.Context, channel uint8, command []byte) ([]byte, error)

func (*Client) SendAPDUWithOptions

func (c *Client) SendAPDUWithOptions(ctx context.Context, req UIMAPDURequest) ([]byte, error)

SendAPDUWithOptions sends an APDU with an optional procedure-byte policy.

func (*Client) SendEnvelope

func (c *Client) SendEnvelope(ctx context.Context, envelope []byte) (EnvelopeResponse, error)

func (*Client) SerialNumbers

func (c *Client) SerialNumbers(ctx context.Context) (DMSSerialNumbers, error)

SerialNumbers returns device ESN, IMEI, MEID, and IMEISV identifiers.

func (*Client) ServiceSupportedMessages

func (c *Client) ServiceSupportedMessages(ctx context.Context, service ServiceType) (SupportedMessages, error)

ServiceSupportedMessages queries the message IDs implemented by a modem service. This is useful when the same application must support several modem firmware generations.

func (*Client) ServiceVersions

func (c *Client) ServiceVersions(ctx context.Context) ([]ServiceVersion, error)

ServiceVersions returns the QMI services advertised by the device.

func (*Client) SetBootImageDownloadMode

func (c *Client) SetBootImageDownloadMode(ctx context.Context, mode DMSBootImageDownloadMode) error

SetBootImageDownloadMode sets the modem's next-boot mode.

func (*Client) SetFirmwareID

func (c *Client) SetFirmwareID(ctx context.Context) error

SetFirmwareID asks the modem to persist its current firmware ID.

func (*Client) SetFirmwarePreference

SetFirmwarePreference selects the modem and PRI images used for download.

func (*Client) SetIMSPolicyManagerSettings

func (c *Client) SetIMSPolicyManagerSettings(ctx context.Context, config IMSPolicyManagerConfig) (IMSSetPolicyManagerSettingsResponse, error)

SetIMSPolicyManagerSettings updates IMS Policy Manager settings.

func (*Client) SetIMSSTestMode

func (c *Client) SetIMSSTestMode(ctx context.Context, enabled bool) error

SetIMSSTestMode controls the modem's internal IMS registration client.

func (*Client) SetIMSServicesEnabled

func (c *Client) SetIMSServicesEnabled(ctx context.Context, config IMSServicesEnabledConfig) (IMSSetServicesEnabledResponse, error)

SetIMSServicesEnabled updates IMS service settings.

func (*Client) SetOperatingMode

func (c *Client) SetOperatingMode(ctx context.Context, mode DMSOperatingMode) error

SetOperatingMode sets the QMI DMS modem operating mode.

func (*Client) SetPINProtection

func (c *Client) SetPINProtection(ctx context.Context, req PINProtectionRequest) (PINOperationResult, error)

SetPINProtection enables or disables PIN verification for a UIM session.

func (*Client) SetPreferredNetworks

func (c *Client) SetPreferredNetworks(ctx context.Context, config NASPreferredNetworksConfig) error

SetPreferredNetworks updates the user-controlled preferred PLMN list.

func (*Client) SetSARRFState

func (c *Client) SetSARRFState(ctx context.Context, state SARRFState) error

SetSARRFState selects a modem RF exposure profile.

func (*Client) SetSystemSelectionPreference

func (c *Client) SetSystemSelectionPreference(ctx context.Context, config NASSystemSelectionConfig) error

SetSystemSelectionPreference changes selected modem policy fields.

func (*Client) SetTechnologyPreference

func (c *Client) SetTechnologyPreference(
	ctx context.Context,
	preference NASTechnologyPreference,
	duration NASPreferenceDuration,
) error

SetTechnologyPreference changes the legacy RAT policy.

func (*Client) SetWDADataFormat

func (c *Client) SetWDADataFormat(ctx context.Context, config WDADataFormatConfig) (WDADataFormat, error)

SetWDADataFormat applies data-format fields to the modem's default data port.

func (*Client) SetWDALinkLayerProtocol

func (c *Client) SetWDALinkLayerProtocol(ctx context.Context, protocol WDALinkLayerProtocol) error

SetWDALinkLayerProtocol changes only the link-layer framing field.

func (*Client) SetWDAQMAPSettings

func (c *Client) SetWDAQMAPSettings(ctx context.Context, config WDAQMAPSettingsConfig) (WDAQMAPSettings, error)

SetWDAQMAPSettings applies QMAP settings and returns the values honored by the modem.

func (*Client) SignalInfo

func (c *Client) SignalInfo(ctx context.Context) (NASSignalInfo, error)

SignalInfo returns current signal measurements for every reported RAT.

func (*Client) SignalStrength

SignalStrength returns the legacy NAS signal-strength response. New code should normally prefer SignalInfo, which has per-RAT fields and NR5G data.

func (*Client) Slot

func (c *Client) Slot() uint8

func (*Client) SlotStatus

func (c *Client) SlotStatus(ctx context.Context) (SlotStatus, error)

func (*Client) SoftwareVersion

func (c *Client) SoftwareVersion(ctx context.Context) (DMSSoftwareVersion, error)

SoftwareVersion returns modem and component software versions.

func (*Client) StoredImageInfo

func (c *Client) StoredImageInfo(ctx context.Context, image DMSFirmwareImage) (DMSStoredImageInfo, error)

StoredImageInfo returns details for one stored firmware image.

func (*Client) StoredImages

func (c *Client) StoredImages(ctx context.Context) (DMSStoredImages, error)

StoredImages returns all firmware images stored on the modem.

func (*Client) SwitchSlot

func (c *Client) SwitchSlot(ctx context.Context, logicalSlot uint8, physicalSlot uint32) error

func (*Client) SystemInfo

func (c *Client) SystemInfo(ctx context.Context) (NASSysInfo, error)

SystemInfo returns service and serving-cell information for every reported RAT.

func (*Client) SystemSelectionPreference

func (c *Client) SystemSelectionPreference(ctx context.Context) (NASSystemSelectionPreference, error)

SystemSelectionPreference returns the current modem selection policy.

func (*Client) TechnologyPreferences

func (c *Client) TechnologyPreferences(ctx context.Context) (NASTechnologyPreferences, error)

TechnologyPreferences returns the legacy active and persistent RAT policy.

func (*Client) TxRxInfo

func (c *Client) TxRxInfo(ctx context.Context, radio NASRadioInterface) (NASTxRxInfo, error)

TxRxInfo returns raw RF-chain measurements for one radio interface.

func (*Client) UIMConfiguration

func (c *Client) UIMConfiguration(ctx context.Context, mask UIMConfigurationMask) (UIMConfiguration, error)

UIMConfiguration reads common provisioning and network-lock settings.

func (*Client) UnblockPIN

func (c *Client) UnblockPIN(ctx context.Context, req PINUnblockRequest) (PINOperationResult, error)

UnblockPIN unblocks a PIN with its PUK and assigns a new PIN.

func (*Client) VerifyPIN

func (c *Client) VerifyPIN(ctx context.Context, req PINVerifyRequest) (PINOperationResult, error)

VerifyPIN verifies one PIN before protected UIM content is accessed.

func (*Client) VoiceALSLineSwitching

func (c *Client) VoiceALSLineSwitching(ctx context.Context) (bool, error)

VoiceALSLineSwitching reports whether alternate-line switching is allowed.

func (*Client) VoiceALSSelectedLine

func (c *Client) VoiceALSSelectedLine(ctx context.Context) (VoiceALS, error)

VoiceALSSelectedLine returns the active alternate-service line.

func (*Client) VoiceAnswer

func (c *Client) VoiceAnswer(ctx context.Context, callID uint8, optionValues ...VoiceAnswerOptions) error

VoiceAnswer answers or rejects one incoming call.

func (*Client) VoiceAnswerUSSD

func (c *Client) VoiceAnswerUSSD(ctx context.Context, data VoiceUSSDData) error

VoiceAnswerUSSD replies to a network-initiated USSD request.

func (*Client) VoiceBindSubscription

func (c *Client) VoiceBindSubscription(ctx context.Context, subscription VoiceSubscription) error

VoiceBindSubscription binds a Voice client to one modem subscription.

func (*Client) VoiceBurstDTMF

func (c *Client) VoiceBurstDTMF(ctx context.Context, callID uint8, digits string, lengths *VoiceDTMFLengths) error

VoiceBurstDTMF sends a CDMA burst-DTMF sequence.

func (*Client) VoiceCLIP

func (c *Client) VoiceCLIP(ctx context.Context) (VoiceLineStatus, error)

VoiceCLIP queries calling-line identification presentation state.

func (*Client) VoiceCLIRStatus

func (c *Client) VoiceCLIRStatus(ctx context.Context) (VoiceLineStatus, error)

VoiceCLIRStatus queries calling-line identification restriction state.

func (*Client) VoiceCNAP

func (c *Client) VoiceCNAP(ctx context.Context) (VoiceLineStatus, error)

VoiceCNAP queries calling-name presentation state.

func (*Client) VoiceCOLP

func (c *Client) VoiceCOLP(ctx context.Context) (VoiceLineStatus, error)

VoiceCOLP queries connected-line identification presentation state.

func (*Client) VoiceCOLR

func (c *Client) VoiceCOLR(ctx context.Context) (VoiceCOLRStatus, error)

VoiceCOLR queries connected-line identification restriction state.

func (*Client) VoiceCallBarring

VoiceCallBarring queries call-barring state for one reason.

func (*Client) VoiceCallForwarding

VoiceCallForwarding queries call-forwarding rules for one reason.

func (*Client) VoiceCallWaiting

func (c *Client) VoiceCallWaiting(ctx context.Context, query VoiceSupplementaryQuery) (VoiceCallWaitingStatus, error)

VoiceCallWaiting queries call-waiting state.

func (*Client) VoiceCancelUSSD

func (c *Client) VoiceCancelUSSD(ctx context.Context) error

VoiceCancelUSSD aborts the current USSD operation.

func (*Client) VoiceConfig

func (c *Client) VoiceConfig(ctx context.Context) (VoiceConfig, error)

VoiceConfig reads the common QMI Voice configuration fields supported by the modem.

func (*Client) VoiceDial

func (c *Client) VoiceDial(ctx context.Context, number string, options VoiceDialOptions) (uint8, error)

VoiceDial originates a voice call and returns the modem-assigned call ID.

func (*Client) VoiceEnd

func (c *Client) VoiceEnd(ctx context.Context, callID uint8, endCauses ...*uint32) error

VoiceEnd ends one active call.

func (*Client) VoiceGetAllCalls

func (c *Client) VoiceGetAllCalls(ctx context.Context) (VoiceCalls, error)

VoiceGetAllCalls returns the modem's current call table.

func (*Client) VoiceManage

func (c *Client) VoiceManage(ctx context.Context, req VoiceManageRequest) error

VoiceManage performs one 3GPP in-call supplementary operation.

func (*Client) VoiceOriginateUSSD

func (c *Client) VoiceOriginateUSSD(ctx context.Context, data VoiceUSSDData) (VoiceUSSDResult, error)

VoiceOriginateUSSD starts a 3GPP USSD session.

func (*Client) VoiceOriginateUSSDNoWait

func (c *Client) VoiceOriginateUSSDNoWait(ctx context.Context, data VoiceUSSDData) (<-chan VoiceUSSDNoWaitResult, error)

VoiceOriginateUSSDNoWait starts a 3GPP USSD operation without holding the request open. The returned channel delivers at most one asynchronous result and then closes. The indication subscription is installed before the request is sent, so the modem cannot race the caller's listener setup.

func (*Client) VoiceSelectALSLine

func (c *Client) VoiceSelectALSLine(ctx context.Context, line VoiceALS) error

VoiceSelectALSLine selects the active alternate-service line.

func (*Client) VoiceSendFlash

func (c *Client) VoiceSendFlash(ctx context.Context, req VoiceFlashRequest) error

VoiceSendFlash sends a 3GPP2 flash operation.

func (*Client) VoiceSetALSLineSwitching

func (c *Client) VoiceSetALSLineSwitching(ctx context.Context, allowed bool) error

VoiceSetALSLineSwitching enables or disables alternate-line switching.

func (*Client) VoiceSetCallBarringPassword

func (c *Client) VoiceSetCallBarringPassword(ctx context.Context, reason VoiceSupplementaryReason, oldPassword, newPassword string) (VoiceSupplementaryResult, error)

VoiceSetCallBarringPassword changes the four-digit network barring password.

func (*Client) VoiceSetConfig

func (c *Client) VoiceSetConfig(ctx context.Context, update VoiceConfigUpdate) error

VoiceSetConfig updates common QMI Voice configuration fields.

func (*Client) VoiceSetIndicationReport

func (c *Client) VoiceSetIndicationReport(ctx context.Context, config VoiceIndicationConfig) error

VoiceSetIndicationReport updates Voice indication registrations.

func (*Client) VoiceSetPreferredPrivacy

func (c *Client) VoiceSetPreferredPrivacy(ctx context.Context, privacy VoicePrivacy) error

VoiceSetPreferredPrivacy changes the 3GPP2 preferred privacy level.

func (*Client) VoiceSetSupplementaryService

func (c *Client) VoiceSetSupplementaryService(ctx context.Context, req VoiceSetSupplementaryRequest) (VoiceSupplementaryResult, error)

VoiceSetSupplementaryService activates, deactivates, registers, or erases a service.

func (*Client) VoiceStartDTMF

func (c *Client) VoiceStartDTMF(ctx context.Context, callID uint8, digit byte) error

VoiceStartDTMF starts one continuous DTMF tone.

func (*Client) VoiceStopDTMF

func (c *Client) VoiceStopDTMF(ctx context.Context, callID uint8) error

VoiceStopDTMF stops a continuous DTMF tone.

func (*Client) VoiceWatchCalls

func (c *Client) VoiceWatchCalls(ctx context.Context) (<-chan []VoiceCall, error)

VoiceWatchCalls subscribes to complete call-table updates.

func (*Client) VoiceWatchDTMF

func (c *Client) VoiceWatchDTMF(ctx context.Context) (<-chan VoiceDTMFEvent, error)

VoiceWatchDTMF subscribes to received and transmitted DTMF events.

func (*Client) VoiceWatchHandover

func (c *Client) VoiceWatchHandover(ctx context.Context) (<-chan VoiceHandover, error)

VoiceWatchHandover subscribes to voice handover state changes.

func (*Client) VoiceWatchPrivacy

func (c *Client) VoiceWatchPrivacy(ctx context.Context) (<-chan VoicePrivacyInfo, error)

VoiceWatchPrivacy subscribes to per-call privacy changes.

func (*Client) VoiceWatchSpeechCodec

func (c *Client) VoiceWatchSpeechCodec(ctx context.Context) (<-chan VoiceSpeechCodecInfo, error)

VoiceWatchSpeechCodec subscribes to codec negotiation changes.

func (*Client) VoiceWatchSupplementaryNotifications

func (c *Client) VoiceWatchSupplementaryNotifications(ctx context.Context) (<-chan VoiceSupplementaryNotification, error)

VoiceWatchSupplementaryNotifications subscribes to 3GPP call notifications.

func (*Client) VoiceWatchSupplementaryResults

func (c *Client) VoiceWatchSupplementaryResults(ctx context.Context) (<-chan VoiceSupplementaryResultEvent, error)

VoiceWatchSupplementaryResults subscribes to supplementary-service results.

func (*Client) VoiceWatchTTY

func (c *Client) VoiceWatchTTY(ctx context.Context) (<-chan VoiceTTYMode, error)

VoiceWatchTTY subscribes to TTY mode changes.

func (*Client) VoiceWatchUSSD

func (c *Client) VoiceWatchUSSD(ctx context.Context) (<-chan VoiceUSSDEvent, error)

VoiceWatchUSSD subscribes to USSD notifications and release indications.

func (*Client) WDADataFormat

func (c *Client) WDADataFormat(ctx context.Context) (WDADataFormat, error)

WDADataFormat reads the current format of the default modem data port.

func (*Client) WDADataFormatForEndpoint

func (c *Client) WDADataFormatForEndpoint(ctx context.Context, endpoint *DataEndpoint) (WDADataFormat, error)

WDADataFormatForEndpoint reads the current format of a modem data endpoint. A nil endpoint queries the default data port.

func (*Client) WDAEthernetHardwareConfig

func (c *Client) WDAEthernetHardwareConfig(ctx context.Context) (WDAEthernetHardwareConfig, error)

WDAEthernetHardwareConfig returns the modem's Ethernet PDU layout.

func (*Client) WDAGetLoopbackState

func (c *Client) WDAGetLoopbackState(ctx context.Context) (WDALoopbackState, error)

WDAGetLoopbackState returns the modem's current loopback state.

func (*Client) WDAQMAPSettingsForEndpoint

func (c *Client) WDAQMAPSettingsForEndpoint(ctx context.Context, endpoint *DataEndpoint) (WDAQMAPSettings, error)

WDAQMAPSettingsForEndpoint reads QMAP settings for the default data channel or the provided endpoint.

func (*Client) WDASetCapabilities

func (c *Client) WDASetCapabilities(ctx context.Context, config WDASetCapabilityConfig) (WDASetCapabilityResponse, error)

WDASetCapabilities negotiates endpoint capabilities with the modem.

func (*Client) WDASetLoopbackConfiguration

func (c *Client) WDASetLoopbackConfiguration(ctx context.Context, config WDASetLoopbackConfig) error

WDASetLoopbackConfiguration applies the current loopback configuration.

func (*Client) WDASetLoopbackState

func (c *Client) WDASetLoopbackState(ctx context.Context, enabled bool) error

WDASetLoopbackState applies the deprecated loopback switch. New code should use WDASetLoopbackConfiguration so it can also set the replication factor.

func (*Client) WDASetPowersaveConfiguration

func (c *Client) WDASetPowersaveConfiguration(ctx context.Context, config WDASetPowersaveConfig) (WDASetPowersaveConfigResponse, error)

WDASetPowersaveConfiguration sets and returns the powersave mask supported for an endpoint.

func (*Client) WDASetPowersaveMode

func (c *Client) WDASetPowersaveMode(ctx context.Context, enabled bool) error

WDASetPowersaveMode enables or disables powersave mode for the terminal.

func (*Client) WDAWatchLoopbackConfiguration

func (c *Client) WDAWatchLoopbackConfiguration(ctx context.Context) (<-chan WDALoopbackConfigIndication, error)

WDAWatchLoopbackConfiguration watches asynchronous loopback results.

func (*Client) WDSAutoconnectSettings

func (c *Client) WDSAutoconnectSettings(ctx context.Context) (WDSAutoconnectSettings, error)

WDSAutoconnectSettings returns the modem's automatic packet-data policy.

func (*Client) WDSBindSubscription

func (c *Client) WDSBindSubscription(ctx context.Context, subscription WDSSubscription) error

WDSBindSubscription binds the Client's WDS control point to a subscription.

func (*Client) WDSBoundSubscription

func (c *Client) WDSBoundSubscription(ctx context.Context) (WDSSubscription, error)

WDSBoundSubscription reads the Client's current WDS subscription binding.

func (*Client) WDSChannelRates

func (c *Client) WDSChannelRates(ctx context.Context) (WDSChannelRates, error)

WDSChannelRates reads rates associated with the Client's WDS control point.

func (*Client) WDSConfigureProfileEvents

func (c *Client) WDSConfigureProfileEvents(ctx context.Context, profiles []WDSProfileID) error

WDSConfigureProfileEvents replaces the modem's profile-change filter.

func (*Client) WDSCreateProfile

func (c *Client) WDSCreateProfile(ctx context.Context, apn string, pdpType WDSPDPType) (uint8, error)

WDSCreateProfile creates a persistent 3GPP profile with APN and PDP type. The caller owns the returned profile and should delete it when it is no longer needed.

func (*Client) WDSCreateProfileWithConfig

func (c *Client) WDSCreateProfileWithConfig(ctx context.Context, cfg WDSProfileConfig) (WDSProfileID, error)

WDSCreateProfileWithConfig creates a persistent 3GPP profile with optional authentication and IMS-related settings.

func (*Client) WDSCurrentDataBearerTechnology

func (c *Client) WDSCurrentDataBearerTechnology(ctx context.Context) (WDSCurrentBearerTechnologyInfo, error)

WDSCurrentDataBearerTechnology reads legacy network, RAT, and SO masks.

func (*Client) WDSDataBearerTechnology

func (c *Client) WDSDataBearerTechnology(ctx context.Context) (WDSDataBearerTechnologyInfo, error)

WDSDataBearerTechnology reads the compact legacy bearer enumeration.

func (*Client) WDSDataBearerTechnologyExtended

func (c *Client) WDSDataBearerTechnologyExtended(ctx context.Context) (WDSBearerTechnologyInfo, error)

WDSDataBearerTechnologyExtended reads the 5G-capable bearer information.

func (*Client) WDSDefaultProfile

func (c *Client) WDSDefaultProfile(ctx context.Context, profileType WDSProfileType, family WDSProfileFamily) (WDSProfileID, error)

WDSDefaultProfile returns the default profile in the selected family.

func (*Client) WDSDefaultSettings

func (c *Client) WDSDefaultSettings(ctx context.Context, profileType WDSProfileType) (WDSProfileSettings, error)

WDSDefaultSettings returns the modem defaults for a profile technology.

func (*Client) WDSDeleteProfile

func (c *Client) WDSDeleteProfile(ctx context.Context, index uint8) error

WDSDeleteProfile removes a persistent 3GPP profile.

func (*Client) WDSDormancyStatus

func (c *Client) WDSDormancyStatus(ctx context.Context) (WDSDormancyStatus, error)

WDSDormancyStatus reads the Client's WDS traffic-channel state.

func (*Client) WDSGoActive

func (c *Client) WDSGoActive(ctx context.Context) error

WDSGoActive asks the Client's WDS control point to acquire a traffic channel.

func (*Client) WDSGoDormant

func (c *Client) WDSGoDormant(ctx context.Context, config WDSGoDormantConfig) error

WDSGoDormant asks the Client's WDS control point to release its traffic channel.

func (*Client) WDSLTEAttachPDNList

func (c *Client) WDSLTEAttachPDNList(ctx context.Context) (WDSLTEAttachPDNList, error)

WDSLTEAttachPDNList returns the active and pending LTE attach profile lists.

func (*Client) WDSLTEAttachParameters

func (c *Client) WDSLTEAttachParameters(ctx context.Context) (WDSLTEAttachParameters, error)

WDSLTEAttachParameters returns the network-selected initial attach APN.

func (*Client) WDSMaxLTEAttachPDNs

func (c *Client) WDSMaxLTEAttachPDNs(ctx context.Context) (uint8, error)

WDSMaxLTEAttachPDNs returns the modem's maximum LTE attach profile count.

func (*Client) WDSModifyProfile

func (c *Client) WDSModifyProfile(ctx context.Context, id WDSProfileID, pcscfUsingPCO bool) error

WDSModifyProfile sets P-CSCF address delivery through PCO for a stored profile.

func (*Client) WDSPDNThrottleInfo

func (c *Client) WDSPDNThrottleInfo(ctx context.Context, networkType WDSDataSystemNetworkType) (WDSPDNThrottleInfo, error)

WDSPDNThrottleInfo returns throttling state for the selected technology.

func (*Client) WDSPacketServiceStatus

func (c *Client) WDSPacketServiceStatus(ctx context.Context, mask WDSRuntimeSettingsMask) (WDSPacketServiceStatus, error)

WDSPacketServiceStatus reads the status associated with the Client's WDS control point. Stateful PDN users should prefer PDNSession.Status.

func (*Client) WDSPacketStatistics

func (c *Client) WDSPacketStatistics(ctx context.Context, mask WDSStatisticsMask) (WDSPacketStatistics, error)

WDSPacketStatistics reads counters from the Client's WDS control point.

func (*Client) WDSProfileIndex

func (c *Client) WDSProfileIndex(ctx context.Context, apn string) (uint8, error)

WDSProfileIndex returns the 3GPP profile whose APN matches apn.

func (*Client) WDSProfileSettings

func (c *Client) WDSProfileSettings(ctx context.Context, id WDSProfileID) (WDSProfileSettings, error)

func (*Client) WDSProfiles

func (c *Client) WDSProfiles(ctx context.Context, profileType WDSProfileType) ([]WDSProfile, error)

func (*Client) WDSReset

func (c *Client) WDSReset(ctx context.Context) error

WDSReset resets state owned by this WDS client.

func (*Client) WDSSetAutoconnectSettings

func (c *Client) WDSSetAutoconnectSettings(ctx context.Context, settings WDSAutoconnectSettings) error

WDSSetAutoconnectSettings changes the modem's automatic packet-data policy.

func (*Client) WDSSetDefaultProfile

func (c *Client) WDSSetDefaultProfile(ctx context.Context, id WDSProfileID, family WDSProfileFamily) error

WDSSetDefaultProfile selects a stored profile as the default profile in the given family.

func (*Client) WDSSetEventReport

func (c *Client) WDSSetEventReport(ctx context.Context, config WDSSetEventReportConfig) error

WDSSetEventReport configures event indications for the Client's WDS control point.

func (*Client) WDSSetLTEAttachPDNList

func (c *Client) WDSSetLTEAttachPDNList(ctx context.Context, profiles []uint16, action *WDSAttachPDNListAction) error

WDSSetLTEAttachPDNList replaces the ordered LTE attach profile list.

func (*Client) WDSUpdateProfile

func (c *Client) WDSUpdateProfile(ctx context.Context, id WDSProfileID, update WDSProfileUpdate) error

WDSUpdateProfile applies selected changes to a stored profile.

func (*Client) WDSWatchProfileChanges

func (c *Client) WDSWatchProfileChanges(ctx context.Context, profiles []WDSProfileID) (<-chan WDSProfileEvent, error)

WDSWatchProfileChanges subscribes to changes for the selected profiles.

func (*Client) WMSAcknowledge

func (c *Client) WMSAcknowledge(ctx context.Context, req WMSACKRequest) error

WMSAcknowledge sends the network ACK required by a transfer-route message.

func (*Client) WMSBindSubscription

func (c *Client) WMSBindSubscription(ctx context.Context, subscription WMSSubscription) error

WMSBindSubscription binds this WMS control point to a subscription.

func (*Client) WMSBoundSubscription

func (c *Client) WMSBoundSubscription(ctx context.Context) (WMSSubscription, error)

WMSBoundSubscription reads the subscription bound to this WMS control point.

func (*Client) WMSBroadcastConfig

func (c *Client) WMSBroadcastConfig(ctx context.Context, mode WMSMessageMode) (WMSBroadcastConfig, error)

WMSBroadcastConfig reads the activation and channel filters for one mode.

func (*Client) WMSCurrentMessageProtocol

func (c *Client) WMSCurrentMessageProtocol(ctx context.Context) (WMSMessageProtocol, error)

WMSCurrentMessageProtocol reports the protocol selected for this WMS client.

func (*Client) WMSDelete

func (c *Client) WMSDelete(ctx context.Context, req WMSDeleteRequest) error

WMSDelete deletes stored messages matching req.

func (*Client) WMSDomainPreference

func (c *Client) WMSDomainPreference(ctx context.Context) (WMSDomainPreference, error)

WMSDomainPreference reads the deprecated 3GPP SMS domain preference.

func (*Client) WMSGetRoutes

func (c *Client) WMSGetRoutes(ctx context.Context) (WMSRoutes, error)

WMSGetRoutes reads the incoming SMS routing table.

func (*Client) WMSIndicationRegistration

func (c *Client) WMSIndicationRegistration(ctx context.Context) (WMSIndicationState, error)

WMSIndicationRegistration reads general indication registrations for this WMS control point.

func (*Client) WMSListMessages

func (c *Client) WMSListMessages(ctx context.Context, req WMSListRequest) ([]WMSListedMessage, error)

WMSListMessages lists stored SMS indices and tags.

func (*Client) WMSMemoryAvailable

func (c *Client) WMSMemoryAvailable(ctx context.Context) (bool, error)

WMSMemoryAvailable reads the memory status reported by this client.

func (*Client) WMSModifyTag

func (c *Client) WMSModifyTag(ctx context.Context, req WMSModifyTagRequest) error

WMSModifyTag changes the read or delivery tag on a stored SMS.

func (*Client) WMSPrimaryClient

func (c *Client) WMSPrimaryClient(ctx context.Context) (bool, error)

WMSPrimaryClient reports whether this control point is the WMS primary client.

func (*Client) WMSReadRaw

func (c *Client) WMSReadRaw(ctx context.Context, req WMSReadRequest) (WMSRawMessage, error)

WMSReadRaw reads one SMS from modem storage.

func (*Client) WMSReset

func (c *Client) WMSReset(ctx context.Context) error

WMSReset resets state owned by this WMS client.

func (*Client) WMSSendFromStore

func (c *Client) WMSSendFromStore(ctx context.Context, req WMSSendFromStoreRequest) (WMSSendResult, error)

WMSSendFromStore sends an SMS already present in UIM or NV storage.

func (*Client) WMSSendRaw

func (c *Client) WMSSendRaw(ctx context.Context, format WMSMessageFormat, data []byte, options WMSSendOptions) (WMSSendResult, error)

WMSSendRaw sends an already encoded CDMA or 3GPP SMS PDU.

func (*Client) WMSServiceReady

func (c *Client) WMSServiceReady(ctx context.Context) (WMSServiceReadyState, error)

WMSServiceReady reads SMS service and SIM readiness.

func (*Client) WMSSetBroadcastActivation

func (c *Client) WMSSetBroadcastActivation(ctx context.Context, activation WMSBroadcastActivation) error

WMSSetBroadcastActivation enables or disables broadcast SMS reception.

func (*Client) WMSSetBroadcastConfig

func (c *Client) WMSSetBroadcastConfig(ctx context.Context, config WMSBroadcastChannelConfig) error

WMSSetBroadcastConfig replaces the channel filters for one message mode.

func (*Client) WMSSetDomainPreference

func (c *Client) WMSSetDomainPreference(ctx context.Context, preference WMSDomainPreference) error

WMSSetDomainPreference sets the deprecated 3GPP SMS domain preference.

func (*Client) WMSSetEventReport

func (c *Client) WMSSetEventReport(ctx context.Context, config WMSEventReportConfig) error

WMSSetEventReport configures WMS event-report indications.

func (*Client) WMSSetIndicationRegistration

func (c *Client) WMSSetIndicationRegistration(ctx context.Context, config WMSIndicationConfig) error

WMSSetIndicationRegistration changes general WMS indication subscriptions.

func (*Client) WMSSetMemoryAvailable

func (c *Client) WMSSetMemoryAvailable(ctx context.Context, available bool) error

WMSSetMemoryAvailable reports whether the primary client can accept another SMS.

func (*Client) WMSSetPrimaryClient

func (c *Client) WMSSetPrimaryClient(ctx context.Context, primary bool) error

WMSSetPrimaryClient changes whether this control point is the WMS primary client.

func (*Client) WMSSetRoutes

func (c *Client) WMSSetRoutes(ctx context.Context, routes []WMSRoute, statusReport *WMSStatusReportTransfer) error

WMSSetRoutes replaces the incoming SMS routing table.

func (*Client) WMSSetSMSCAddress

func (c *Client) WMSSetSMSCAddress(ctx context.Context, address WMSSMSCAddress, index *uint8) error

WMSSetSMSCAddress updates the SMS service-center address. A nil index lets the modem select the default EF-SMSP record.

func (*Client) WMSStoreCapacity

func (c *Client) WMSStoreCapacity(ctx context.Context, req WMSStoreCapacityRequest) (WMSStoreCapacityInfo, error)

WMSStoreCapacity reads the maximum and available slots in an SMS store.

func (*Client) WMSTransportLayer

func (c *Client) WMSTransportLayer(ctx context.Context) (WMSTransportLayerState, error)

WMSTransportLayer reads IMS transport registration and capability.

func (*Client) WMSTransportNetwork

func (c *Client) WMSTransportNetwork(ctx context.Context) (WMSTransportNetworkState, error)

WMSTransportNetwork reads SMS transport network registration.

func (*Client) WMSWatchBroadcastConfig

func (c *Client) WMSWatchBroadcastConfig(ctx context.Context) (<-chan WMSBroadcastConfig, error)

WMSWatchBroadcastConfig subscribes to broadcast activation and channel configuration changes.

func (*Client) WMSWatchCallStatus

func (c *Client) WMSWatchCallStatus(ctx context.Context) (<-chan WMSCallStatus, error)

WMSWatchCallStatus subscribes to SMS call status changes.

func (*Client) WMSWatchIncoming

func (c *Client) WMSWatchIncoming(ctx context.Context) (<-chan WMSIncomingMessage, error)

WMSWatchIncoming subscribes to incoming SMS events. Stored messages are read before being sent to the returned channel.

func (*Client) WMSWatchMemoryFull

func (c *Client) WMSWatchMemoryFull(ctx context.Context) (<-chan WMSMemoryFullState, error)

WMSWatchMemoryFull subscribes to SMS store-full indications.

func (*Client) WMSWatchSMSCAddress

func (c *Client) WMSWatchSMSCAddress(ctx context.Context) (<-chan WMSSMSCAddress, error)

WMSWatchSMSCAddress subscribes to SMS service-center address changes.

func (*Client) WMSWatchServiceReady

func (c *Client) WMSWatchServiceReady(ctx context.Context) (<-chan WMSServiceReadyState, error)

WMSWatchServiceReady subscribes to SMS service readiness changes.

func (*Client) WMSWatchTransportLayer

func (c *Client) WMSWatchTransportLayer(ctx context.Context) (<-chan WMSTransportLayerState, error)

WMSWatchTransportLayer subscribes to IMS transport changes.

func (*Client) WMSWatchTransportNetwork

func (c *Client) WMSWatchTransportNetwork(ctx context.Context) (<-chan WMSTransportNetworkState, error)

WMSWatchTransportNetwork subscribes to SMS transport registration changes.

func (*Client) WMSWriteRaw

func (c *Client) WMSWriteRaw(ctx context.Context, req WMSWriteRequest) (WMSMessageReference, error)

WMSWriteRaw writes an already encoded SMS to modem storage.

func (*Client) WatchCardStatus

func (c *Client) WatchCardStatus(ctx context.Context) (<-chan CardStatus, error)

WatchCardStatus subscribes to logical UIM card and application changes.

func (*Client) WatchIMSARegistrationStatus

func (c *Client) WatchIMSARegistrationStatus(ctx context.Context) (<-chan IMSAStatus, error)

WatchIMSARegistrationStatus subscribes to IMS registration changes.

func (*Client) WatchIMSAServiceStatus

func (c *Client) WatchIMSAServiceStatus(ctx context.Context) (<-chan IMSAStatus, error)

WatchIMSAServiceStatus subscribes to IMS per-service status changes.

func (*Client) WatchIMSDCMPDPActivations

func (c *Client) WatchIMSDCMPDPActivations(ctx context.Context) (<-chan IMSDCMPDPActivation, error)

WatchIMSDCMPDPActivations subscribes to asynchronous PDP activation results.

func (*Client) WatchRefreshAll

func (c *Client) WatchRefreshAll(ctx context.Context, session Session, aid []byte) (<-chan RefreshEvent, error)

WatchRefreshAll watches all refresh events for a UIM session. Only one refresh watcher may be active on a Client at a time. The returned channel closes if a required refresh protocol response fails.

func (*Client) WatchRefreshFiles

func (c *Client) WatchRefreshFiles(ctx context.Context, req RefreshRegisterRequest) (<-chan RefreshEvent, error)

WatchRefreshFiles watches refresh events for specific UIM files. Only one refresh watcher may be active on a Client at a time. The returned channel closes if a required refresh protocol response fails.

func (*Client) WatchSSCReports

func (c *Client) WatchSSCReports(ctx context.Context, reportType SSCReportType) (<-chan SSCReport, error)

WatchSSCReports subscribes to one SSC report size class.

func (*Client) WatchSlotStatus

func (c *Client) WatchSlotStatus(ctx context.Context) (<-chan SlotStatus, error)

func (*Client) WriteRecord

func (c *Client) WriteRecord(ctx context.Context, req RecordWrite) error

func (*Client) WriteTransparent

func (c *Client) WriteTransparent(ctx context.Context, req TransparentWrite) error

WriteTransparent writes bytes at an offset in a transparent elementary file.

type CloseLogicalChannelRequest

type CloseLogicalChannelRequest struct {
	Channel uint8
}

func (CloseLogicalChannelRequest) MarshalBinary

func (r CloseLogicalChannelRequest) MarshalBinary() ([]byte, error)

func (*CloseLogicalChannelRequest) UnmarshalBinary

func (r *CloseLogicalChannelRequest) UnmarshalBinary(data []byte) error

type CloseLogicalChannelResponse

type CloseLogicalChannelResponse struct{}

func (*CloseLogicalChannelResponse) UnmarshalBinary

func (r *CloseLogicalChannelResponse) UnmarshalBinary(data []byte) error

type DMSActivateAutomaticRequest

type DMSActivateAutomaticRequest struct {
	ClientID       uint8
	TransactionID  uint16
	Timeout        time.Duration
	ActivationCode string
}

DMSActivateAutomaticRequest encodes DMS Activate Automatic.

func (DMSActivateAutomaticRequest) Request

func (r DMSActivateAutomaticRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSActivateManualRequest

type DMSActivateManualRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSManualActivationRequest
}

DMSActivateManualRequest encodes DMS Activate Manual.

func (DMSActivateManualRequest) Request

func (r DMSActivateManualRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSActivationState

type DMSActivationState uint16

DMSActivationState identifies the CDMA service activation state.

const (
	DMSActivationNotActivated DMSActivationState = iota
	DMSActivationActivated
	DMSActivationConnecting
	DMSActivationConnected
	DMSActivationOTASPSecurityAuthenticated
	DMSActivationOTASPNAMDownloaded
	DMSActivationOTASPMDNDownloaded
	DMSActivationOTASPIMSIDownloaded
	DMSActivationOTASPPRLDownloaded
	DMSActivationOTASPSPCDownloaded
	DMSActivationOTASPSettingsCommitted
)

func (*DMSActivationState) UnmarshalTLVs

func (s *DMSActivationState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the QMI DMS activation state.

type DMSBandCapabilities

type DMSBandCapabilities struct {
	BandMask uint64

	// LTEBandMask is deprecated by Qualcomm; use LTEBands when present.
	LTEBandMask      uint64
	LTEBandMaskKnown bool
	TDSBandMask      uint64
	TDSBandMaskKnown bool

	LTEBands       []uint16
	LTEBandsKnown  bool
	NR5GBands      []uint16
	NR5GBandsKnown bool
}

DMSBandCapabilities contains legacy masks and explicit LTE/NR5G bands.

func (*DMSBandCapabilities) UnmarshalTLVs

func (r *DMSBandCapabilities) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Band Capability response TLVs.

type DMSBatteryLevelLimits

type DMSBatteryLevelLimits struct {
	Lower uint8
	Upper uint8
}

DMSBatteryLevelLimits selects thresholds that trigger power-state events.

type DMSBindSubscriptionRequest

type DMSBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  DMSSubscription
}

DMSBindSubscriptionRequest encodes Bind Subscription.

func (DMSBindSubscriptionRequest) Request

func (r DMSBindSubscriptionRequest) Request() (Request, error)

Request validates and converts the subscription into a QMI request.

type DMSBootImageDownloadMode

type DMSBootImageDownloadMode uint8

DMSBootImageDownloadMode selects the modem's next boot mode.

func (*DMSBootImageDownloadMode) UnmarshalTLVs

func (m *DMSBootImageDownloadMode) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the QMI DMS boot image download mode.

type DMSCKOperationResult

type DMSCKOperationResult struct {
	Retries      uint8
	RetriesKnown bool
}

DMSCKOperationResult contains a retry counter returned by a CK operation. The counter may be present even when the modem rejects the operation.

func (*DMSCKOperationResult) UnmarshalTLVs

func (r *DMSCKOperationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional QMI DMS facility retry count.

type DMSCKProtectionRequest

type DMSCKProtectionRequest struct {
	Facility DMSUIMFacility
	State    DMSFacilityState
	Key      string
}

DMSCKProtectionRequest updates one legacy UIM personalization facility.

type DMSCKStatus

type DMSCKStatus struct {
	FacilityState          DMSFacilityState
	VerifyRetries          uint8
	UnblockRetries         uint8
	OperationBlocking      bool
	OperationBlockingKnown bool
}

DMSCKStatus contains the legacy DMS UIM control-key status.

func (*DMSCKStatus) UnmarshalTLVs

func (s *DMSCKStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a DMS UIM Get CK Status response.

type DMSCKUnblockRequest

type DMSCKUnblockRequest struct {
	Facility DMSUIMFacility
	Key      string
}

DMSCKUnblockRequest unblocks one legacy UIM personalization facility.

type DMSDataServiceCapability

type DMSDataServiceCapability uint8

DMSDataServiceCapability is the legacy circuit/packet service capability.

const (
	DMSDataServiceNone DMSDataServiceCapability = iota
	DMSDataServiceCSOnly
	DMSDataServicePSOnly
	DMSDataServiceSimultaneousCSPS
	DMSDataServiceNonSimultaneousCSPS
)

type DMSDeleteStoredImageRequest

type DMSDeleteStoredImageRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Image         DMSFirmwareImage
}

DMSDeleteStoredImageRequest identifies a stored image to delete.

func (DMSDeleteStoredImageRequest) Request

func (r DMSDeleteStoredImageRequest) Request() (Request, error)

Request validates and converts the image identifier into a QMI request.

type DMSDeviceCapabilities

type DMSDeviceCapabilities struct {
	MaxTXRate uint32
	MaxRXRate uint32

	// DataService is deprecated by Qualcomm in favor of DeviceService.
	DataService     DMSDataServiceCapability
	SIM             DMSSIMCapability
	RadioInterfaces []DMSRadioInterface

	DeviceService              DMSDeviceServiceCapability
	DeviceServiceKnown         bool
	VoiceSupport               DMSVoiceSupportCapability
	VoiceSupportKnown          bool
	SimultaneousVoiceData      DMSSimultaneousVoiceDataCapability
	SimultaneousVoiceDataKnown bool

	CurrentMultiSIM      DMSMultiSIMCapability
	CurrentMultiSIMKnown bool

	CurrentSubscriptionCapabilities      []DMSSubscriptionCapability
	CurrentSubscriptionCapabilitiesKnown bool
	SubscriptionVoiceData                []DMSSubscriptionVoiceData
	SubscriptionVoiceDataKnown           bool
	SubscriptionFeatureModes             []DMSSubscriptionFeatureMode
	SubscriptionFeatureModesKnown        bool

	MaxActiveDataSubscriptions           uint8
	MaxActiveDataSubscriptionsKnown      bool
	MaximumSubscriptionCapabilities      []DMSSubscriptionCapability
	MaximumSubscriptionCapabilitiesKnown bool

	IMSCapabilities      []DMSIMSCapability
	IMSCapabilitiesKnown bool
	MaxIMSInstances      uint8
	MaxIMSInstancesKnown bool
}

DMSDeviceCapabilities contains the commonly useful QMI DMS device capabilities.

Qualcomm also exposes deprecated configuration lists and detailed RAT release data in this response. Those optional TLVs are intentionally ignored here.

func (*DMSDeviceCapabilities) UnmarshalTLVs

func (r *DMSDeviceCapabilities) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common QMI DMS Get Device Capabilities TLVs.

type DMSDeviceServiceCapability

type DMSDeviceServiceCapability uint32

DMSDeviceServiceCapability describes voice and data concurrency.

const (
	DMSDeviceServiceDataOnly DMSDeviceServiceCapability = 1 + iota
	DMSDeviceServiceVoiceOnly
	DMSDeviceServiceSimultaneousVoiceData
	DMSDeviceServiceNonSimultaneousVoiceData
)

type DMSDeviceTime

type DMSDeviceTime struct {
	// TimeCount is the number of 1.25 ms intervals since January 6, 1980.
	TimeCount uint64
	Source    DMSTimeSource

	SystemMilliseconds      uint64
	SystemMillisecondsKnown bool
	UserMilliseconds        uint64
	UserMillisecondsKnown   bool
}

DMSDeviceTime contains raw GPS-epoch timestamps reported by DMS.

func (*DMSDeviceTime) UnmarshalTLVs

func (r *DMSDeviceTime) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Time response TLVs.

type DMSEncryptedSerialNumbers

type DMSEncryptedSerialNumbers struct {
	ESN         []byte
	ESNKnown    bool
	IMEI        []byte
	IMEIKnown   bool
	MEID        []byte
	MEIDKnown   bool
	IMEISV      []byte
	IMEISVKnown bool
}

DMSEncryptedSerialNumbers contains the opaque encrypted device identifiers.

func (*DMSEncryptedSerialNumbers) UnmarshalTLVs

func (r *DMSEncryptedSerialNumbers) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Encrypted Device Serial Numbers response TLVs.

type DMSEvent

type DMSEvent struct {
	PowerState            DMSPowerState
	PowerStateKnown       bool
	PIN1                  DMSPINState
	PIN1Known             bool
	PIN2                  DMSPINState
	PIN2Known             bool
	ActivationState       DMSActivationState
	ActivationStateKnown  bool
	OperatingMode         DMSOperatingMode
	OperatingModeKnown    bool
	UIMState              DMSUIMState
	UIMStateKnown         bool
	WirelessDisabled      bool
	WirelessDisabledKnown bool
	PRLInitialized        bool
	PRLInitializedKnown   bool
}

DMSEvent contains the state fields present in one DMS Event Report indication. Known fields distinguish an omitted TLV from a zero value.

func (*DMSEvent) UnmarshalTLVs

func (e *DMSEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS Event Report indication.

type DMSEventReportConfig

type DMSEventReportConfig struct {
	PowerState         *bool
	BatteryLevelLimits *DMSBatteryLevelLimits
	PINState           *bool
	ActivationState    *bool
	OperatingMode      *bool
	UIMState           *bool
	WirelessDisable    *bool
	PRLInit            *bool
}

DMSEventReportConfig updates selected DMS event-report settings. Nil fields are omitted so callers do not overwrite settings they do not own.

type DMSFacilityState

type DMSFacilityState uint8

DMSFacilityState identifies the state of a personalization control key.

const (
	DMSFacilityDeactivated DMSFacilityState = 0x00
	DMSFacilityActivated   DMSFacilityState = 0x01
	DMSFacilityBlocked     DMSFacilityState = 0x02
)

type DMSFirmwareImage

type DMSFirmwareImage struct {
	Type     DMSFirmwareImageType
	UniqueID [dmsFirmwareUniqueIDLength]byte
	BuildID  string
}

DMSFirmwareImage identifies one firmware image preference.

func (DMSFirmwareImage) MarshalBinary

func (i DMSFirmwareImage) MarshalBinary() ([]byte, error)

MarshalBinary encodes one QMI DMS firmware image descriptor.

func (*DMSFirmwareImage) UnmarshalBinary

func (i *DMSFirmwareImage) UnmarshalBinary(data []byte) error

UnmarshalBinary decodes one QMI DMS firmware image descriptor.

type DMSFirmwareImageType

type DMSFirmwareImageType uint8

DMSFirmwareImageType identifies a modem or PRI firmware image.

type DMSFirmwarePreference

type DMSFirmwarePreference struct {
	Images []DMSFirmwareImage
}

DMSFirmwarePreference contains the modem's selected firmware images.

type DMSFirmwarePreferenceRequest

type DMSFirmwarePreferenceRequest struct {
	Images            []DMSFirmwareImage
	DownloadOverride  *bool
	ModemStorageIndex *uint8
}

DMSFirmwarePreferenceRequest contains a new firmware preference.

type DMSGetActivationStateRequest

type DMSGetActivationStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetActivationStateRequest encodes DMS Get Activation State.

func (DMSGetActivationStateRequest) Request

Request converts the request into a QMI DMS request.

type DMSGetAltNetworkConfigRequest

type DMSGetAltNetworkConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetAltNetworkConfigRequest encodes Get Alt Net Config.

func (DMSGetAltNetworkConfigRequest) Request

Request converts the query into a QMI request.

type DMSGetAltNetworkConfigResponse

type DMSGetAltNetworkConfigResponse struct {
	Enabled bool
}

DMSGetAltNetworkConfigResponse contains the alternate-network flag.

func (*DMSGetAltNetworkConfigResponse) UnmarshalTLVs

func (r *DMSGetAltNetworkConfigResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory alternate-network flag.

type DMSGetBindSubscriptionRequest

type DMSGetBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetBindSubscriptionRequest encodes Get Bind Subscription.

func (DMSGetBindSubscriptionRequest) Request

Request converts the query into a QMI request.

type DMSGetBindSubscriptionResponse

type DMSGetBindSubscriptionResponse struct {
	Subscription      DMSSubscription
	SubscriptionKnown bool
}

DMSGetBindSubscriptionResponse contains the subscription bound to the client.

func (*DMSGetBindSubscriptionResponse) UnmarshalTLVs

func (r *DMSGetBindSubscriptionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Bind Subscription response.

type DMSGetBootImageDownloadModeRequest

type DMSGetBootImageDownloadModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetBootImageDownloadModeRequest encodes DMS Get Boot Image Download Mode.

func (DMSGetBootImageDownloadModeRequest) Request

Request converts the request into a QMI DMS request.

type DMSGetFirmwarePreferenceRequest

type DMSGetFirmwarePreferenceRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetFirmwarePreferenceRequest encodes DMS Get Firmware Preference.

func (DMSGetFirmwarePreferenceRequest) Request

Request converts the request into a QMI DMS request.

type DMSGetFirmwarePreferenceResponse

type DMSGetFirmwarePreferenceResponse struct {
	Images []DMSFirmwareImage
}

DMSGetFirmwarePreferenceResponse is the parsed firmware preference.

func (*DMSGetFirmwarePreferenceResponse) UnmarshalTLVs

func (r *DMSGetFirmwarePreferenceResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS Get Firmware Preference response.

type DMSGetMACAddressRequest

type DMSGetMACAddressRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Device        DMSMACDevice
}

DMSGetMACAddressRequest encodes Get MAC Address.

func (DMSGetMACAddressRequest) Request

func (r DMSGetMACAddressRequest) Request() (Request, error)

Request validates and converts the device selector into a QMI request.

type DMSGetMACAddressResponse

type DMSGetMACAddressResponse struct {
	Address net.HardwareAddr
	Known   bool
}

DMSGetMACAddressResponse contains an optional hardware address.

func (*DMSGetMACAddressResponse) UnmarshalTLVs

func (r *DMSGetMACAddressResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the length-prefixed hardware address.

type DMSGetMSISDNRequest

type DMSGetMSISDNRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetMSISDNRequest encodes QMI DMS Get MSISDN.

func (DMSGetMSISDNRequest) Request

func (r DMSGetMSISDNRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSGetMSISDNResponse

type DMSGetMSISDNResponse struct {
	VoiceNumber    string
	MobileIDNumber string
	IMSI           string
}

DMSGetMSISDNResponse is the parsed QMI DMS Get MSISDN response.

func (*DMSGetMSISDNResponse) UnmarshalTLVs

func (r *DMSGetMSISDNResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get MSISDN response TLVs.

type DMSGetOperatingModeRequest

type DMSGetOperatingModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetOperatingModeRequest encodes QMI DMS Get Operating Mode.

func (DMSGetOperatingModeRequest) Request

func (r DMSGetOperatingModeRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSGetOperatingModeResponse

type DMSGetOperatingModeResponse struct {
	Mode                    DMSOperatingMode
	OfflineReason           DMSOfflineReason
	OfflineReasonKnown      bool
	HardwareRestricted      bool
	HardwareRestrictedKnown bool
}

DMSGetOperatingModeResponse is the parsed QMI DMS Get Operating Mode response.

func (*DMSGetOperatingModeResponse) UnmarshalTLVs

func (r *DMSGetOperatingModeResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Operating Mode response TLVs.

type DMSGetPRLVersionRequest

type DMSGetPRLVersionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetPRLVersionRequest encodes Get PRL Version.

func (DMSGetPRLVersionRequest) Request

func (r DMSGetPRLVersionRequest) Request() Request

Request converts the query into a QMI request.

type DMSGetPRLVersionResponse

type DMSGetPRLVersionResponse struct {
	Info DMSPRLVersion
}

DMSGetPRLVersionResponse contains the parsed active PRL version.

func (*DMSGetPRLVersionResponse) UnmarshalTLVs

func (r *DMSGetPRLVersionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory version and optional PRL-only flag.

type DMSGetUserLockStateRequest

type DMSGetUserLockStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSGetUserLockStateRequest encodes the legacy Get User Lock State message.

func (DMSGetUserLockStateRequest) Request

func (r DMSGetUserLockStateRequest) Request() Request

Request converts the query into a QMI request.

type DMSGetUserLockStateResponse

type DMSGetUserLockStateResponse struct {
	Enabled bool
}

DMSGetUserLockStateResponse contains the legacy device lock state.

func (*DMSGetUserLockStateResponse) UnmarshalTLVs

func (r *DMSGetUserLockStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory user-lock flag.

type DMSIMSCapability

type DMSIMSCapability struct {
	Subscription DMSSubscription
	Enabled      bool
}

DMSIMSCapability reports IMS support for one subscription.

func (DMSIMSCapability) MarshalBinary

func (c DMSIMSCapability) MarshalBinary() ([]byte, error)

MarshalBinary encodes one subscription IMS capability.

func (*DMSIMSCapability) UnmarshalBinary

func (c *DMSIMSCapability) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes one subscription IMS capability.

type DMSImageType

type DMSImageType uint32

DMSImageType identifies one firmware image returned by Get Software Version.

const (
	DMSImageUnknown DMSImageType = iota
	DMSImageSBL
	DMSImageTZ
	DMSImageTZSecureApp
	DMSImageRPM
	DMSImageSDI
	DMSImageHypervisor
	DMSImageAPPSBL
	DMSImageApplications
	DMSImageMPSS
	DMSImageADSP
	DMSImageWCNS
	DMSImageVenus
)

type DMSImageVersion

type DMSImageVersion struct {
	Type    DMSImageType
	Version string
}

DMSImageVersion identifies the version of one device firmware image.

type DMSListStoredImagesRequest

type DMSListStoredImagesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSListStoredImagesRequest encodes DMS List Stored Images.

func (DMSListStoredImagesRequest) Request

func (r DMSListStoredImagesRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSListStoredImagesResponse

type DMSListStoredImagesResponse struct {
	Images []DMSStoredImageSet
}

DMSListStoredImagesResponse is the parsed stored image list.

func (*DMSListStoredImagesResponse) UnmarshalTLVs

func (r *DMSListStoredImagesResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS List Stored Images response.

type DMSMACDevice

type DMSMACDevice uint32

DMSMACDevice selects a device whose factory MAC address is requested.

const (
	DMSMACDeviceWLAN DMSMACDevice = iota
	DMSMACDeviceBluetooth
)

type DMSManualActivationRequest

type DMSManualActivationRequest struct {
	SPC                  string
	SID                  uint16
	MDN                  string
	MIN                  string
	MNHAKey              *string
	MNAAAKey             *string
	PreferredRoamingList *DMSPreferredRoamingList
}

DMSManualActivationRequest contains CDMA manual activation data.

func (DMSManualActivationRequest) MarshalBinary

func (req DMSManualActivationRequest) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DMS manual activation aggregate.

type DMSMultiSIMCapability

type DMSMultiSIMCapability struct {
	MaxSubscriptions uint8
	MaxActive        uint8
}

DMSMultiSIMCapability contains the current subscription concurrency limits.

type DMSOfflineReason

type DMSOfflineReason uint16

DMSOfflineReason is a mask describing why the modem entered offline mode.

const (
	DMSOfflineHostImageMisconfiguration DMSOfflineReason = 1 << iota
	DMSOfflinePRIImageMisconfiguration
	DMSOfflinePRIVersionIncompatible
	DMSOfflineDeviceMemoryFull
)

type DMSOperatingMode

type DMSOperatingMode uint8

DMSOperatingMode is the QMI DMS modem operating mode.

const (
	DMSOperatingModeOnline             DMSOperatingMode = 0x00
	DMSOperatingModeLowPower           DMSOperatingMode = 0x01
	DMSOperatingModeFactoryTest        DMSOperatingMode = 0x02
	DMSOperatingModeOffline            DMSOperatingMode = 0x03
	DMSOperatingModeResetting          DMSOperatingMode = 0x04
	DMSOperatingModeShuttingDown       DMSOperatingMode = 0x05
	DMSOperatingModePersistentLowPower DMSOperatingMode = 0x06
	DMSOperatingModeModeOnlyLowPower   DMSOperatingMode = 0x07
	DMSOperatingModeNetworkTestGW      DMSOperatingMode = 0x08
)

type DMSPINChangeRequest

type DMSPINChangeRequest struct {
	ID     DMSPINID
	OldPIN string
	NewPIN string
}

DMSPINChangeRequest replaces a legacy DMS UIM PIN.

func (DMSPINChangeRequest) MarshalBinary

func (req DMSPINChangeRequest) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DMS PIN change aggregate.

type DMSPINID

type DMSPINID uint8

DMSPINID identifies one of the two legacy DMS UIM PINs.

const (
	DMSPINIDPIN1 DMSPINID = 0x01
	DMSPINIDPIN2 DMSPINID = 0x02
)

type DMSPINOperationResult

type DMSPINOperationResult struct {
	VerifyRetries  uint8
	UnblockRetries uint8
	RetriesKnown   bool
}

DMSPINOperationResult contains retry counters returned by a PIN operation. Counters may be present even when the modem returns an operation error.

func (*DMSPINOperationResult) UnmarshalTLVs

func (r *DMSPINOperationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional QMI DMS PIN retry counts.

type DMSPINProtectionRequest

type DMSPINProtectionRequest struct {
	ID      DMSPINID
	Enabled bool
	PIN     string
}

DMSPINProtectionRequest enables or disables one legacy DMS UIM PIN.

func (DMSPINProtectionRequest) MarshalBinary

func (req DMSPINProtectionRequest) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DMS PIN protection aggregate.

type DMSPINState

type DMSPINState struct {
	Status         DMSPINStatus
	VerifyRetries  uint8
	UnblockRetries uint8
}

DMSPINState contains a PIN state and its remaining retry counts.

func (DMSPINState) MarshalBinary

func (s DMSPINState) MarshalBinary() ([]byte, error)

func (*DMSPINState) UnmarshalBinary

func (s *DMSPINState) UnmarshalBinary(value []byte) error

type DMSPINStatus

type DMSPINStatus uint8

DMSPINStatus identifies the current state of a legacy DMS UIM PIN.

const (
	DMSPINStatusNotInitialized DMSPINStatus = iota
	DMSPINStatusEnabledNotVerified
	DMSPINStatusEnabledVerified
	DMSPINStatusDisabled
	DMSPINStatusBlocked
	DMSPINStatusPermanentlyBlocked
	DMSPINStatusUnblocked
	DMSPINStatusChanged
)

type DMSPINStatusResponse

type DMSPINStatusResponse struct {
	PIN1      DMSPINState
	PIN1Known bool
	PIN2      DMSPINState
	PIN2Known bool
}

DMSPINStatusResponse contains the optional status of PIN1 and PIN2.

func (*DMSPINStatusResponse) UnmarshalTLVs

func (r *DMSPINStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS UIM Get PIN Status response.

type DMSPINUnblockRequest

type DMSPINUnblockRequest struct {
	ID     DMSPINID
	PUK    string
	NewPIN string
}

DMSPINUnblockRequest unblocks a legacy DMS UIM PIN with its PUK.

func (DMSPINUnblockRequest) MarshalBinary

func (req DMSPINUnblockRequest) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DMS PIN unblock aggregate.

type DMSPINVerifyRequest

type DMSPINVerifyRequest struct {
	ID  DMSPINID
	PIN string
}

DMSPINVerifyRequest verifies one legacy DMS UIM PIN.

func (DMSPINVerifyRequest) MarshalBinary

func (req DMSPINVerifyRequest) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DMS PIN verification aggregate.

type DMSPRLVersion

type DMSPRLVersion struct {
	Version      uint16
	PRLOnly      bool
	PRLOnlyKnown bool
}

DMSPRLVersion contains the active Preferred Roaming List version.

type DMSPersistentDataResponse

type DMSPersistentDataResponse struct {
	Data []byte
	// contains filtered or unexported fields
}

DMSPersistentDataResponse contains a mandatory length-prefixed payload.

func (*DMSPersistentDataResponse) UnmarshalTLVs

func (r *DMSPersistentDataResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Read User Data or Read ERI File response.

type DMSPowerState

type DMSPowerState struct {
	Status       DMSPowerStatus
	BatteryLevel uint8
}

DMSPowerState contains the current power source and battery level.

func (*DMSPowerState) UnmarshalTLVs

func (r *DMSPowerState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Power State response TLVs.

type DMSPowerStatus

type DMSPowerStatus uint8

DMSPowerStatus is the power-state bitmask reported by DMS.

const (
	DMSPowerExternalSource DMSPowerStatus = 1 << iota
	DMSPowerBatteryConnected
	DMSPowerBatteryCharging
	DMSPowerFault
)

type DMSPreferredRoamingList

type DMSPreferredRoamingList struct {
	TotalLength uint16
	Segment     uint8
	Data        []byte
}

DMSPreferredRoamingList is one PRL segment used by manual activation.

func (DMSPreferredRoamingList) MarshalBinary

func (req DMSPreferredRoamingList) MarshalBinary() ([]byte, error)

MarshalBinary encodes one QMI DMS preferred roaming list segment.

type DMSRadioInterface

type DMSRadioInterface uint8

DMSRadioInterface identifies a radio interface supported by the modem.

const (
	DMSRadioInterfaceCDMA1X  DMSRadioInterface = 0x01
	DMSRadioInterfaceEVDO    DMSRadioInterface = 0x02
	DMSRadioInterfaceGSM     DMSRadioInterface = 0x04
	DMSRadioInterfaceUMTS    DMSRadioInterface = 0x05
	DMSRadioInterfaceLTE     DMSRadioInterface = 0x08
	DMSRadioInterfaceTDSCDMA DMSRadioInterface = 0x09
	DMSRadioInterfaceNR5G    DMSRadioInterface = 0x0A
)

type DMSReadERIFileRequest

type DMSReadERIFileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSReadERIFileRequest encodes Read ERI File.

func (DMSReadERIFileRequest) Request

func (r DMSReadERIFileRequest) Request() Request

Request converts the query into a QMI request.

type DMSReadUserDataRequest

type DMSReadUserDataRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSReadUserDataRequest encodes the legacy Read User Data message.

func (DMSReadUserDataRequest) Request

func (r DMSReadUserDataRequest) Request() Request

Request converts the query into a QMI request.

type DMSResetRequest

type DMSResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSResetRequest encodes QMI DMS Reset.

func (DMSResetRequest) Request

func (r DMSResetRequest) Request() Request

Request converts the reset into a QMI request.

type DMSRestoreFactoryDefaultsRequest

type DMSRestoreFactoryDefaultsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	SPC           string
}

DMSRestoreFactoryDefaultsRequest encodes DMS Restore Factory Defaults.

func (DMSRestoreFactoryDefaultsRequest) Request

Request converts the request into a QMI DMS request.

type DMSRevisionInfo

type DMSRevisionInfo struct {
	Revision      string
	BootCode      string
	BootCodeKnown bool
	PRI           string
	PRIKnown      bool
}

DMSRevisionInfo contains firmware, boot-code, and PRI revisions.

func (*DMSRevisionInfo) UnmarshalTLVs

func (r *DMSRevisionInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Device Revision ID response TLVs.

type DMSSIMCapability

type DMSSIMCapability uint8

DMSSIMCapability reports whether the device supports a SIM.

const (
	DMSSIMNotSupported DMSSIMCapability = 1 + iota
	DMSSIMSupported
)

type DMSSerialNumbers

type DMSSerialNumbers struct {
	ESN         string
	ESNKnown    bool
	IMEI        string
	IMEIKnown   bool
	MEID        string
	MEIDKnown   bool
	IMEISV      string
	IMEISVKnown bool
}

DMSSerialNumbers contains the hardware identifiers reported by DMS.

func (*DMSSerialNumbers) UnmarshalTLVs

func (r *DMSSerialNumbers) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Device Serial Numbers response TLVs.

type DMSSetAltNetworkConfigRequest

type DMSSetAltNetworkConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

DMSSetAltNetworkConfigRequest encodes Set Alt Net Config.

func (DMSSetAltNetworkConfigRequest) Request

Request converts the alternate-network flag into a QMI request.

type DMSSetBootImageDownloadModeRequest

type DMSSetBootImageDownloadModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mode          DMSBootImageDownloadMode
}

DMSSetBootImageDownloadModeRequest encodes DMS Set Boot Image Download Mode.

func (DMSSetBootImageDownloadModeRequest) Request

Request converts the request into a QMI DMS request.

type DMSSetEventReportRequest

type DMSSetEventReportRequest struct {
	ClientID            uint8
	TransactionID       uint16
	Timeout             time.Duration
	ReportOperatingMode bool
	Config              *DMSEventReportConfig
}

DMSSetEventReportRequest encodes QMI DMS Set Event Report for operating mode.

func (DMSSetEventReportRequest) Request

func (r DMSSetEventReportRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSSetFirmwareIDRequest

type DMSSetFirmwareIDRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSSetFirmwareIDRequest encodes DMS Set Firmware ID.

func (DMSSetFirmwareIDRequest) Request

func (r DMSSetFirmwareIDRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSSetFirmwarePreferenceRequest

type DMSSetFirmwarePreferenceRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSFirmwarePreferenceRequest
}

DMSSetFirmwarePreferenceRequest encodes DMS Set Firmware Preference.

func (DMSSetFirmwarePreferenceRequest) Request

Request converts the request into a QMI DMS request.

type DMSSetFirmwarePreferenceResponse

type DMSSetFirmwarePreferenceResponse struct {
	ImageDownloadList      []DMSFirmwareImageType
	ImageDownloadListKnown bool
	MaximumBuildIDLength   uint8
	MaximumBuildIDKnown    bool
}

DMSSetFirmwarePreferenceResponse contains image types selected for download.

func (*DMSSetFirmwarePreferenceResponse) UnmarshalTLVs

func (r *DMSSetFirmwarePreferenceResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS Set Firmware Preference response.

type DMSSetOperatingModeRequest

type DMSSetOperatingModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mode          DMSOperatingMode
}

DMSSetOperatingModeRequest encodes QMI DMS Set Operating Mode.

func (DMSSetOperatingModeRequest) Request

func (r DMSSetOperatingModeRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSSetSPCRequest

type DMSSetSPCRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	CurrentSPC    string
	NewSPC        string
}

DMSSetSPCRequest encodes Set Service Programming Code.

func (DMSSetSPCRequest) Request

func (r DMSSetSPCRequest) Request() (Request, error)

Request validates and converts the SPC replacement into a QMI request.

type DMSSetTimeRequest

type DMSSetTimeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Milliseconds  uint64
	Reference     DMSTimeReference
}

DMSSetTimeRequest encodes Set Time in GPS-epoch milliseconds.

func (DMSSetTimeRequest) Request

func (r DMSSetTimeRequest) Request() (Request, error)

Request validates and converts the timestamp into a QMI request.

type DMSSetUserLockCodeRequest

type DMSSetUserLockCodeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	CurrentCode   string
	NewCode       string
}

DMSSetUserLockCodeRequest encodes the legacy Set User Lock Code message.

func (DMSSetUserLockCodeRequest) Request

func (r DMSSetUserLockCodeRequest) Request() (Request, error)

Request validates and converts the lock-code replacement into a QMI request.

type DMSSetUserLockStateRequest

type DMSSetUserLockStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
	Code          string
}

DMSSetUserLockStateRequest encodes the legacy Set User Lock State message.

func (DMSSetUserLockStateRequest) Request

func (r DMSSetUserLockStateRequest) Request() (Request, error)

Request validates and converts the user-lock update into a QMI request.

type DMSSimultaneousVoiceDataCapability

type DMSSimultaneousVoiceDataCapability uint64

DMSSimultaneousVoiceDataCapability is the simultaneous voice/data mask.

const (
	DMSSimultaneousVoiceDataSVLTE DMSSimultaneousVoiceDataCapability = 1 << iota
	DMSSimultaneousVoiceDataSVDO
	DMSSimultaneousVoiceDataSGLTE
)

type DMSSoftwareVersion

type DMSSoftwareVersion struct {
	Version string

	Images         []DMSImageVersion
	ImagesKnown    bool
	Extended       string
	ExtendedKnown  bool
	Secondary      string
	SecondaryKnown bool
}

DMSSoftwareVersion contains the modem and component software versions.

func (*DMSSoftwareVersion) UnmarshalTLVs

func (r *DMSSoftwareVersion) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI DMS Get Software Version response TLVs.

type DMSStoredImage

type DMSStoredImage struct {
	StorageIndex uint8
	FailureCount uint8
	UniqueID     [dmsFirmwareUniqueIDLength]byte
	BuildID      string
}

DMSStoredImage identifies one image stored on the modem.

type DMSStoredImageInfo

type DMSStoredImageInfo struct {
	BootMajorVersion uint16
	BootMinorVersion uint16
	BootVersionKnown bool
	PRIVersion       uint32
	PRIInfo          string
	PRIVersionKnown  bool
	OEMLockID        uint32
	OEMLockIDKnown   bool
}

DMSStoredImageInfo contains optional details for one stored image.

func (*DMSStoredImageInfo) UnmarshalTLVs

func (r *DMSStoredImageInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI DMS Get Stored Image Info response.

type DMSStoredImageInfoRequest

type DMSStoredImageInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Image         DMSFirmwareImage
}

DMSStoredImageInfoRequest identifies an image for detailed information.

func (DMSStoredImageInfoRequest) Request

func (r DMSStoredImageInfoRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSStoredImageSet

type DMSStoredImageSet struct {
	Type              DMSFirmwareImageType
	MaximumImages     uint8
	RunningImageIndex uint8
	Images            []DMSStoredImage
}

DMSStoredImageSet groups stored images of one firmware type.

type DMSStoredImages

type DMSStoredImages struct {
	Images []DMSStoredImageSet
}

DMSStoredImages contains all stored image groups.

type DMSSubscription

type DMSSubscription uint32

DMSSubscription identifies a modem subscription for the DMS service.

const (
	DMSSubscriptionPrimary DMSSubscription = 1 + iota
	DMSSubscriptionSecondary
	DMSSubscriptionTertiary
)

type DMSSubscriptionCapability

type DMSSubscriptionCapability uint64

DMSSubscriptionCapability is the RAT capability mask for one subscription.

const (
	DMSSubscriptionCapabilityAMPS DMSSubscriptionCapability = 1 << iota
	DMSSubscriptionCapabilityCDMA
	DMSSubscriptionCapabilityHDR
	DMSSubscriptionCapabilityGSM
	DMSSubscriptionCapabilityWCDMA
	DMSSubscriptionCapabilityLTE
	DMSSubscriptionCapabilityTDSCDMA
	DMSSubscriptionCapabilityNR5G
)

type DMSSubscriptionFeatureMode

type DMSSubscriptionFeatureMode uint32

DMSSubscriptionFeatureMode identifies a modem subscription feature mode.

const (
	DMSSubscriptionFeatureNormal DMSSubscriptionFeatureMode = iota
	DMSSubscriptionFeatureSGLTE
	DMSSubscriptionFeatureSVLTE
	DMSSubscriptionFeatureSRLTE
	DMSSubscriptionFeatureDualMultimode
)

type DMSSubscriptionVoiceData

type DMSSubscriptionVoiceData struct {
	Capability DMSSubscriptionVoiceDataCapability
	Concurrent bool
}

DMSSubscriptionVoiceData contains the mode and concurrency flag for one subscription.

func (DMSSubscriptionVoiceData) MarshalBinary

func (c DMSSubscriptionVoiceData) MarshalBinary() ([]byte, error)

MarshalBinary encodes one subscription voice/data capability.

func (*DMSSubscriptionVoiceData) UnmarshalBinary

func (c *DMSSubscriptionVoiceData) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes one subscription voice/data capability.

type DMSSubscriptionVoiceDataCapability

type DMSSubscriptionVoiceDataCapability uint32

DMSSubscriptionVoiceDataCapability describes one subscription's voice/data mode.

const (
	DMSSubscriptionVoiceDataNormal DMSSubscriptionVoiceDataCapability = 1 + iota
	DMSSubscriptionVoiceDataSGLTE
	DMSSubscriptionVoiceDataCSFB
	DMSSubscriptionVoiceDataSVLTE
	DMSSubscriptionVoiceDataSRLTE
)

type DMSTimeReference

type DMSTimeReference uint32

DMSTimeReference selects the time base updated by Set Time.

const DMSTimeReferenceUser DMSTimeReference = 0

type DMSTimeSource

type DMSTimeSource uint16

DMSTimeSource identifies the source used for a DMS device timestamp.

const (
	DMSTimeSourceDeviceClock DMSTimeSource = iota
	DMSTimeSourceCDMA
	DMSTimeSourceHDR
)

type DMSUIMChangePINRequest

type DMSUIMChangePINRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSPINChangeRequest
}

DMSUIMChangePINRequest encodes DMS UIM Change PIN.

func (DMSUIMChangePINRequest) Request

func (r DMSUIMChangePINRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSUIMFacility

type DMSUIMFacility uint8

DMSUIMFacility identifies a legacy DMS UIM personalization facility.

const (
	DMSUIMFacilityNetwork         DMSUIMFacility = 0x00
	DMSUIMFacilityNetworkSubset   DMSUIMFacility = 0x01
	DMSUIMFacilityServiceProvider DMSUIMFacility = 0x02
	DMSUIMFacilityCorporate       DMSUIMFacility = 0x03
	DMSUIMFacilityUIM             DMSUIMFacility = 0x04
)

type DMSUIMGetCKStatusRequest

type DMSUIMGetCKStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Facility      DMSUIMFacility
}

DMSUIMGetCKStatusRequest encodes DMS UIM Get CK Status.

func (DMSUIMGetCKStatusRequest) Request

func (r DMSUIMGetCKStatusRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSUIMGetICCIDRequest

type DMSUIMGetICCIDRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSUIMGetICCIDRequest encodes DMS UIM Get ICCID.

func (DMSUIMGetICCIDRequest) Request

func (r DMSUIMGetICCIDRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSUIMGetIMSIRequest

type DMSUIMGetIMSIRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSUIMGetIMSIRequest encodes DMS UIM Get IMSI.

func (DMSUIMGetIMSIRequest) Request

func (r DMSUIMGetIMSIRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSUIMGetPINStatusRequest

type DMSUIMGetPINStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSUIMGetPINStatusRequest encodes DMS UIM Get PIN Status.

func (DMSUIMGetPINStatusRequest) Request

func (r DMSUIMGetPINStatusRequest) Request() Request

Request converts the request into a QMI DMS request.

type DMSUIMGetStateRequest

type DMSUIMGetStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DMSUIMGetStateRequest encodes the legacy UIM Get State message.

func (DMSUIMGetStateRequest) Request

func (r DMSUIMGetStateRequest) Request() Request

Request converts the query into a QMI request.

type DMSUIMGetStateResponse

type DMSUIMGetStateResponse struct {
	State DMSUIMState
}

DMSUIMGetStateResponse contains the legacy UIM initialization state.

func (*DMSUIMGetStateResponse) UnmarshalTLVs

func (r *DMSUIMGetStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory UIM state.

type DMSUIMSetCKProtectionRequest

type DMSUIMSetCKProtectionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSCKProtectionRequest
}

DMSUIMSetCKProtectionRequest encodes UIM Set CK Protection.

func (DMSUIMSetCKProtectionRequest) Request

Request validates and converts the facility update into a QMI request.

type DMSUIMSetPINProtectionRequest

type DMSUIMSetPINProtectionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSPINProtectionRequest
}

DMSUIMSetPINProtectionRequest encodes DMS UIM Set PIN Protection.

func (DMSUIMSetPINProtectionRequest) Request

Request converts the request into a QMI DMS request.

type DMSUIMState

type DMSUIMState uint8

DMSUIMState identifies the initialization state of the legacy DMS UIM view.

const (
	DMSUIMStateInitializationCompleted DMSUIMState = iota
	DMSUIMStateInitializationFailed
	DMSUIMStateNotPresent
	DMSUIMStateUnavailable DMSUIMState = 0xFF
)

type DMSUIMUnblockCKRequest

type DMSUIMUnblockCKRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSCKUnblockRequest
}

DMSUIMUnblockCKRequest encodes UIM Unblock CK.

func (DMSUIMUnblockCKRequest) Request

func (r DMSUIMUnblockCKRequest) Request() (Request, error)

Request validates and converts the unblock operation into a QMI request.

type DMSUIMUnblockPINRequest

type DMSUIMUnblockPINRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSPINUnblockRequest
}

DMSUIMUnblockPINRequest encodes DMS UIM Unblock PIN.

func (DMSUIMUnblockPINRequest) Request

func (r DMSUIMUnblockPINRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSUIMVerifyPINRequest

type DMSUIMVerifyPINRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Info          DMSPINVerifyRequest
}

DMSUIMVerifyPINRequest encodes DMS UIM Verify PIN.

func (DMSUIMVerifyPINRequest) Request

func (r DMSUIMVerifyPINRequest) Request() (Request, error)

Request converts the request into a QMI DMS request.

type DMSValidateSPCRequest

type DMSValidateSPCRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	SPC           string
}

DMSValidateSPCRequest encodes Validate Service Programming Code.

func (DMSValidateSPCRequest) Request

func (r DMSValidateSPCRequest) Request() (Request, error)

Request validates and converts the SPC into a QMI request.

type DMSVoiceSupportCapability

type DMSVoiceSupportCapability uint64

DMSVoiceSupportCapability is the voice technology support mask.

const (
	DMSVoiceSupportGWCSFB DMSVoiceSupportCapability = 1 << iota
	DMSVoiceSupportCDMA1XCSFB
	DMSVoiceSupportVoLTE
)

type DMSWriteUserDataRequest

type DMSWriteUserDataRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Data          []byte
}

DMSWriteUserDataRequest encodes the legacy Write User Data message.

func (DMSWriteUserDataRequest) Request

func (r DMSWriteUserDataRequest) Request() (Request, error)

Request validates and converts the persistent payload into a QMI request.

type DPMCapabilities

type DPMCapabilities struct {
	ShimSupported      bool
	ShimSupportedKnown bool
	ReverseIPSync      bool
	ReverseIPSyncKnown bool
	CLATSupported      bool
	CLATSupportedKnown bool
}

DPMCapabilities reports optional data-port mapper features.

type DPMClosePortConfig

type DPMClosePortConfig struct {
	ControlPortNames []string
	DataPorts        []DataEndpoint
}

DPMClosePortConfig selects the control and data ports to close.

func (DPMClosePortConfig) MarshalTLVs

func (c DPMClosePortConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes DPM close-port configuration.

type DPMClosePortRequest

type DPMClosePortRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        DPMClosePortConfig
}

DPMClosePortRequest encodes QMI DPM Close Port.

func (DPMClosePortRequest) Request

func (r DPMClosePortRequest) Request() (Request, error)

Request converts the selected ports into QMI DPM TLVs.

type DPMControlPort

type DPMControlPort struct {
	Name            string
	DefaultEndpoint DataEndpoint
}

DPMControlPort maps a QMI control-port name to its default data endpoint.

type DPMDataPortBufferInfo

type DPMDataPortBufferInfo struct {
	Endpoint           DataEndpoint
	UplinkFIFOSize     uint32
	DownlinkFIFOSize   uint32
	DownlinkBufferSize uint32
}

DPMDataPortBufferInfo describes the modem-facing FIFO sizes of a data port.

type DPMGetCapabilitiesRequest

type DPMGetCapabilitiesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DPMGetCapabilitiesRequest encodes Get Supported Capabilities.

func (DPMGetCapabilitiesRequest) Request

func (r DPMGetCapabilitiesRequest) Request() Request

Request converts the query into a QMI request.

type DPMGetCapabilitiesResponse

type DPMGetCapabilitiesResponse struct {
	Capabilities DPMCapabilities
}

DPMGetCapabilitiesResponse contains parsed optional feature flags.

func (*DPMGetCapabilitiesResponse) UnmarshalTLVs

func (r *DPMGetCapabilitiesResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Get Supported Capabilities response TLVs.

type DPMHardwareDataPort

type DPMHardwareDataPort struct {
	Endpoint     DataEndpoint
	ConsumerPipe uint32
	ProducerPipe uint32
}

DPMHardwareDataPort describes a hardware-accelerated data endpoint.

type DPMOpenPortConfig

type DPMOpenPortConfig struct {
	ControlPorts      []DPMControlPort
	HardwareDataPorts []DPMHardwareDataPort
	SoftwareDataPorts []DPMSoftwareDataPort
	DataPortBuffers   []DPMDataPortBufferInfo
}

DPMOpenPortConfig selects the control and data ports to open.

func (DPMOpenPortConfig) MarshalTLVs

func (c DPMOpenPortConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes DPM open-port configuration.

type DPMOpenPortRequest

type DPMOpenPortRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        DPMOpenPortConfig
}

DPMOpenPortRequest encodes QMI DPM Open Port.

func (DPMOpenPortRequest) Request

func (r DPMOpenPortRequest) Request() (Request, error)

Request converts the port mappings into QMI DPM TLVs.

type DPMSoftwareDataPort

type DPMSoftwareDataPort struct {
	Endpoint DataEndpoint
	Name     string
}

DPMSoftwareDataPort maps a software data endpoint to its port name.

type DSDAPNInfo

type DSDAPNInfo struct {
	Name      string
	NameKnown bool
}

DSDAPNInfo contains the APN mapped to a standardized APN type.

type DSDAPNType

type DSDAPNType uint32

DSDAPNType identifies one standardized APN use.

const (
	DSDAPNTypeDefault DSDAPNType = iota
	DSDAPNTypeIMS
	DSDAPNTypeMMS
	DSDAPNTypeDUN
	DSDAPNTypeSUPL
	DSDAPNTypeHIPRI
	DSDAPNTypeFOTA
	DSDAPNTypeCBS
	DSDAPNTypeIA
	DSDAPNTypeEmergency
)

type DSDAPNTypeConfig

type DSDAPNTypeConfig struct {
	Name           string
	Types          DSDAPNTypePreference
	PreferredTypes *DSDAPNTypePreference
}

DSDAPNTypeConfig assigns standardized uses to an APN. PreferredTypes is omitted when nil so callers do not overwrite a modem-specific preference.

func (DSDAPNTypeConfig) MarshalBinary

func (c DSDAPNTypeConfig) MarshalBinary() ([]byte, error)

MarshalBinary encodes the QMI DSD APN type aggregate.

type DSDAPNTypePreference

type DSDAPNTypePreference uint64

DSDAPNTypePreference is a mask of standardized APN uses.

const (
	DSDAPNTypePreferenceDefault DSDAPNTypePreference = 1 << iota
	DSDAPNTypePreferenceIMS
	DSDAPNTypePreferenceMMS
	DSDAPNTypePreferenceDUN
	DSDAPNTypePreferenceSUPL
	DSDAPNTypePreferenceHIPRI
	DSDAPNTypePreferenceFOTA
	DSDAPNTypePreferenceCBS
	DSDAPNTypePreferenceIA
	DSDAPNTypePreferenceEmergency
)

type DSDBindSubscriptionRequest

type DSDBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  DSDSubscription
}

DSDBindSubscriptionRequest encodes Bind Subscription.

func (DSDBindSubscriptionRequest) Request

func (r DSDBindSubscriptionRequest) Request() (Request, error)

Request validates and converts the subscription into a QMI request.

type DSDBindSubscriptionResponse

type DSDBindSubscriptionResponse struct {
	Subscription      DSDSubscription
	SubscriptionKnown bool
}

DSDBindSubscriptionResponse contains a bound subscription when reported.

func (*DSDBindSubscriptionResponse) UnmarshalTLVs

func (r *DSDBindSubscriptionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Bind Subscription response.

type DSDCurrentDDS

type DSDCurrentDDS struct {
	Subscription      DSDSubscription
	SubscriptionKnown bool
	SwitchType        DSDSwitchType
	SwitchTypeKnown   bool
}

DSDCurrentDDS contains the current default data subscription and switch type.

type DSDCurrentDDSIndication

type DSDCurrentDDSIndication struct {
	Current DSDCurrentDDS
}

DSDCurrentDDSIndication contains a current-DDS update.

func (*DSDCurrentDDSIndication) UnmarshalTLVs

func (i *DSDCurrentDDSIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Current DDS indication.

type DSDGetAPNInfoRequest

type DSDGetAPNInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          DSDAPNType
}

DSDGetAPNInfoRequest encodes QMI DSD Get APN Info.

func (DSDGetAPNInfoRequest) Request

func (r DSDGetAPNInfoRequest) Request() (Request, error)

Request validates and converts the APN lookup into a QMI request.

type DSDGetAPNInfoResponse

type DSDGetAPNInfoResponse struct {
	Info DSDAPNInfo
}

DSDGetAPNInfoResponse is the parsed APN lookup response.

func (*DSDGetAPNInfoResponse) UnmarshalTLVs

func (r *DSDGetAPNInfoResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional APN name.

type DSDGetBindSubscriptionRequest

type DSDGetBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DSDGetBindSubscriptionRequest encodes Get Bind Subscription.

func (DSDGetBindSubscriptionRequest) Request

Request converts the query into a QMI request.

type DSDGetCurrentDDSRequest

type DSDGetCurrentDDSRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DSDGetCurrentDDSRequest encodes Get Current DDS.

func (DSDGetCurrentDDSRequest) Request

func (r DSDGetCurrentDDSRequest) Request() Request

Request converts the query into a QMI request.

type DSDGetCurrentDDSResponse

type DSDGetCurrentDDSResponse struct {
	Current DSDCurrentDDS
}

DSDGetCurrentDDSResponse contains parsed Get Current DDS fields.

func (*DSDGetCurrentDDSResponse) UnmarshalTLVs

func (r *DSDGetCurrentDDSResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Current DDS response.

type DSDGetSystemStatusRequest

type DSDGetSystemStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

DSDGetSystemStatusRequest encodes QMI DSD Get System Status.

func (DSDGetSystemStatusRequest) Request

func (r DSDGetSystemStatusRequest) Request() Request

Request converts the query into a QMI request.

type DSDGetSystemStatusResponse

type DSDGetSystemStatusResponse struct {
	Status DSDSystemStatus
}

DSDGetSystemStatusResponse is the parsed system-status response.

func (*DSDGetSystemStatusResponse) UnmarshalTLVs

func (r *DSDGetSystemStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common global DSD system-status fields.

type DSDIndicationConfig

type DSDIndicationConfig struct {
	CurrentDDS *bool
}

DSDIndicationConfig selects general DSD indications. Nil fields are omitted.

type DSDIndicationRegisterRequest

type DSDIndicationRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        DSDIndicationConfig
}

DSDIndicationRegisterRequest encodes Indication Register.

func (DSDIndicationRegisterRequest) Request

Request converts indication settings into QMI TLVs.

type DSDNetwork

type DSDNetwork uint32

DSDNetwork identifies the network family of an available data system.

const (
	DSDNetwork3GPP  DSDNetwork = 0
	DSDNetwork3GPP2 DSDNetwork = 1
	DSDNetworkWLAN  DSDNetwork = 2
)

type DSDNullBearerReason

type DSDNullBearerReason uint64

DSDNullBearerReason is a mask explaining why no preferred bearer exists.

const (
	DSDNullBearerReasonCSFB              DSDNullBearerReason = 1 << 0
	DSDNullBearerReasonOutOfService      DSDNullBearerReason = 1 << 1
	DSDNullBearerReasonLimitedService    DSDNullBearerReason = 1 << 2
	DSDNullBearerReasonVoiceSameSub      DSDNullBearerReason = 1 << 3
	DSDNullBearerReasonVoiceOtherSub     DSDNullBearerReason = 1 << 4
	DSDNullBearerReasonSRVCC             DSDNullBearerReason = 1 << 5
	DSDNullBearerReasonCircuitSwitchOnly DSDNullBearerReason = 1 << 6
	DSDNullBearerReasonAttachPending     DSDNullBearerReason = 1 << 7
)

type DSDPreferredSystems

type DSDPreferredSystems struct {
	Current     DSDSystem
	Recommended DSDSystem
}

DSDPreferredSystems contains the current and modem-recommended systems.

type DSDRAT

type DSDRAT uint32

DSDRAT identifies the radio access technology of a data system.

const (
	DSDRATNullBearer DSDRAT = 0x00
	DSDRATWCDMA      DSDRAT = 0x01
	DSDRATGERAN      DSDRAT = 0x02
	DSDRATLTE        DSDRAT = 0x03
	DSDRATTDSCDMA    DSDRAT = 0x04
	DSDRAT3GPPWLAN   DSDRAT = 0x05
	DSDRAT5G         DSDRAT = 0x06
	DSDRAT1X         DSDRAT = 0x65
	DSDRATHRPD       DSDRAT = 0x66
	DSDRATEHRPD      DSDRAT = 0x67
	DSDRAT3GPP2WLAN  DSDRAT = 0x68
	DSDRATWLAN       DSDRAT = 0xC9
)

type DSDServiceOptionMask

type DSDServiceOptionMask uint64

DSDServiceOptionMask describes the bearer capabilities active on a RAT.

const (
	DSDServiceOptionWCDMA          DSDServiceOptionMask = 1 << 0
	DSDServiceOptionHSDPA          DSDServiceOptionMask = 1 << 1
	DSDServiceOptionHSUPA          DSDServiceOptionMask = 1 << 2
	DSDServiceOptionHSDPAPlus      DSDServiceOptionMask = 1 << 3
	DSDServiceOptionDCHSDPAPlus    DSDServiceOptionMask = 1 << 4
	DSDServiceOption64QAM          DSDServiceOptionMask = 1 << 5
	DSDServiceOptionHSPA           DSDServiceOptionMask = 1 << 6
	DSDServiceOptionGPRS           DSDServiceOptionMask = 1 << 7
	DSDServiceOptionEDGE           DSDServiceOptionMask = 1 << 8
	DSDServiceOptionGSM            DSDServiceOptionMask = 1 << 9
	DSDServiceOptionS2B            DSDServiceOptionMask = 1 << 10
	DSDServiceOptionLimitedService DSDServiceOptionMask = 1 << 11
	DSDServiceOptionLTEFDD         DSDServiceOptionMask = 1 << 12
	DSDServiceOptionLTETDD         DSDServiceOptionMask = 1 << 13
	DSDServiceOptionTDSCDMA        DSDServiceOptionMask = 1 << 14
	DSDServiceOptionDCHSUPA        DSDServiceOptionMask = 1 << 15
	DSDServiceOptionLTECADownlink  DSDServiceOptionMask = 1 << 16
	DSDServiceOptionLTECAUplink    DSDServiceOptionMask = 1 << 17
	DSDServiceOptionS2BLimited     DSDServiceOptionMask = 1 << 18
	DSDServiceOption4Point5G       DSDServiceOptionMask = 1 << 19
	DSDServiceOption4Point5GPlus   DSDServiceOptionMask = 1 << 20
	DSDServiceOption1XIS95         DSDServiceOptionMask = 1 << 24
	DSDServiceOption1XIS2000       DSDServiceOptionMask = 1 << 25
	DSDServiceOption1XIS2000RelA   DSDServiceOptionMask = 1 << 26
	DSDServiceOptionHRPDRev0DPA    DSDServiceOptionMask = 1 << 27
	DSDServiceOptionHRPDRevADPA    DSDServiceOptionMask = 1 << 28
	DSDServiceOptionHRPDRevBDPA    DSDServiceOptionMask = 1 << 29
	DSDServiceOption5GTDD          DSDServiceOptionMask = 1 << 40
	DSDServiceOption5GSub6         DSDServiceOptionMask = 1 << 41
	DSDServiceOption5GMMWave       DSDServiceOptionMask = 1 << 42
	DSDServiceOption5GNSA          DSDServiceOptionMask = 1 << 43
	DSDServiceOption5GSA           DSDServiceOptionMask = 1 << 44
)

type DSDSetAPNTypeRequest

type DSDSetAPNTypeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        DSDAPNTypeConfig
}

DSDSetAPNTypeRequest encodes QMI DSD Set APN Type.

func (DSDSetAPNTypeRequest) Request

func (r DSDSetAPNTypeRequest) Request() (Request, error)

Request validates and converts the APN type assignment into QMI TLVs.

type DSDSubscription

type DSDSubscription uint32

DSDSubscription identifies a modem subscription.

const (
	DSDSubscriptionPrimary DSDSubscription = 1 + iota
	DSDSubscriptionSecondary
	DSDSubscriptionTertiary
)

type DSDSwitchDDSIndication

type DSDSwitchDDSIndication struct {
	Result DSDSwitchResult
}

DSDSwitchDDSIndication contains the result of a Switch DDS request.

func (*DSDSwitchDDSIndication) UnmarshalTLVs

func (i *DSDSwitchDDSIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Switch DDS indication.

type DSDSwitchDDSRequest

type DSDSwitchDDSRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  DSDSubscription
	SwitchType    *DSDSwitchType
}

DSDSwitchDDSRequest encodes Switch DDS.

func (DSDSwitchDDSRequest) Request

func (r DSDSwitchDDSRequest) Request() (Request, error)

Request validates and converts a DDS switch into QMI TLVs.

type DSDSwitchResult

type DSDSwitchResult uint32

DSDSwitchResult reports whether the modem accepted a DDS switch.

const (
	DSDSwitchAllowed DSDSwitchResult = iota
	DSDSwitchNotAllowed
	DSDSwitchFailed
)

type DSDSwitchType

type DSDSwitchType uint32

DSDSwitchType controls whether a default-data-subscription change persists.

const (
	DSDSwitchPermanent DSDSwitchType = iota
	DSDSwitchTemporary
)

type DSDSystem

type DSDSystem struct {
	Network        DSDNetwork
	RAT            DSDRAT
	ServiceOptions DSDServiceOptionMask
}

DSDSystem describes one available or preferred data system.

func (DSDSystem) MarshalBinary

func (s DSDSystem) MarshalBinary() ([]byte, error)

func (*DSDSystem) UnmarshalBinary

func (s *DSDSystem) UnmarshalBinary(value []byte) error

type DSDSystemStatus

type DSDSystemStatus struct {
	Available             []DSDSystem
	AvailableKnown        bool
	Preferred             DSDPreferredSystems
	PreferredKnown        bool
	NullBearerReason      DSDNullBearerReason
	NullBearerReasonKnown bool
}

DSDSystemStatus contains the stable global fields from QMI DSD system status. APN policy fields are intentionally left to higher-level callers.

func (*DSDSystemStatus) UnmarshalTLVs

func (s *DSDSystemStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common QMI DSD system-status fields.

type DSDSystemStatusChangeRequest

type DSDSystemStatusChangeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        DSDSystemStatusReportConfig
}

DSDSystemStatusChangeRequest encodes QMI DSD System Status Change.

func (DSDSystemStatusChangeRequest) Request

Request converts the indication settings into QMI TLVs.

type DSDSystemStatusReportConfig

type DSDSystemStatusReportConfig struct {
	LimitServiceOptionChanges *bool
	ReportChanges             *bool
	PreferredTechnologyOnly   *bool
	ReportNullBearerReason    *bool
}

DSDSystemStatusReportConfig updates selected system-status indication settings. Nil fields are omitted so callers do not overwrite settings they do not own.

type DataEndpoint

type DataEndpoint struct {
	Type        DataEndpointType
	InterfaceID uint32
}

DataEndpoint identifies a physical data channel exposed by the modem.

func (DataEndpoint) AppendBinary

func (e DataEndpoint) AppendBinary(dst []byte) ([]byte, error)

AppendBinary appends the QMI data_ep_id_type_v01 representation to dst.

func (DataEndpoint) MarshalBinary

func (e DataEndpoint) MarshalBinary() ([]byte, error)

MarshalBinary returns the QMI data_ep_id_type_v01 representation.

func (*DataEndpoint) ReadFrom

func (e *DataEndpoint) ReadFrom(r io.Reader) (int64, error)

ReadFrom reads the fixed-width QMI data_ep_id_type_v01 representation.

func (*DataEndpoint) UnmarshalBinary

func (e *DataEndpoint) UnmarshalBinary(data []byte) error

UnmarshalBinary decodes the QMI data_ep_id_type_v01 representation.

func (DataEndpoint) WriteTo

func (e DataEndpoint) WriteTo(w io.Writer) (int64, error)

WriteTo writes the QMI data_ep_id_type_v01 representation.

type DataEndpointType

type DataEndpointType uint32

DataEndpointType identifies the physical data transport endpoint.

const (
	DataEndpointReserved DataEndpointType = iota
	DataEndpointHSIC
	DataEndpointHSUSB
	DataEndpointPCIe
	DataEndpointEmbedded
	DataEndpointBAMDMUX
)

type EnvelopeResponse

type EnvelopeResponse struct {
	SW1  byte
	SW2  byte
	Data []byte
}

type File

type File struct {
	Session Session
	AID     []byte
	Path    []byte
}

type FileAttributes

type FileAttributes struct {
	FileStructure      FileStructure
	FileType           FileType
	FileID             uint16
	RecordSize         uint16
	RecordCount        uint16
	FileSize           uint16
	ReadSecurity       UIMFileSecurity
	WriteSecurity      UIMFileSecurity
	IncreaseSecurity   UIMFileSecurity
	DeactivateSecurity UIMFileSecurity
	ActivateSecurity   UIMFileSecurity
	Raw                []byte
}

func (*FileAttributes) UnmarshalTLVs

func (a *FileAttributes) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI UIM file-attributes response.

type FileStructure

type FileStructure byte
const (
	FileStructureTransparent FileStructure = 0x41
	FileStructureLinearFixed FileStructure = 0x42
)

type FileType

type FileType byte
const (
	FileTypeWorkingEF FileType = 0x21
	FileTypeDFOrADF   FileType = 0x38
)

type IMSABindRequest

type IMSABindRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  IMSASubscription
}

IMSABindRequest encodes QMI IMSA Bind.

func (IMSABindRequest) Request

func (r IMSABindRequest) Request() (Request, error)

Request validates and converts the subscription into a QMI request.

type IMSAGetBindRequest

type IMSAGetBindRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSAGetBindRequest encodes QMI IMSA Get Bind.

func (IMSAGetBindRequest) Request

func (r IMSAGetBindRequest) Request() Request

Request converts the query into a QMI request.

type IMSAGetBindResponse

type IMSAGetBindResponse struct {
	Subscription      IMSASubscription
	SubscriptionKnown bool
}

IMSAGetBindResponse contains the subscription bound to an IMSA client.

func (*IMSAGetBindResponse) UnmarshalTLVs

func (r *IMSAGetBindResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSA Get Bind response TLVs.

type IMSAGetRegistrationStatusRequest

type IMSAGetRegistrationStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSAGetRegistrationStatusRequest encodes QMI IMSA Get Registration Status.

func (IMSAGetRegistrationStatusRequest) Request

Request converts the request into a QMI IMSA request.

type IMSAGetServiceStatusRequest

type IMSAGetServiceStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSAGetServiceStatusRequest encodes QMI IMSA Get Service Status.

func (IMSAGetServiceStatusRequest) Request

Request converts the request into a QMI IMSA request.

type IMSAIndicationConfig

type IMSAIndicationConfig struct {
	RegistrationStatus *bool
	ServiceStatus      *bool
}

IMSAIndicationConfig selects IMSA status indications. Nil fields are omitted.

type IMSARegisterIndicationsRequest

type IMSARegisterIndicationsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        IMSAIndicationConfig
}

IMSARegisterIndicationsRequest encodes QMI IMSA Register Indications.

func (IMSARegisterIndicationsRequest) Request

Request converts the indication settings into a QMI request.

type IMSARegistrationStatusIndication

type IMSARegistrationStatusIndication struct {
	Status IMSAStatus
}

IMSARegistrationStatusIndication is a parsed registration-status change.

func (*IMSARegistrationStatusIndication) UnmarshalTLVs

func (i *IMSARegistrationStatusIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSA Registration Status Changed indication TLVs.

type IMSARegistrationStatusResponse

type IMSARegistrationStatusResponse struct {
	Status IMSAStatus
}

IMSARegistrationStatusResponse is the parsed QMI IMSA registration status.

func (*IMSARegistrationStatusResponse) UnmarshalTLVs

func (r *IMSARegistrationStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSA registration fields.

type IMSAServiceStatusIndication

type IMSAServiceStatusIndication struct {
	Status IMSAStatus
}

IMSAServiceStatusIndication is a parsed service-status change.

func (*IMSAServiceStatusIndication) UnmarshalTLVs

func (i *IMSAServiceStatusIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSA Services Status Changed indication TLVs.

type IMSAServiceStatusResponse

type IMSAServiceStatusResponse struct {
	Status IMSAStatus
}

IMSAServiceStatusResponse is the parsed QMI IMSA service status.

func (*IMSAServiceStatusResponse) UnmarshalTLVs

func (r *IMSAServiceStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSA VoIP service fields.

type IMSAStatus

type IMSAStatus struct {
	RegistrationKnown             bool
	Registration                  IMSRegistrationStatus
	FailureCodeKnown              bool
	FailureCode                   uint16
	RegistrationErrorMessageKnown bool
	RegistrationErrorMessage      string
	RegistrationRATKnown          bool
	RegistrationRAT               IMSServiceRAT
	SMSServiceKnown               bool
	SMSService                    IMSServiceStatus
	SMSRATKnown                   bool
	SMSRAT                        IMSServiceRAT
	VoIPServiceKnown              bool
	VoIPService                   IMSServiceStatus
	VoIPRATKnown                  bool
	VoIPRAT                       IMSServiceRAT
	VTServiceKnown                bool
	VTService                     IMSServiceStatus
	VTRATKnown                    bool
	VTRAT                         IMSServiceRAT
	UTServiceKnown                bool
	UTService                     IMSServiceStatus
	UTRATKnown                    bool
	UTRAT                         IMSServiceRAT
	VSServiceKnown                bool
	VSService                     IMSServiceStatus
	VSRATKnown                    bool
	VSRAT                         IMSServiceRAT
}

IMSAStatus contains IMS registration and VoIP service information from QMI IMSA.

func (IMSAStatus) IMSRegistered

func (s IMSAStatus) IMSRegistered() bool

IMSRegistered reports whether the modem is registered on IMS.

func (IMSAStatus) VoLTERegistered

func (s IMSAStatus) VoLTERegistered() bool

VoLTERegistered reports whether IMS VoIP service is registered over WWAN.

type IMSASubscription

type IMSASubscription uint32

IMSASubscription identifies the modem subscription used by an IMSA client.

const (
	IMSASubscriptionPrimary IMSASubscription = iota
	IMSASubscriptionSecondary
	IMSASubscriptionTertiary
)

type IMSBindRequest

type IMSBindRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  IMSSubscription
}

IMSBindRequest encodes QMI IMS Bind.

func (IMSBindRequest) Request

func (r IMSBindRequest) Request() (Request, error)

Request validates and converts the subscription into a QMI request.

type IMSCallModePreference

type IMSCallModePreference uint32

IMSCallModePreference selects the preferred access for IMS calls. Qualcomm's IDL encodes this enum in four bytes.

const (
	IMSCallModeNone IMSCallModePreference = iota
	IMSCallModeCellularPreferred
	IMSCallModeWiFiPreferred
	IMSCallModeWiFiOnly
	IMSCallModeCellularOnly
	IMSCallModeIMS
)

type IMSDCMAPNType

type IMSDCMAPNType uint32

IMSDCMAPNType identifies the purpose of an IMS DCM packet-data connection.

const (
	IMSDCMAPNIMS IMSDCMAPNType = iota
	IMSDCMAPNInternet
	IMSDCMAPNEmergency
	IMSDCMAPNRCS
	IMSDCMAPNUT
	IMSDCMAPNWLAN
)

type IMSDCMConnection

type IMSDCMConnection struct {
	APN           string
	APNType       IMSDCMAPNType
	RAT           IMSDCMRAT
	IPFamily      IMSDCMIPFamily
	WDSProfileNum uint32
}

IMSDCMConnection contains the mandatory PDP activation parameters.

func (IMSDCMConnection) MarshalBinary

func (c IMSDCMConnection) MarshalBinary() ([]byte, error)

MarshalBinary encodes the mandatory IMS DCM connection aggregate.

func (*IMSDCMConnection) UnmarshalBinary

func (c *IMSDCMConnection) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes the mandatory IMS DCM connection aggregate.

type IMSDCMIPFamily

type IMSDCMIPFamily uint32

IMSDCMIPFamily identifies the requested packet-data address family.

const (
	IMSDCMIPv4 IMSDCMIPFamily = iota
	IMSDCMIPv6
)

type IMSDCMInstance

type IMSDCMInstance int32

IMSDCMInstance identifies an IMS stack instance. Qualcomm's IDL defines -1, 0, 1, and 2; this intentionally differs from libqmi's uncertain enum.

const (
	IMSDCMInstanceNone   IMSDCMInstance = -1
	IMSDCMInstanceGlobal IMSDCMInstance = iota - 1
	IMSDCMInstance1
	IMSDCMInstance2
)

func (IMSDCMInstance) MarshalBinary

func (i IMSDCMInstance) MarshalBinary() ([]byte, error)

func (*IMSDCMInstance) UnmarshalBinary

func (i *IMSDCMInstance) UnmarshalBinary(value []byte) error

type IMSDCMPDPActivateRequest

type IMSDCMPDPActivateRequest struct {
	ClientID       uint8
	TransactionID  uint16
	Timeout        time.Duration
	Connection     IMSDCMConnection
	SequenceNumber *uint32
	SubscriptionID *uint32
	SlotID         *uint32
	Instance       *IMSDCMInstance
}

IMSDCMPDPActivateRequest encodes IMS DCM PDP Activate Request.

func (IMSDCMPDPActivateRequest) Request

func (r IMSDCMPDPActivateRequest) Request() (Request, error)

Request validates and converts PDP activation parameters into a QMI request.

type IMSDCMPDPActivateResponse

type IMSDCMPDPActivateResponse struct {
	PDPID               uint8
	PDPIDKnown          bool
	SequenceNumber      uint32
	SequenceNumberKnown bool
	Instance            IMSDCMInstance
	InstanceKnown       bool
}

IMSDCMPDPActivateResponse contains fields from the immediate activation response.

func (*IMSDCMPDPActivateResponse) UnmarshalTLVs

func (r *IMSDCMPDPActivateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMS DCM PDP Activate response TLVs.

type IMSDCMPDPActivation

type IMSDCMPDPActivation struct {
	PDPID               uint8
	SequenceNumber      uint32
	SequenceNumberKnown bool
	Address             netip.Addr
	AddressKnown        bool
	Instance            IMSDCMInstance
	InstanceKnown       bool
	ProtocolError       QMIError
	ProtocolErrorKnown  bool
	Err                 error
}

IMSDCMPDPActivation is the asynchronous result of a PDP activation request.

func (*IMSDCMPDPActivation) UnmarshalTLVs

func (r *IMSDCMPDPActivation) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses an IMS DCM PDP Activate indication.

type IMSDCMPDPDeactivateRequest

type IMSDCMPDPDeactivateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	PDPID         uint8
	Instance      *IMSDCMInstance
}

IMSDCMPDPDeactivateRequest encodes IMS DCM PDP Deactivate Request.

func (IMSDCMPDPDeactivateRequest) Request

func (r IMSDCMPDPDeactivateRequest) Request() (Request, error)

Request validates and converts the deactivation into a QMI request.

type IMSDCMPDPDeactivateResponse

type IMSDCMPDPDeactivateResponse struct {
	PDPID         uint8
	PDPIDKnown    bool
	Instance      IMSDCMInstance
	InstanceKnown bool
}

IMSDCMPDPDeactivateResponse contains the deactivated PDP and IMS instance.

func (*IMSDCMPDPDeactivateResponse) UnmarshalTLVs

func (r *IMSDCMPDPDeactivateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMS DCM PDP Deactivate response TLVs.

type IMSDCMRAT

type IMSDCMRAT uint32

IMSDCMRAT identifies the access technology for an IMS DCM connection.

const (
	IMSDCMRATEHRPD IMSDCMRAT = iota
	IMSDCMRATLTE
	IMSDCMRATEPC
	IMSDCMRATWLAN
)

type IMSGetPolicyManagerSettingsRequest

type IMSGetPolicyManagerSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSGetPolicyManagerSettingsRequest encodes Get IMS Policy Manager Settings.

func (IMSGetPolicyManagerSettingsRequest) Request

Request converts the query into a QMI request.

type IMSGetPolicyManagerSettingsResponse

type IMSGetPolicyManagerSettingsResponse struct {
	SettingsError      IMSSettingsError
	SettingsErrorKnown bool
	Settings           IMSPolicyManagerSettings
}

IMSGetPolicyManagerSettingsResponse contains current Policy Manager settings.

func (*IMSGetPolicyManagerSettingsResponse) UnmarshalTLVs

func (r *IMSGetPolicyManagerSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Get IMS Policy Manager Settings response TLVs.

type IMSGetServicesEnabledRequest

type IMSGetServicesEnabledRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSGetServicesEnabledRequest encodes Get IMS Services Enabled Setting.

func (IMSGetServicesEnabledRequest) Request

Request converts the query into a QMI request.

type IMSGetServicesEnabledResponse

type IMSGetServicesEnabledResponse struct {
	SettingsError      IMSSettingsError
	SettingsErrorKnown bool
	Services           IMSServicesEnabled
}

IMSGetServicesEnabledResponse contains current IMS service settings.

func (*IMSGetServicesEnabledResponse) UnmarshalTLVs

func (r *IMSGetServicesEnabledResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Get IMS Services Enabled response TLVs.

type IMSIndicationConfig

type IMSIndicationConfig struct {
	PolicyManager   *bool
	ServicesEnabled *bool
}

IMSIndicationConfig contains optional IMS Settings indication updates.

type IMSPDNConfig

type IMSPDNConfig struct {
	APN               string
	IPPreference      WDSIPPreference
	ProfileIndex      uint8
	RequestTimeout    time.Duration
	MuxDataPort       *WDSMuxDataPort
	LegacyMuxDataPort WDSSIOPort
	LegacyMuxFallback *WDSMuxDataPort
}

IMSPDNConfig describes the modem-side IMS PDN request.

type IMSPDNInfo

type IMSPDNInfo struct {
	PDNInfo
	PCSCFIPs      []net.IP
	IMCN          bool
	VoPSKnown     bool
	VoPSSupported bool
}

IMSPDNInfo contains IMS-specific state in addition to the underlying PDN.

type IMSPDNSession

type IMSPDNSession struct {
	// contains filtered or unexported fields
}

IMSPDNSession owns an IMS PDN and the NAS client used for VoPS state.

func (*IMSPDNSession) Close

func (s *IMSPDNSession) Close() error

Close stops the IMS PDN and releases its NAS client.

func (*IMSPDNSession) Info

func (s *IMSPDNSession) Info() IMSPDNInfo

Info returns a defensive copy of the IMS PDN state.

type IMSPEnablerState

type IMSPEnablerState uint32

IMSPEnablerState describes IMS presence initialization and registration.

const (
	IMSPEnablerUninitialized IMSPEnablerState = 1 + iota
	IMSPEnablerInitialized
	IMSPEnablerAirplane
	IMSPEnablerRegistered
)

type IMSPGetEnablerStateRequest

type IMSPGetEnablerStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

IMSPGetEnablerStateRequest encodes IMSP Get Enabler State.

func (IMSPGetEnablerStateRequest) Request

func (r IMSPGetEnablerStateRequest) Request() Request

Request converts the query into a QMI request.

type IMSPGetEnablerStateResponse

type IMSPGetEnablerStateResponse struct {
	State IMSPEnablerState
}

IMSPGetEnablerStateResponse contains the current IMS presence state.

func (*IMSPGetEnablerStateResponse) UnmarshalTLVs

func (r *IMSPGetEnablerStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMSP Get Enabler State response TLVs.

type IMSPolicyManagerAPNs

type IMSPolicyManagerAPNs [imsPolicyManagerAPNCount]string

IMSPolicyManagerAPNs is the fixed six-entry APN list used by IMS Settings.

func (IMSPolicyManagerAPNs) MarshalBinary

func (a IMSPolicyManagerAPNs) MarshalBinary() ([]byte, error)

MarshalBinary encodes six size-prefixed APN strings.

func (*IMSPolicyManagerAPNs) UnmarshalBinary

func (a *IMSPolicyManagerAPNs) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes six size-prefixed APN strings.

type IMSPolicyManagerConfig

type IMSPolicyManagerConfig struct {
	ACSPriority  *uint8
	ISIMPriority *uint8
	NVPriority   *uint8
	PCOPriority  *uint8
	ServiceMask  *IMSServiceMask
	APNs         *IMSPolicyManagerAPNs
}

IMSPolicyManagerConfig contains optional Policy Manager updates.

type IMSPolicyManagerSettings

type IMSPolicyManagerSettings struct {
	ACSPriorityKnown  bool
	ACSPriority       uint8
	ISIMPriorityKnown bool
	ISIMPriority      uint8
	NVPriorityKnown   bool
	NVPriority        uint8
	PCOPriorityKnown  bool
	PCOPriority       uint8
	ServiceMaskKnown  bool
	ServiceMask       IMSServiceMask
	APNsKnown         bool
	APNs              IMSPolicyManagerAPNs
}

IMSPolicyManagerSettings contains Policy Manager settings reported by a modem.

type IMSPolicyManagerSettingsIndication

type IMSPolicyManagerSettingsIndication struct {
	Settings IMSPolicyManagerSettings
}

IMSPolicyManagerSettingsIndication is a Policy Manager settings change.

func (*IMSPolicyManagerSettingsIndication) UnmarshalTLVs

func (i *IMSPolicyManagerSettingsIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMS Policy Manager Settings indication TLVs.

type IMSRegisterIndicationsRequest

type IMSRegisterIndicationsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        IMSIndicationConfig
}

IMSRegisterIndicationsRequest encodes IMS Settings Config Indication Register.

func (IMSRegisterIndicationsRequest) Request

Request converts indication updates into QMI TLVs.

type IMSRegistrationStatus

type IMSRegistrationStatus uint32

IMSRegistrationStatus is the QMI IMSA registration state.

const (
	IMSRegistrationStatusNotRegistered IMSRegistrationStatus = 0
	IMSRegistrationStatusRegistering   IMSRegistrationStatus = 1
	IMSRegistrationStatusRegistered    IMSRegistrationStatus = 2
	IMSRegistrationStatusLimited       IMSRegistrationStatus = 3
)

type IMSSSetTestModeRequest

type IMSSSetTestModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

IMSSSetTestModeRequest encodes QMI IMSS Set Registration Manager Config.

func (IMSSSetTestModeRequest) Request

func (r IMSSSetTestModeRequest) Request() Request

Request converts the request into a QMI IMSS request.

type IMSSTestModeResponse

type IMSSTestModeResponse struct {
	Enabled bool
}

IMSSTestModeResponse is the parsed registration manager configuration.

func (*IMSSTestModeResponse) UnmarshalTLVs

func (r *IMSSTestModeResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI IMSS Get Registration Manager Config response TLVs.

type IMSServiceMask

type IMSServiceMask uint64

IMSServiceMask selects IMS services in policy-manager settings.

const (
	IMSServiceVoLTE IMSServiceMask = 1 << iota
	IMSServiceVideoTelephony
	IMSServiceSMS
	IMSServiceInstantMessaging
	IMSServiceVideoShare
	IMSServiceImageShare
	IMSServiceMSRP
	IMSServiceGeoLocation
	IMSServicePresence
	IMSServiceFileTransfer
	IMSServiceRCS
	IMSServiceStandaloneMessaging
	IMSServiceFileTransferThumbnail
	IMSServiceFileTransferStoreForward
	IMSServiceFileTransferHTTP
	IMSServiceDefault
	IMSServiceVideoShareDuringCS
	IMSServiceSocialPresence
	IMSServiceCapabilityDiscovery
	IMSServiceGeoLocationPush
	IMSServiceGeoLocationPull
	IMSServiceFullGroupChat
)

type IMSServiceRAT

type IMSServiceRAT uint32

IMSServiceRAT is the access technology used by an IMS service.

const (
	IMSServiceRATWLAN  IMSServiceRAT = 0
	IMSServiceRATWWAN  IMSServiceRAT = 1
	IMSServiceRATIWLAN IMSServiceRAT = 2
)

type IMSServiceStatus

type IMSServiceStatus uint32

IMSServiceStatus is the QMI IMSA per-service availability state.

const (
	IMSServiceStatusNoService      IMSServiceStatus = 0
	IMSServiceStatusLimitedService IMSServiceStatus = 1
	IMSServiceStatusFullService    IMSServiceStatus = 2
)

type IMSServicesEnabled

type IMSServicesEnabled struct {
	VoiceOverLTEKnown   bool
	VoiceOverLTE        bool
	VideoTelephonyKnown bool
	VideoTelephony      bool
	VoiceWiFiKnown      bool
	VoiceWiFi           bool
	CallModeKnown       bool
	CallMode            IMSCallModePreference
	IMSKnown            bool
	IMS                 bool
	UTKnown             bool
	UT                  bool
	SMSKnown            bool
	SMS                 bool
	USSDKnown           bool
	USSD                bool
	PresenceKnown       bool
	Presence            bool
	AutoconfigKnown     bool
	Autoconfig          bool
	XDMKnown            bool
	XDM                 bool
	RCSKnown            bool
	RCS                 bool
	CarrierConfigKnown  bool
	CarrierConfig       bool
}

IMSServicesEnabled contains service settings reported by the modem.

type IMSServicesEnabledConfig

type IMSServicesEnabledConfig struct {
	VoiceOverLTE   *bool
	VideoTelephony *bool
	VoiceWiFi      *bool
	CallMode       *IMSCallModePreference
	IMS            *bool
	UT             *bool
	SMS            *bool
	USSD           *bool
	Presence       *bool
	Autoconfig     *bool
	XDM            *bool
	RCS            *bool
	CarrierConfig  *bool
}

IMSServicesEnabledConfig contains optional IMS service updates.

type IMSServicesEnabledIndication

type IMSServicesEnabledIndication struct {
	Services IMSServicesEnabled
}

IMSServicesEnabledIndication is an IMS service-settings change.

func (*IMSServicesEnabledIndication) UnmarshalTLVs

func (i *IMSServicesEnabledIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMS Services Enabled Setting indication TLVs.

type IMSSetPolicyManagerSettingsRequest

type IMSSetPolicyManagerSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        IMSPolicyManagerConfig
}

IMSSetPolicyManagerSettingsRequest encodes Set IMS Policy Manager Settings.

func (IMSSetPolicyManagerSettingsRequest) Request

Request validates and converts Policy Manager updates into QMI TLVs.

type IMSSetPolicyManagerSettingsResponse

type IMSSetPolicyManagerSettingsResponse struct {
	SettingsError      IMSSettingsError
	SettingsErrorKnown bool
}

IMSSetPolicyManagerSettingsResponse contains the settings-specific result.

func (*IMSSetPolicyManagerSettingsResponse) UnmarshalTLVs

func (r *IMSSetPolicyManagerSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Set IMS Policy Manager Settings response TLVs.

type IMSSetServicesEnabledRequest

type IMSSetServicesEnabledRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        IMSServicesEnabledConfig
}

IMSSetServicesEnabledRequest encodes Set IMS Services Enabled Setting.

func (IMSSetServicesEnabledRequest) Request

Request validates and converts IMS service updates into QMI TLVs.

type IMSSetServicesEnabledResponse

type IMSSetServicesEnabledResponse struct {
	SettingsError      IMSSettingsError
	SettingsErrorKnown bool
}

IMSSetServicesEnabledResponse contains the settings-specific result.

func (*IMSSetServicesEnabledResponse) UnmarshalTLVs

func (r *IMSSetServicesEnabledResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Set IMS Services Enabled response TLVs.

type IMSSettingsError

type IMSSettingsError uint8

IMSSettingsError is an IMS Settings service-specific response code. Qualcomm's IDL encodes this enum in one byte.

const (
	IMSSettingsNoError IMSSettingsError = iota
	IMSSettingsNotReady
	IMSSettingsFileNotAvailable
	IMSSettingsReadFailure
	IMSSettingsWriteFailure
	IMSSettingsInternalError
	IMSSettingsValueNotSupported
)

type IMSSubscription

type IMSSubscription int32

IMSSubscription identifies a modem subscription for IMS Settings.

const (
	IMSSubscriptionNone      IMSSubscription = -1
	IMSSubscriptionPrimary   IMSSubscription = 0
	IMSSubscriptionSecondary IMSSubscription = 1
	IMSSubscriptionTertiary  IMSSubscription = 2
)

type Indication

type Indication struct {
	Service       ServiceType
	ClientID      uint8
	TransactionID uint16
	MessageID     MessageID
	TLVs          tlv.TLVs
}

Indication is an unsolicited QMI message delivered outside a request/response transaction.

type IndicationTransport

type IndicationTransport interface {
	Transport
	Indications(ctx context.Context, service ServiceType, clientID uint8, id MessageID) (<-chan Indication, error)
}

IndicationTransport extends Transport with indication delivery.

Indications returns a channel for unsolicited messages matching service, clientID, and id. The channel is closed when ctx is done or the transport closes. Transports preserve indication order and do not silently drop messages while the subscription is active.

type InternalOpenRequest

type InternalOpenRequest struct {
	TransactionID uint16
	DevicePath    []byte
}

func (InternalOpenRequest) Request

func (r InternalOpenRequest) Request() Request

type LOCAltitudeDependency

type LOCAltitudeDependency uint32

LOCAltitudeDependency describes horizontal and vertical interdependence.

const (
	LOCAltitudeDependencyUnknown LOCAltitudeDependency = iota
	LOCAltitudeFullyInterdependent
	LOCAltitudeDependsOnLatitudeLongitude
	LOCAltitudeFullyIndependent
)

type LOCAltitudeSource

type LOCAltitudeSource uint32

LOCAltitudeSource identifies where injected altitude was obtained.

const (
	LOCAltitudeUnknown LOCAltitudeSource = iota
	LOCAltitudeGPS
	LOCAltitudeCellID
	LOCAltitudeEnhancedCellID
	LOCAltitudeWiFi
	LOCAltitudeTerrestrial
	LOCAltitudeTerrestrialHybrid
	LOCAltitudeDatabase
	LOCAltitudeBarometer
	LOCAltitudeOther
)

type LOCAltitudeSourceInfo

type LOCAltitudeSourceInfo struct {
	Source      LOCAltitudeSource
	Dependency  LOCAltitudeDependency
	Uncertainty LOCAltitudeUncertainty
}

LOCAltitudeSourceInfo describes the provenance of injected altitude.

type LOCAltitudeUncertainty

type LOCAltitudeUncertainty uint32

LOCAltitudeUncertainty describes the region covered by altitude uncertainty.

const (
	LOCAltitudeUncertaintyUnknown LOCAltitudeUncertainty = iota
	LOCAltitudeUncertaintyAtPoint
	LOCAltitudeUncertaintyFullRegion
)

type LOCAssistanceDataPart

type LOCAssistanceDataPart struct {
	TotalSize  uint32
	TotalParts uint16
	PartNumber uint16
	Data       []byte
}

LOCAssistanceDataPart is one protocol-level assistance-data fragment. Part numbering is passed through unchanged because modem families differ in the convention they expect.

func (LOCAssistanceDataPart) MarshalTLVs

func (p LOCAssistanceDataPart) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes one LOC assistance-data fragment.

type LOCAssistanceDataPartIndication

type LOCAssistanceDataPartIndication struct {
	Result LOCIndicationResult
	Part   LOCAssistanceDataPartResult
}

LOCAssistanceDataPartIndication is an asynchronous fragment acknowledgement.

func (*LOCAssistanceDataPartIndication) UnmarshalTLVs

func (i *LOCAssistanceDataPartIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses an assistance-data fragment acknowledgement.

type LOCAssistanceDataPartResult

type LOCAssistanceDataPartResult struct {
	PartNumber      uint16
	PartNumberKnown bool
}

LOCAssistanceDataPartResult acknowledges an injected fragment.

type LOCAssistanceServer

type LOCAssistanceServer struct {
	Type      LOCServerType
	TypeKnown bool
	IPv4      *LOCIPv4Server
	IPv6      *LOCIPv6Server
	URL       *string
}

LOCAssistanceServer contains server fields returned by the modem.

type LOCClientType

type LOCClientType uint32

LOCClientType identifies a client registering with the location engine.

const (
	LOCClientApplicationFramework LOCClientType = iota + 1
	LOCClientNonFramework
	LOCClientPrivileged
)

type LOCDeleteAssistanceDataConfig

type LOCDeleteAssistanceDataConfig struct {
	DeleteAll    *bool
	Satellites   []LOCDeleteSatellite
	GNSSData     *LOCDeleteGNSSData
	CellDatabase *LOCDeleteCellDatabase
	ClockInfo    *LOCDeleteClockInfo
}

LOCDeleteAssistanceDataConfig selects standard assistance data to remove.

type LOCDeleteAssistanceDataRequest

type LOCDeleteAssistanceDataRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCDeleteAssistanceDataConfig
}

LOCDeleteAssistanceDataRequest encodes QMI LOC Delete Assistance Data.

func (LOCDeleteAssistanceDataRequest) Request

Request converts deletion selectors into LOC TLVs.

type LOCDeleteCellDatabase

type LOCDeleteCellDatabase uint32

LOCDeleteCellDatabase is a mask selecting cached cellular locations.

const (
	LOCDeleteCellPosition LOCDeleteCellDatabase = 1 << iota
	LOCDeleteCellLatestGPSPosition
	LOCDeleteCellOTAPosition
	LOCDeleteCellExternalReferencePosition
	LOCDeleteCellTimeTag
	LOCDeleteCellID
	LOCDeleteCellCachedID
	LOCDeleteCellLastServing
	LOCDeleteCellCurrentServing
	LOCDeleteCellNeighbors
)

type LOCDeleteClockInfo

type LOCDeleteClockInfo uint32

LOCDeleteClockInfo is a mask selecting cached engine clock state.

const (
	LOCDeleteClockTimeEstimate LOCDeleteClockInfo = 1 << iota
	LOCDeleteClockFrequencyEstimate
	LOCDeleteClockWeekNumber
	LOCDeleteClockRTCTime
	LOCDeleteClockTimeTransfer
	LOCDeleteClockGPSTimeEstimate
	LOCDeleteClockGLONASSTimeEstimate
	LOCDeleteClockGLONASSDayNumber
	LOCDeleteClockGLONASSYearNumber
	LOCDeleteClockGLONASSRFGroupDelay
	LOCDeleteClockDisableTimeTransfer
)

type LOCDeleteGNSSData

type LOCDeleteGNSSData uint64

LOCDeleteGNSSData is a mask selecting global GNSS assistance data.

const (
	LOCDeleteGPSSVDir LOCDeleteGNSSData = 1 << iota
	LOCDeleteGPSSVSteer
	LOCDeleteGPSTime
	LOCDeleteGPSAlmanacCorrection
	LOCDeleteGLONASSSVDir
	LOCDeleteGLONASSSVSteer
	LOCDeleteGLONASSTime
	LOCDeleteGLONASSAlmanacCorrection
	LOCDeleteSBASSVDir
	LOCDeleteSBASSVSteer
	LOCDeletePosition
	LOCDeleteTime
	LOCDeleteIonosphere
	LOCDeleteUTC
	LOCDeleteHealth
	LOCDeleteSAData
	LOCDeleteRTI
	LOCDeleteSVNoExist
	LOCDeleteFrequencyBiasEstimate
)

type LOCDeleteSatellite

type LOCDeleteSatellite struct {
	ID     uint16
	System LOCSystem
	Info   LOCDeleteSatelliteInfo
}

LOCDeleteSatellite selects assistance data for one GNSS satellite.

type LOCDeleteSatelliteInfo

type LOCDeleteSatelliteInfo uint8

LOCDeleteSatelliteInfo is one satellite-specific assistance deletion.

const (
	LOCDeleteSatelliteEphemeris LOCDeleteSatelliteInfo = 1 << iota
	LOCDeleteSatelliteAlmanac
)

type LOCDilutionOfPrecision

type LOCDilutionOfPrecision struct {
	Position   float32
	Horizontal float32
	Vertical   float32
}

LOCDilutionOfPrecision contains position, horizontal, and vertical DOP.

type LOCEngineState

type LOCEngineState int32

LOCEngineState identifies whether the location engine is running.

const (
	LOCEngineOn LOCEngineState = iota + 1
	LOCEngineOff
)

type LOCEngineStateIndication

type LOCEngineStateIndication struct {
	State LOCEngineState
}

LOCEngineStateIndication contains one engine-state change.

func (*LOCEngineStateIndication) UnmarshalTLVs

func (i *LOCEngineStateIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Engine State indication.

type LOCEventRegistration

type LOCEventRegistration uint64

LOCEventRegistration is a mask selecting location-engine indications.

const (
	LOCEventPositionReport               LOCEventRegistration = 1 << 0
	LOCEventGNSSSatelliteInfo            LOCEventRegistration = 1 << 1
	LOCEventNMEA                         LOCEventRegistration = 1 << 2
	LOCEventNINotifyVerifyRequest        LOCEventRegistration = 1 << 3
	LOCEventInjectTimeRequest            LOCEventRegistration = 1 << 4
	LOCEventInjectPredictedOrbitsRequest LOCEventRegistration = 1 << 5
	LOCEventInjectPositionRequest        LOCEventRegistration = 1 << 6
	LOCEventEngineState                  LOCEventRegistration = 1 << 7
	LOCEventFixSessionState              LOCEventRegistration = 1 << 8
	LOCEventWiFiRequest                  LOCEventRegistration = 1 << 9
	LOCEventSensorStreamingReady         LOCEventRegistration = 1 << 10
	LOCEventTimeSyncRequest              LOCEventRegistration = 1 << 11
	LOCEventSPIStreamingReport           LOCEventRegistration = 1 << 12
	LOCEventServerConnectionRequest      LOCEventRegistration = 1 << 13
	LOCEventNIGeofenceNotification       LOCEventRegistration = 1 << 14
	LOCEventGeofenceGeneralAlert         LOCEventRegistration = 1 << 15
	LOCEventGeofenceBreachNotification   LOCEventRegistration = 1 << 16
	LOCEventPedometerControl             LOCEventRegistration = 1 << 17
	LOCEventMotionDataControl            LOCEventRegistration = 1 << 18
)

type LOCFixRecurrence

type LOCFixRecurrence uint32

LOCFixRecurrence selects single or periodic position fixes.

const (
	LOCFixPeriodic LOCFixRecurrence = iota + 1
	LOCFixSingle
)

type LOCFixRecurrenceIndication

type LOCFixRecurrenceIndication struct {
	Recurrence LOCFixRecurrence
}

LOCFixRecurrenceIndication contains the active fix recurrence policy.

func (*LOCFixRecurrenceIndication) UnmarshalTLVs

func (i *LOCFixRecurrenceIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Fix Recurrence Type indication.

type LOCGNSSSatellite

type LOCGNSSSatellite struct {
	ValidInformation   LOCSatelliteValidInformation
	System             LOCSystem
	ID                 uint16
	Health             LOCSatelliteHealth
	Status             LOCSatelliteStatus
	NavigationData     LOCNavigationData
	ElevationDegrees   float32
	AzimuthDegrees     float32
	SignalToNoiseRatio float32
}

LOCGNSSSatellite contains one satellite entry in a GNSS SV Info indication.

type LOCGNSSSatelliteInfo

type LOCGNSSSatelliteInfo struct {
	AltitudeAssumed      bool
	AltitudeAssumedKnown bool
	Satellites           []LOCGNSSSatellite
	SatellitesKnown      bool
}

LOCGNSSSatelliteInfo contains the modem's current GNSS satellite view.

func (*LOCGNSSSatelliteInfo) UnmarshalTLVs

func (i *LOCGNSSSatelliteInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC GNSS SV Info indication.

type LOCGPSDateTime

type LOCGPSDateTime struct {
	Weeks                  uint16
	TimeOfWeekMilliseconds uint32
}

LOCGPSDateTime is GPS week time carried by LOC messages.

type LOCGetEngineLockIndication

type LOCGetEngineLockIndication struct {
	Result    LOCIndicationResult
	Lock      LOCLockType
	LockKnown bool
}

LOCGetEngineLockIndication is the asynchronous engine-lock result.

func (*LOCGetEngineLockIndication) UnmarshalTLVs

func (i *LOCGetEngineLockIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Engine Lock indication.

type LOCGetEngineLockRequest

type LOCGetEngineLockRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

LOCGetEngineLockRequest encodes QMI LOC Get Engine Lock.

func (LOCGetEngineLockRequest) Request

func (r LOCGetEngineLockRequest) Request() Request

Request converts the query into a LOC request.

type LOCGetNMEATypesRequest

type LOCGetNMEATypesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

LOCGetNMEATypesRequest encodes QMI LOC Get NMEA Types.

func (LOCGetNMEATypesRequest) Request

func (r LOCGetNMEATypesRequest) Request() Request

Request converts the query into a LOC request.

type LOCGetOperationModeRequest

type LOCGetOperationModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

LOCGetOperationModeRequest encodes QMI LOC Get Operation Mode.

func (LOCGetOperationModeRequest) Request

func (r LOCGetOperationModeRequest) Request() Request

Request converts the query into a LOC request.

type LOCGetPredictedOrbitsDataSourceIndication

type LOCGetPredictedOrbitsDataSourceIndication struct {
	Result LOCIndicationResult
	Source LOCPredictedOrbitsSource
}

LOCGetPredictedOrbitsDataSourceIndication is the asynchronous source query result.

func (*LOCGetPredictedOrbitsDataSourceIndication) UnmarshalTLVs

UnmarshalTLVs parses a QMI LOC Get Predicted Orbits Data Source indication.

type LOCGetPredictedOrbitsDataSourceRequest

type LOCGetPredictedOrbitsDataSourceRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

LOCGetPredictedOrbitsDataSourceRequest encodes QMI LOC Get Predicted Orbits Data Source.

func (LOCGetPredictedOrbitsDataSourceRequest) Request

Request converts the query into a LOC request.

type LOCGetPredictedOrbitsValidityIndication

type LOCGetPredictedOrbitsValidityIndication struct {
	Result        LOCIndicationResult
	Validity      LOCPredictedOrbitsValidity
	ValidityKnown bool
}

LOCGetPredictedOrbitsValidityIndication is the asynchronous validity result.

func (*LOCGetPredictedOrbitsValidityIndication) UnmarshalTLVs

func (i *LOCGetPredictedOrbitsValidityIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a predicted-orbits validity indication.

type LOCGetPredictedOrbitsValidityRequest

type LOCGetPredictedOrbitsValidityRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

LOCGetPredictedOrbitsValidityRequest encodes the validity query.

func (LOCGetPredictedOrbitsValidityRequest) Request

Request converts the query into a LOC request.

type LOCGetServerIndication

type LOCGetServerIndication struct {
	Result LOCIndicationResult
	Server LOCAssistanceServer
}

LOCGetServerIndication is the asynchronous Get Server result.

func (*LOCGetServerIndication) UnmarshalTLVs

func (i *LOCGetServerIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Get Server indication.

type LOCGetServerRequest

type LOCGetServerRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Query         LOCServerQuery
}

LOCGetServerRequest encodes QMI LOC Get Server.

func (LOCGetServerRequest) Request

func (r LOCGetServerRequest) Request() (Request, error)

Request converts the server query into LOC TLVs.

type LOCIPv4Server

type LOCIPv4Server struct {
	Address netip.Addr
	Port    uint16
}

LOCIPv4Server is an IPv4 assisted-location endpoint.

func (LOCIPv4Server) MarshalBinary

func (s LOCIPv4Server) MarshalBinary() ([]byte, error)

MarshalBinary encodes a QMI LOC IPv4 server.

func (*LOCIPv4Server) UnmarshalBinary

func (s *LOCIPv4Server) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a QMI LOC IPv4 server.

type LOCIPv6Server

type LOCIPv6Server struct {
	Address netip.Addr
	Port    uint32
}

LOCIPv6Server is an IPv6 assisted-location endpoint.

func (LOCIPv6Server) MarshalBinary

func (s LOCIPv6Server) MarshalBinary() ([]byte, error)

MarshalBinary encodes a QMI LOC IPv6 server.

func (*LOCIPv6Server) UnmarshalBinary

func (s *LOCIPv6Server) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a QMI LOC IPv6 server.

type LOCIndicationResult

type LOCIndicationResult struct {
	Status LOCIndicationStatus
}

LOCIndicationResult is the common asynchronous LOC completion status.

func (LOCIndicationResult) Err

func (r LOCIndicationResult) Err() error

Err returns the modem-reported asynchronous operation error.

func (*LOCIndicationResult) UnmarshalTLVs

func (r *LOCIndicationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common QMI LOC indication result.

type LOCIndicationStatus

type LOCIndicationStatus uint32

LOCIndicationStatus is the asynchronous completion status returned by LOC.

const (
	LOCIndicationSuccess LOCIndicationStatus = iota
	LOCIndicationGeneralFailure
	LOCIndicationUnsupported
	LOCIndicationInvalidParameter
	LOCIndicationEngineBusy
	LOCIndicationPhoneOffline
	LOCIndicationTimeout
)

func (LOCIndicationStatus) Error

func (s LOCIndicationStatus) Error() string

Error implements error for non-success LOC indication statuses.

type LOCInjectPositionConfig

type LOCInjectPositionConfig struct {
	Latitude                         *float64
	Longitude                        *float64
	HorizontalUncertaintyCircular    *float32
	HorizontalConfidence             *uint8
	HorizontalReliability            *LOCReliability
	AltitudeFromEllipsoid            *float32
	AltitudeFromSeaLevel             *float32
	VerticalUncertainty              *float32
	VerticalConfidence               *uint8
	VerticalReliability              *LOCReliability
	AltitudeSource                   *LOCAltitudeSourceInfo
	UTCTimestampMilliseconds         *uint64
	TimestampAgeMilliseconds         *uint32
	PositionSource                   *LOCPositionSource
	RawHorizontalUncertaintyCircular *float32
	RawHorizontalConfidence          *uint8
	RequestedPositionInjection       *bool
	PositionSourceProvider           *LOCPositionSourceProvider
	GPSDateTime                      *LOCGPSDateTime
	TimeUncertaintyMilliseconds      *float32
	Speed                            *LOCVector3
	SpeedUncertainty                 *LOCVector3
	SatellitesUsed                   []uint16
	NumberSatellitesInFix            *uint8
}

LOCInjectPositionConfig selects standard fields in Inject Position. Nil pointers and a nil SatellitesUsed slice omit the corresponding TLVs.

type LOCInjectPositionRequest

type LOCInjectPositionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCInjectPositionConfig
}

LOCInjectPositionRequest encodes QMI LOC Inject Position.

func (LOCInjectPositionRequest) Request

func (r LOCInjectPositionRequest) Request() (Request, error)

Request converts an injected position into LOC TLVs.

type LOCInjectPredictedOrbitsDataRequest

type LOCInjectPredictedOrbitsDataRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Part          LOCAssistanceDataPart
	Format        *LOCPredictedOrbitsDataFormat
}

LOCInjectPredictedOrbitsDataRequest encodes one QMI LOC Inject Predicted Orbits Data fragment.

func (LOCInjectPredictedOrbitsDataRequest) Request

Request converts the assistance fragment into LOC TLVs.

type LOCInjectPredictedOrbitsRequest

type LOCInjectPredictedOrbitsRequest struct {
	MaxFileSize       uint32
	MaxPartSize       uint32
	AllowedSizesKnown bool
	Servers           []string
	ServersKnown      bool
	ServerUpdate      LOCPredictedOrbitsServerUpdate
	ServerUpdateKnown bool
	UpdateType        LOCPredictedOrbitsUpdateType
	UpdateTypeKnown   bool
	UpdatePeriod      uint32
	UpdatePeriodKnown bool
	File              LOCPredictedOrbitsFileInfo
	FileKnown         bool
}

LOCInjectPredictedOrbitsRequest describes assistance data requested by LOC.

func (*LOCInjectPredictedOrbitsRequest) UnmarshalTLVs

func (r *LOCInjectPredictedOrbitsRequest) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Inject Predicted Orbits Request indication.

type LOCInjectTimeRequest

type LOCInjectTimeRequest struct {
	DelayThresholdMilliseconds uint32
	Servers                    []string
}

LOCInjectTimeRequest contains time servers requested by the location engine.

func (*LOCInjectTimeRequest) UnmarshalTLVs

func (r *LOCInjectTimeRequest) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Inject Time Request indication.

type LOCInjectUTCTimeConfig

type LOCInjectUTCTimeConfig struct {
	UTCMilliseconds         uint64
	UncertaintyMilliseconds uint32
	Source                  *LOCInjectedTimeSource
}

LOCInjectUTCTimeConfig contains UTC milliseconds and uncertainty.

type LOCInjectUTCTimeRequest

type LOCInjectUTCTimeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCInjectUTCTimeConfig
}

LOCInjectUTCTimeRequest encodes QMI LOC Inject UTC Time.

func (LOCInjectUTCTimeRequest) Request

func (r LOCInjectUTCTimeRequest) Request() (Request, error)

Request converts UTC time into LOC TLVs.

type LOCInjectXTRADataRequest

type LOCInjectXTRADataRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Part          LOCAssistanceDataPart
}

LOCInjectXTRADataRequest encodes one QMI LOC Inject XTRA Data fragment.

func (LOCInjectXTRADataRequest) Request

func (r LOCInjectXTRADataRequest) Request() (Request, error)

Request converts the XTRA fragment into LOC TLVs.

type LOCInjectedTimeSource

type LOCInjectedTimeSource int32

LOCInjectedTimeSource identifies the origin of injected UTC time.

const (
	LOCInjectedTimeUnknown LOCInjectedTimeSource = iota
	LOCInjectedTimeApplicationProcessor
	LOCInjectedTimeNTP
	LOCInjectedTimeNTS
)

type LOCIntermediateReportState

type LOCIntermediateReportState uint32

LOCIntermediateReportState controls intermediate position reports.

const (
	LOCIntermediateReportUnknown LOCIntermediateReportState = iota
	LOCIntermediateReportEnabled
	LOCIntermediateReportDisabled
)

type LOCLockType

type LOCLockType uint32

LOCLockType controls which positioning sessions the engine accepts.

const (
	LOCLockNone LOCLockType = iota + 1
	LOCLockMobileInitiated
	LOCLockMobileTerminated
	LOCLockAll
)

type LOCNMEAIndication

type LOCNMEAIndication struct {
	Sentence string
}

LOCNMEAIndication contains one raw NMEA sentence.

func (*LOCNMEAIndication) UnmarshalTLVs

func (i *LOCNMEAIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC NMEA indication.

type LOCNMEAType

type LOCNMEAType uint32

LOCNMEAType is a mask selecting NMEA sentence families.

const (
	LOCNMEAGGA         LOCNMEAType = 1 << 0
	LOCNMEARMC         LOCNMEAType = 1 << 1
	LOCNMEAGSV         LOCNMEAType = 1 << 2
	LOCNMEAGSA         LOCNMEAType = 1 << 3
	LOCNMEAVTG         LOCNMEAType = 1 << 4
	LOCNMEAPQXFI       LOCNMEAType = 1 << 5
	LOCNMEAPSTIS       LOCNMEAType = 1 << 6
	LOCNMEAGLGSV       LOCNMEAType = 1 << 7
	LOCNMEAGNGSA       LOCNMEAType = 1 << 8
	LOCNMEAGNGNS       LOCNMEAType = 1 << 9
	LOCNMEAGARMC       LOCNMEAType = 1 << 10
	LOCNMEAGAGSV       LOCNMEAType = 1 << 11
	LOCNMEAGAGSA       LOCNMEAType = 1 << 12
	LOCNMEAGAVTG       LOCNMEAType = 1 << 13
	LOCNMEAGAGGA       LOCNMEAType = 1 << 14
	LOCNMEAPQGSA       LOCNMEAType = 1 << 15
	LOCNMEAPQGSV       LOCNMEAType = 1 << 16
	LOCNMEADebug       LOCNMEAType = 1 << 17
	LOCNMEAGPDTM       LOCNMEAType = 1 << 18
	LOCNMEAGNGGA       LOCNMEAType = 1 << 19
	LOCNMEAGNRMC       LOCNMEAType = 1 << 20
	LOCNMEAGNVTG       LOCNMEAType = 1 << 21
	LOCNMEAGAGNS       LOCNMEAType = 1 << 22
	LOCNMEAGBGGA       LOCNMEAType = 1 << 23
	LOCNMEAGBGSA       LOCNMEAType = 1 << 24
	LOCNMEAGBGSV       LOCNMEAType = 1 << 25
	LOCNMEAGBRMC       LOCNMEAType = 1 << 26
	LOCNMEAGBVTG       LOCNMEAType = 1 << 27
	LOCNMEAGQGSV       LOCNMEAType = 1 << 28
	LOCNMEAGIGSV       LOCNMEAType = 1 << 29
	LOCNMEAGNDTM       LOCNMEAType = 1 << 30
	LOCNMEAGSATagBlock LOCNMEAType = 1 << 31

	LOCNMEAAll LOCNMEAType = 0x7FFDFFFF
)

type LOCNMEATypesIndication

type LOCNMEATypesIndication struct {
	Result     LOCIndicationResult
	Types      LOCNMEAType
	TypesKnown bool
}

LOCNMEATypesIndication is the asynchronous Get NMEA Types result.

func (*LOCNMEATypesIndication) UnmarshalTLVs

func (i *LOCNMEATypesIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Get NMEA Types indication.

type LOCNavigationData

type LOCNavigationData uint8

LOCNavigationData reports which assistance data is available for a satellite.

const (
	LOCNavigationHasEphemeris LOCNavigationData = iota
	LOCNavigationHasAlmanac
)

type LOCOperationIndication

type LOCOperationIndication struct {
	Result LOCIndicationResult
}

LOCOperationIndication contains a status-only LOC completion.

func (*LOCOperationIndication) UnmarshalTLVs

func (i *LOCOperationIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a status-only LOC completion indication.

type LOCOperationMode

type LOCOperationMode uint32

LOCOperationMode selects how the location engine computes positions.

const (
	LOCOperationModeDefault LOCOperationMode = iota + 1
	LOCOperationModeMSBased
	LOCOperationModeMSAssisted
	LOCOperationModeStandalone
	LOCOperationModeCellID
	LOCOperationModeWWAN
)

type LOCOperationModeIndication

type LOCOperationModeIndication struct {
	Result    LOCIndicationResult
	Mode      LOCOperationMode
	ModeKnown bool
}

LOCOperationModeIndication is the asynchronous Get Operation Mode result.

func (*LOCOperationModeIndication) UnmarshalTLVs

func (i *LOCOperationModeIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Get Operation Mode indication.

type LOCPositionInjectionRequest

type LOCPositionInjectionRequest struct {
	Latitude                    float64
	LatitudeKnown               bool
	Longitude                   float64
	LongitudeKnown              bool
	HorizontalUncertaintyMeters float32
	HorizontalUncertaintyKnown  bool
	UTCTimestampMilliseconds    uint64
	UTCTimestampKnown           bool
}

LOCPositionInjectionRequest contains a coarse position requested by LOC.

func (*LOCPositionInjectionRequest) UnmarshalTLVs

func (r *LOCPositionInjectionRequest) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Inject Position Request indication.

type LOCPositionReport

type LOCPositionReport struct {
	Status LOCSessionStatus

	SessionID      uint8
	SessionIDKnown bool

	Latitude       float64
	LatitudeKnown  bool
	Longitude      float64
	LongitudeKnown bool

	HorizontalUncertaintyCircular               float32
	HorizontalUncertaintyCircularKnown          bool
	HorizontalUncertaintyEllipticalMinor        float32
	HorizontalUncertaintyEllipticalMinorKnown   bool
	HorizontalUncertaintyEllipticalMajor        float32
	HorizontalUncertaintyEllipticalMajorKnown   bool
	HorizontalUncertaintyEllipticalAzimuth      float32
	HorizontalUncertaintyEllipticalAzimuthKnown bool
	HorizontalConfidence                        uint8
	HorizontalConfidenceKnown                   bool
	HorizontalReliability                       LOCReliability
	HorizontalReliabilityKnown                  bool
	HorizontalSpeed                             float32
	HorizontalSpeedKnown                        bool
	SpeedUncertainty                            float32
	SpeedUncertaintyKnown                       bool
	AltitudeFromEllipsoid                       float32
	AltitudeFromEllipsoidKnown                  bool
	AltitudeFromSeaLevel                        float32
	AltitudeFromSeaLevelKnown                   bool
	VerticalUncertainty                         float32
	VerticalUncertaintyKnown                    bool
	VerticalConfidence                          uint8
	VerticalConfidenceKnown                     bool
	VerticalReliability                         LOCReliability
	VerticalReliabilityKnown                    bool
	VerticalSpeed                               float32
	VerticalSpeedKnown                          bool
	Heading                                     float32
	HeadingKnown                                bool
	HeadingUncertainty                          float32
	HeadingUncertaintyKnown                     bool
	MagneticDeviation                           float32
	MagneticDeviationKnown                      bool
	Technology                                  LOCTechnologyUsed
	TechnologyKnown                             bool
	DOP                                         LOCDilutionOfPrecision
	DOPKnown                                    bool
	UTCTimestampMilliseconds                    uint64
	UTCTimestampKnown                           bool
	LeapSeconds                                 uint8
	LeapSecondsKnown                            bool
	GPSDateTime                                 LOCGPSDateTime
	GPSDateTimeKnown                            bool
	TimeUncertaintyMilliseconds                 float32
	TimeUncertaintyKnown                        bool
	TimeSource                                  LOCTimeSource
	TimeSourceKnown                             bool
	SensorDataUsage                             LOCSensorDataUsage
	SensorDataUsageKnown                        bool
	SessionFixCount                             uint32
	SessionFixCountKnown                        bool
	SatellitesUsed                              []uint16
	SatellitesUsedKnown                         bool
	AltitudeAssumed                             bool
	AltitudeAssumedKnown                        bool
}

LOCPositionReport contains one standard QMI LOC Position Report indication. Optional TLVs use a matching Known field so a legitimate zero remains distinguishable from an omitted value.

func (*LOCPositionReport) UnmarshalTLVs

func (r *LOCPositionReport) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI LOC Position Report indication.

type LOCPositionSource

type LOCPositionSource uint32

LOCPositionSource identifies where an injected position was obtained.

const (
	LOCPositionSourceGNSS LOCPositionSource = iota
	LOCPositionSourceCellID
	LOCPositionSourceEnhancedCellID
	LOCPositionSourceWiFi
	LOCPositionSourceTerrestrial
	LOCPositionSourceGNSSTerrestrialHybrid
	LOCPositionSourceOther
	LOCPositionSourceDeadReckoning
	LOCPositionSourceFusedLocation
	LOCPositionSourceNetworkLocation
	LOCPositionSourceFusedAndroidEngine
)

type LOCPositionSourceProvider

type LOCPositionSourceProvider uint32

LOCPositionSourceProvider identifies an internal or external provider.

const (
	LOCPositionProviderExternal LOCPositionSourceProvider = iota
	LOCPositionProviderInternal
)

type LOCPredictedOrbitsDataFormat

type LOCPredictedOrbitsDataFormat uint32

LOCPredictedOrbitsDataFormat identifies an assistance database format.

const LOCPredictedOrbitsDataFormatXTRA LOCPredictedOrbitsDataFormat = 0

type LOCPredictedOrbitsFileInfo

type LOCPredictedOrbitsFileInfo struct {
	Type                    LOCPredictedOrbitsFileType
	DownloadIntervalMinutes uint32
}

LOCPredictedOrbitsFileInfo describes one requested assistance file.

type LOCPredictedOrbitsFileType

type LOCPredictedOrbitsFileType uint32

LOCPredictedOrbitsFileType identifies a requested assistance file.

const (
	LOCPredictedOrbitsFileXTRA LOCPredictedOrbitsFileType = iota + 1
	LOCPredictedOrbitsFileNavIC
)

type LOCPredictedOrbitsServerUpdate

type LOCPredictedOrbitsServerUpdate uint64

LOCPredictedOrbitsServerUpdate selects changed predicted-orbit parameters.

const (
	LOCPredictedOrbitsInjectionRequested LOCPredictedOrbitsServerUpdate = 1 << iota
	LOCPredictedOrbitsServersUpdated
	LOCPredictedOrbitsRefreshRateUpdated
)

type LOCPredictedOrbitsSource

type LOCPredictedOrbitsSource struct {
	MaxFileSize       uint32
	MaxPartSize       uint32
	AllowedSizesKnown bool
	Servers           []string
	ServersKnown      bool
}

LOCPredictedOrbitsSource contains the modem's assistance download limits and candidate servers.

type LOCPredictedOrbitsUpdateType

type LOCPredictedOrbitsUpdateType uint32

LOCPredictedOrbitsUpdateType identifies which periodic rate is changing.

const (
	LOCPredictedOrbitsRateUpdate LOCPredictedOrbitsUpdateType = iota + 1
	LOCPredictedOrbitsIntegrityRateUpdate
)

type LOCPredictedOrbitsValidity

type LOCPredictedOrbitsValidity struct {
	StartUTCMilliseconds uint64
	DurationHours        uint16
}

LOCPredictedOrbitsValidity describes the useful lifetime of injected data.

type LOCRegisterEventsConfig

type LOCRegisterEventsConfig struct {
	Mask                           LOCEventRegistration
	ClientString                   *string
	ClientType                     *LOCClientType
	PositioningRequestNotification *bool
}

LOCRegisterEventsConfig configures a LOC control point. Mask is combined with active watcher registrations before it is sent to the modem.

type LOCRegisterEventsRequest

type LOCRegisterEventsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCRegisterEventsConfig
}

LOCRegisterEventsRequest encodes QMI LOC Register Events.

func (LOCRegisterEventsRequest) Request

func (r LOCRegisterEventsRequest) Request() (Request, error)

Request converts the event registration into LOC TLVs.

type LOCReliability

type LOCReliability uint32

LOCReliability describes the modem's confidence in a position component.

const (
	LOCReliabilityNotSet LOCReliability = iota
	LOCReliabilityVeryLow
	LOCReliabilityLow
	LOCReliabilityMedium
	LOCReliabilityHigh
)

type LOCSatelliteHealth

type LOCSatelliteHealth uint8

LOCSatelliteHealth reports whether a satellite is healthy.

const (
	LOCSatelliteUnhealthy LOCSatelliteHealth = iota
	LOCSatelliteHealthy
)

type LOCSatelliteStatus

type LOCSatelliteStatus uint32

LOCSatelliteStatus reports the engine's tracking state for one satellite.

const (
	LOCSatelliteIdle LOCSatelliteStatus = iota
	LOCSatelliteSearching
	LOCSatelliteTracking
)

type LOCSatelliteValidInformation

type LOCSatelliteValidInformation uint32

LOCSatelliteValidInformation is a mask selecting valid satellite fields.

const (
	LOCSatelliteValidSystem LOCSatelliteValidInformation = 1 << iota
	LOCSatelliteValidID
	LOCSatelliteValidHealth
	LOCSatelliteValidStatus
	LOCSatelliteValidNavigationData
	LOCSatelliteValidElevation
	LOCSatelliteValidAzimuth
	LOCSatelliteValidSignalToNoiseRatio
)

type LOCSensorDataUsage

type LOCSensorDataUsage uint64

LOCSensorDataUsage is a mask describing sensor-assisted fix components.

const (
	LOCSensorAccelerometerUsed LOCSensorDataUsage = 1 << iota
	LOCSensorGyroscopeUsed
)
const (
	LOCSensorAidedHeading  LOCSensorDataUsage = 1 << 32
	LOCSensorAidedSpeed    LOCSensorDataUsage = 1 << 33
	LOCSensorAidedPosition LOCSensorDataUsage = 1 << 34
	LOCSensorAidedVelocity LOCSensorDataUsage = 1 << 35
)

type LOCServerAddressType

type LOCServerAddressType uint8

LOCServerAddressType is a mask selecting server address forms.

const (
	LOCServerAddressNone LOCServerAddressType = 0
	LOCServerAddressIPv4 LOCServerAddressType = 1 << 0
	LOCServerAddressIPv6 LOCServerAddressType = 1 << 1
	LOCServerAddressURL  LOCServerAddressType = 1 << 2
)

type LOCServerConfig

type LOCServerConfig struct {
	Type LOCServerType
	IPv4 *LOCIPv4Server
	IPv6 *LOCIPv6Server
	URL  *string
}

LOCServerConfig selects server fields to update.

type LOCServerQuery

type LOCServerQuery struct {
	Type         LOCServerType
	AddressTypes *LOCServerAddressType
}

LOCServerQuery selects an assisted-location server and desired address forms. A nil AddressTypes lets the modem choose its default response.

type LOCServerType

type LOCServerType uint32

LOCServerType identifies an assisted-location server role.

const (
	LOCServerUnknown LOCServerType = iota
	LOCServerCDMAPDE
	LOCServerCDMAMPC
	LOCServerUMTSSLP
	LOCServerCustomPDE
)

type LOCSessionStatus

type LOCSessionStatus uint32

LOCSessionStatus describes the state of a positioning session.

const (
	LOCSessionSuccess LOCSessionStatus = iota
	LOCSessionInProgress
	LOCSessionGeneralFailure
	LOCSessionTimeout
	LOCSessionUserEnded
	LOCSessionBadParameter
	LOCSessionPhoneOffline
	LOCSessionEngineLocked
)

type LOCSetEngineLockRequest

type LOCSetEngineLockRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Lock          LOCLockType
}

LOCSetEngineLockRequest encodes QMI LOC Set Engine Lock.

func (LOCSetEngineLockRequest) Request

func (r LOCSetEngineLockRequest) Request() (Request, error)

Request converts the lock type into a LOC request.

type LOCSetNMEATypesRequest

type LOCSetNMEATypesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Types         LOCNMEAType
}

LOCSetNMEATypesRequest encodes QMI LOC Set NMEA Types.

func (LOCSetNMEATypesRequest) Request

func (r LOCSetNMEATypesRequest) Request() Request

Request converts the NMEA mask into a LOC request.

type LOCSetOperationModeRequest

type LOCSetOperationModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mode          LOCOperationMode
}

LOCSetOperationModeRequest encodes QMI LOC Set Operation Mode.

func (LOCSetOperationModeRequest) Request

func (r LOCSetOperationModeRequest) Request() (Request, error)

Request converts the operation mode into a LOC request.

type LOCSetServerRequest

type LOCSetServerRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCServerConfig
}

LOCSetServerRequest encodes QMI LOC Set Server.

func (LOCSetServerRequest) Request

func (r LOCSetServerRequest) Request() (Request, error)

Request converts the server update into LOC TLVs.

type LOCStartConfig

type LOCStartConfig struct {
	SessionID                         uint8
	FixRecurrence                     *LOCFixRecurrence
	IntermediateReports               *LOCIntermediateReportState
	MinimumReportIntervalMilliseconds *uint32
}

LOCStartConfig describes one positioning session.

type LOCStartRequest

type LOCStartRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        LOCStartConfig
}

LOCStartRequest encodes QMI LOC Start.

func (LOCStartRequest) Request

func (r LOCStartRequest) Request() (Request, error)

Request converts the positioning-session settings into LOC TLVs.

type LOCStopRequest

type LOCStopRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	SessionID     uint8
}

LOCStopRequest encodes QMI LOC Stop.

func (LOCStopRequest) Request

func (r LOCStopRequest) Request() Request

Request converts the session ID into a LOC request.

type LOCSystem

type LOCSystem uint32

LOCSystem identifies a GNSS constellation.

const (
	LOCSystemGPS LOCSystem = iota + 1
	LOCSystemGalileo
	LOCSystemSBAS
	LOCSystemBeiDou
	LOCSystemGLONASS
)

type LOCTechnologyUsed

type LOCTechnologyUsed uint32

LOCTechnologyUsed is a mask of technologies used to calculate a position.

const (
	LOCTechnologySatellite LOCTechnologyUsed = 1 << iota
	LOCTechnologyCellular
	LOCTechnologyWiFi
	LOCTechnologySensors
	LOCTechnologyReferenceLocation
	LOCTechnologyInjectedPosition
	LOCTechnologyAFLT
	LOCTechnologyHybrid
)

type LOCTimeSource

type LOCTimeSource uint32

LOCTimeSource identifies how the engine obtained its current time.

const (
	LOCTimeSourceInvalid LOCTimeSource = iota
	LOCTimeSourceNetworkTransfer
	LOCTimeSourceNetworkTagging
	LOCTimeSourceExternalInput
	LOCTimeSourceTOWDecode
	LOCTimeSourceTOWConfirmed
	LOCTimeSourceTOWAndWeekConfirmed
	LOCTimeSourceNavigationSolution
	LOCTimeSourceSolveForTime
	LOCTimeSourceGLONASSTOWDecode
	LOCTimeSourceTimeTransform
	LOCTimeSourceWCDMASleepTag
	LOCTimeSourceGSMSleepTag
	LOCTimeSourceUnknown
	LOCTimeSourceSystemTick
	LOCTimeSourceQZSSTOWDecode
	LOCTimeSourceBeiDouTOWDecode
)

type LOCVector3

type LOCVector3 struct {
	East  float32
	North float32
	Up    float32
}

LOCVector3 contains east, north, and up components.

func (LOCVector3) MarshalBinary

func (v LOCVector3) MarshalBinary() ([]byte, error)

MarshalBinary encodes an east, north, and up vector.

func (*LOCVector3) UnmarshalBinary

func (v *LOCVector3) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes an east, north, and up vector.

type MessageID

type MessageID uint16

MessageID represents QMI command message IDs.

const (
	// CTL service commands
	MessageCTLSetInstanceID     MessageID = 0x0020
	MessageGetVersionInfo       MessageID = 0x0021
	MessageAllocateClientID     MessageID = 0x0022
	MessageReleaseClientID      MessageID = 0x0023
	MessageCTLSetDataFormat     MessageID = 0x0026
	MessageCTLSync              MessageID = 0x0027
	MessageInternalProxyOpen    MessageID = 0xFF00
	MessageGetSupportedMessages MessageID = 0x001E
	MessageGetSupportedFields   MessageID = 0x001F

	// WDS service commands
	MessageWDSReset                          MessageID = 0x0000
	MessageWDSSetEventReport                 MessageID = 0x0001
	MessageWDSEventReport                    MessageID = MessageWDSSetEventReport
	MessageWDSAbort                          MessageID = 0x0002
	MessageWDSIndicationRegister             MessageID = 0x0003
	MessageWDSStartNetworkInterface          MessageID = 0x0020
	MessageWDSStopNetworkInterface           MessageID = 0x0021
	MessageWDSGetPacketServiceStatus         MessageID = 0x0022
	MessageWDSGetCurrentChannelRate          MessageID = 0x0023
	MessageWDSGetPacketStatistics            MessageID = 0x0024
	MessageWDSGoDormant                      MessageID = 0x0025
	MessageWDSGoActive                       MessageID = 0x0026
	MessageWDSCreateProfile                  MessageID = 0x0027
	MessageWDSModifyProfile                  MessageID = 0x0028
	MessageWDSDeleteProfile                  MessageID = 0x0029
	MessageWDSGetProfileList                 MessageID = 0x002A
	MessageWDSGetProfileSettings             MessageID = 0x002B
	MessageWDSGetDefaultSettings             MessageID = 0x002C
	MessageWDSGetRuntimeSettings             MessageID = 0x002D
	MessageWDSGetDormancyStatus              MessageID = 0x0030
	MessageWDSGetAutoconnectSettings         MessageID = 0x0034
	MessageWDSGetDataBearerTechnology        MessageID = 0x0037
	MessageWDSGetCurrentDataBearerTechnology MessageID = 0x0044
	MessageWDSGetDefaultProfile              MessageID = 0x0049
	MessageWDSSetDefaultProfile              MessageID = 0x004A
	MessageWDSSetClientIPFamily              MessageID = 0x004D
	MessageWDSSetAutoconnectSettings         MessageID = 0x0051
	MessageWDSGetPDNThrottleInfo             MessageID = 0x006C
	MessageWDSGetLTEAttachParameters         MessageID = 0x0085
	MessageWDSLegacyBindMuxDataPort          MessageID = 0x0089
	MessageWDSExtendedIPConfig               MessageID = 0x008C
	MessageWDSGetDataBearerTechnologyEx      MessageID = 0x0091
	MessageWDSGetMaxLTEAttachPDNNumber       MessageID = 0x0092
	MessageWDSSetLTEAttachPDNList            MessageID = 0x0093
	MessageWDSGetLTEAttachPDNList            MessageID = 0x0094
	MessageWDSBindMuxDataPort                MessageID = 0x00A2
	MessageWDSConfigureProfileEventList      MessageID = 0x00A7
	MessageWDSProfileChanged                 MessageID = 0x00A8
	MessageWDSBindSubscription               MessageID = 0x00AF
	MessageWDSGetBindSubscription            MessageID = 0x00B0

	// QoS service commands
	MessageQoSReset                       MessageID = 0x0000
	MessageQoSSetEventReport              MessageID = 0x0001
	MessageQoSRequest                     MessageID = 0x0020
	MessageQoSRelease                     MessageID = 0x0021
	MessageQoSSuspend                     MessageID = 0x0022
	MessageQoSResume                      MessageID = 0x0023
	MessageQoSGetGranted                  MessageID = 0x0025
	MessageQoSGetStatus                   MessageID = 0x0026
	MessageQoSStatus                      MessageID = 0x0026
	MessageQoSGetNetworkStatus            MessageID = 0x0027
	MessageQoSNetworkStatus               MessageID = 0x0027
	MessageQoSGetNetworkSupportedProfiles MessageID = 0x0028
	MessageQoSPrimaryEvent                MessageID = 0x0029
	MessageQoSSetClientIPFamily           MessageID = 0x002A
	MessageQoSBindDataPort                MessageID = 0x002B
	MessageQoSGetFilterParams             MessageID = 0x002C
	MessageQoSBindSubscription            MessageID = 0x002D
	MessageQoSGetBindSubscription         MessageID = 0x002E
	MessageQoSIndicationRegister          MessageID = 0x002F
	MessageQoSRequestEx                   MessageID = 0x0030
	MessageQoSGlobalFlow                  MessageID = 0x0031
	MessageQoSModifyEx                    MessageID = 0x0032
	MessageQoSGetInfo                     MessageID = 0x0033
	MessageQoSPerformFlowOperation        MessageID = 0xFFFE

	// AUTH service commands
	MessageAUTHIndicationRegister  MessageID = 0x0003
	MessageAUTHStartEAPSession     MessageID = 0x0020
	MessageAUTHSendEAPPacketLegacy MessageID = 0x0021
	MessageAUTHEAPSessionResult    MessageID = 0x0022
	MessageAUTHGetEAPSessionKeys   MessageID = 0x0023
	MessageAUTHEndEAPSession       MessageID = 0x0024
	MessageAUTHRunAKA              MessageID = 0x0025
	MessageAUTHAKAResult           MessageID = 0x0026
	MessageAUTHBindSubscription    MessageID = 0x0027
	MessageAUTHGetBindSubscription MessageID = 0x0028
	MessageAUTHEAPNotification     MessageID = 0x0029
	MessageAUTHEAPError            MessageID = 0x002A
	MessageAUTHEAPReject           MessageID = 0x002B
	MessageAUTHSendEAPPacket       MessageID = 0x002C
	MessageAUTHGetEAPCredentials   MessageID = 0x002D

	// WMS service commands
	MessageWMSReset                  MessageID = 0x0000
	MessageWMSSetEventReport         MessageID = 0x0001
	MessageWMSRawSend                MessageID = 0x0020
	MessageWMSRawWrite               MessageID = 0x0021
	MessageWMSRawRead                MessageID = 0x0022
	MessageWMSModifyTag              MessageID = 0x0023
	MessageWMSDelete                 MessageID = 0x0024
	MessageWMSGetMessageProtocol     MessageID = 0x0030
	MessageWMSListMessages           MessageID = 0x0031
	MessageWMSSetRoutes              MessageID = 0x0032
	MessageWMSGetRoutes              MessageID = 0x0033
	MessageWMSSendACK                MessageID = 0x0037
	MessageWMSGetSMSCAddress         MessageID = 0x0034
	MessageWMSSetSMSCAddress         MessageID = 0x0035
	MessageWMSGetStoreMaxSize        MessageID = 0x0036
	MessageWMSSetRetryPeriod         MessageID = 0x0038
	MessageWMSSetRetryInterval       MessageID = 0x0039
	MessageWMSSetDCAutoDisconnect    MessageID = 0x003A
	MessageWMSSetMemoryStatus        MessageID = 0x003B
	MessageWMSSetBroadcastActivation MessageID = 0x003C
	MessageWMSSetBroadcastConfig     MessageID = 0x003D
	MessageWMSGetBroadcastConfig     MessageID = 0x003E
	MessageWMSGetDomainPreference    MessageID = 0x0040
	MessageWMSSetDomainPreference    MessageID = 0x0041
	MessageWMSSendFromMemoryStore    MessageID = 0x0042
	MessageWMSGetMessageWaiting      MessageID = 0x0043
	MessageWMSMessageWaiting         MessageID = 0x0044
	MessageWMSSetPrimaryClient       MessageID = 0x0045
	MessageWMSSMSCAddress            MessageID = 0x0046
	MessageWMSIndicationRegister     MessageID = 0x0047
	MessageWMSGetTransportLayer      MessageID = 0x0048
	MessageWMSTransportLayer         MessageID = 0x0049
	MessageWMSGetTransportNetwork    MessageID = 0x004A
	MessageWMSTransportNetwork       MessageID = 0x004B
	MessageWMSBindSubscription       MessageID = 0x004C
	MessageWMSGetIndicationRegister  MessageID = 0x004D
	MessageWMSGetSMSParameters       MessageID = 0x004E
	MessageWMSSetSMSParameters       MessageID = 0x004F
	MessageWMSCallStatus             MessageID = 0x0050
	MessageWMSGetDomainPrefConfig    MessageID = 0x0051
	MessageWMSSetDomainPrefConfig    MessageID = 0x0052
	MessageWMSGetRetryPeriod         MessageID = 0x0053
	MessageWMSGetRetryInterval       MessageID = 0x0054
	MessageWMSGetDCAutoDisconnect    MessageID = 0x0055
	MessageWMSGetServiceReadyState   MessageID = 0x005C
	MessageWMSGetMemoryStatus        MessageID = 0x0056
	MessageWMSGetPrimaryClient       MessageID = 0x0057
	MessageWMSGetSubscription        MessageID = 0x0058
	MessageWMSAsyncRawSend           MessageID = 0x0059
	MessageWMSAsyncSendACK           MessageID = 0x005A
	MessageWMSAsyncSendFromStore     MessageID = 0x005B
	MessageWMSSetMessageWaiting      MessageID = 0x005F
	MessageWMSEventReport            MessageID = 0x0001
	MessageWMSServiceReady           MessageID = 0x005D
	MessageWMSBroadcastConfigChanged MessageID = 0x005E
	MessageWMSMemoryFull             MessageID = 0x003F
	MessageWMSTransportMWI           MessageID = 0x0060

	// PDS service commands
	MessagePDSReset                     MessageID = 0x0000
	MessagePDSSetEventReport            MessageID = 0x0001
	MessagePDSEventReport               MessageID = MessagePDSSetEventReport
	MessagePDSGetGPSServiceState        MessageID = 0x0020
	MessagePDSSetGPSServiceState        MessageID = 0x0021
	MessagePDSGetDefaultTrackingSession MessageID = 0x0029
	MessagePDSSetDefaultTrackingSession MessageID = 0x002A
	MessagePDSGetAGPSConfig             MessageID = 0x002E
	MessagePDSSetAGPSConfig             MessageID = 0x002F
	MessagePDSGetAutoTrackingState      MessageID = 0x0030
	MessagePDSSetAutoTrackingState      MessageID = 0x0031
	MessagePDSGPSReady                  MessageID = 0x0060

	// PBM service commands
	MessagePBMIndicationRegister           MessageID = 0x0001
	MessagePBMGetCapabilities              MessageID = 0x0002
	MessagePBMGetAllCapabilities           MessageID = 0x0003
	MessagePBMReadRecords                  MessageID = 0x0004
	MessagePBMRecordRead                   MessageID = MessagePBMReadRecords
	MessagePBMWriteRecord                  MessageID = 0x0005
	MessagePBMDeleteRecord                 MessageID = 0x0006
	MessagePBMDeleteAllRecords             MessageID = 0x0007
	MessagePBMSearchRecords                MessageID = 0x0008
	MessagePBMRecordUpdate                 MessageID = 0x0009
	MessagePBMRefresh                      MessageID = 0x000A
	MessagePBMPhonebookReady               MessageID = 0x000B
	MessagePBMEmergencyListChanged         MessageID = 0x000C
	MessagePBMAllPhonebooksReady           MessageID = 0x000D
	MessagePBMGetEmergencyList             MessageID = 0x000E
	MessagePBMGetAllGroups                 MessageID = 0x000F
	MessagePBMSetGroup                     MessageID = 0x0010
	MessagePBMGetPhonebookState            MessageID = 0x0011
	MessagePBMReadAllHiddenRecords         MessageID = 0x0012
	MessagePBMHiddenRecordStatus           MessageID = 0x0013
	MessagePBMGetNextEmptyRecord           MessageID = 0x0014
	MessagePBMGetNextRecord                MessageID = 0x0015
	MessagePBMGetAllAAS                    MessageID = 0x0016
	MessagePBMSetAAS                       MessageID = 0x0017
	MessagePBMAASUpdate                    MessageID = 0x0018
	MessagePBMGASUpdate                    MessageID = 0x0019
	MessagePBMBindSubscription             MessageID = 0x001A
	MessagePBMGetSubscription              MessageID = 0x001B
	MessagePBMReadPBSetCapabilities        MessageID = 0x001C
	MessagePBMPBSetCapabilityRead          MessageID = MessagePBMReadPBSetCapabilities
	MessagePBMReadRecordsExtended          MessageID = 0x001D
	MessagePBMRecordReadExtended           MessageID = MessagePBMReadRecordsExtended
	MessagePBMWriteRecordExtended          MessageID = 0x001E
	MessagePBMSearchRecordsExtended        MessageID = 0x001F
	MessagePBMReadAllHiddenRecordsExtended MessageID = 0x0020
	MessagePBMSIMReady                     MessageID = 0x0021
	MessagePBMReadRecordsExtendedUndecoded MessageID = 0x0022
	MessagePBMRecordReadExtendedUndecoded  MessageID = MessagePBMReadRecordsExtendedUndecoded
	MessagePBMSetConfiguration             MessageID = 0x0023
	MessagePBMGetConfiguration             MessageID = 0x0024

	// OMA service commands
	MessageOMAReset             MessageID = 0x0000
	MessageOMASetEventReport    MessageID = 0x0001
	MessageOMAEventReport       MessageID = MessageOMASetEventReport
	MessageOMAStartSession      MessageID = 0x0020
	MessageOMACancelSession     MessageID = 0x0021
	MessageOMAGetSessionInfo    MessageID = 0x0022
	MessageOMASendSelection     MessageID = 0x0023
	MessageOMAGetFeatureSetting MessageID = 0x0024
	MessageOMASetFeatureSetting MessageID = 0x0025

	// LOC service commands
	MessageLOCRegisterEvents               MessageID = 0x0021
	MessageLOCStart                        MessageID = 0x0022
	MessageLOCStop                         MessageID = 0x0023
	MessageLOCPositionReport               MessageID = 0x0024
	MessageLOCGNSSSatelliteInfo            MessageID = 0x0025
	MessageLOCNMEA                         MessageID = 0x0026
	MessageLOCInjectTimeRequest            MessageID = 0x0028
	MessageLOCInjectPredictedOrbitsRequest MessageID = 0x0029
	MessageLOCInjectPositionRequest        MessageID = 0x002A
	MessageLOCEngineState                  MessageID = 0x002B
	MessageLOCFixRecurrence                MessageID = 0x002C
	MessageLOCInjectPredictedOrbitsData    MessageID = 0x0035
	MessageLOCGetPredictedOrbitsDataSource MessageID = 0x0036
	MessageLOCGetPredictedOrbitsValidity   MessageID = 0x0037
	MessageLOCInjectUTCTime                MessageID = 0x0038
	MessageLOCInjectPosition               MessageID = 0x0039
	MessageLOCSetEngineLock                MessageID = 0x003A
	MessageLOCGetEngineLock                MessageID = 0x003B
	MessageLOCSetNMEATypes                 MessageID = 0x003E
	MessageLOCGetNMEATypes                 MessageID = 0x003F
	MessageLOCSetServer                    MessageID = 0x0042
	MessageLOCGetServer                    MessageID = 0x0043
	MessageLOCDeleteAssistanceData         MessageID = 0x0044
	MessageLOCSetOperationMode             MessageID = 0x004A
	MessageLOCGetOperationMode             MessageID = 0x004B
	MessageLOCInjectXTRAData               MessageID = 0x00A7

	// Voice service commands
	MessageVoiceIndicationRegister  MessageID = 0x0003
	MessageVoiceDialCall            MessageID = 0x0020
	MessageVoiceEndCall             MessageID = 0x0021
	MessageVoiceAnswerCall          MessageID = 0x0022
	MessageVoiceGetCallInfo         MessageID = 0x0024
	MessageVoiceSendFlash           MessageID = 0x0027
	MessageVoiceBurstDTMF           MessageID = 0x0028
	MessageVoiceStartContinuousDTMF MessageID = 0x0029
	MessageVoiceStopContinuousDTMF  MessageID = 0x002A
	MessageVoiceDTMF                MessageID = 0x002B
	MessageVoiceSetPreferredPrivacy MessageID = 0x002C
	MessageVoicePrivacy             MessageID = 0x002D
	MessageVoiceAllCallStatus       MessageID = 0x002E
	MessageVoiceGetAllCallInfo      MessageID = 0x002F
	MessageVoiceManageCalls         MessageID = 0x0031
	MessageVoiceSupplementaryNotify MessageID = 0x0032
	MessageVoiceSetSupplementary    MessageID = 0x0033
	MessageVoiceGetCallWaiting      MessageID = 0x0034
	MessageVoiceGetCallBarring      MessageID = 0x0035
	MessageVoiceGetCLIP             MessageID = 0x0036
	MessageVoiceGetCLIR             MessageID = 0x0037
	MessageVoiceGetCallForwarding   MessageID = 0x0038
	MessageVoiceSetBarringPassword  MessageID = 0x0039
	MessageVoiceOriginateUSSD       MessageID = 0x003A
	MessageVoiceAnswerUSSD          MessageID = 0x003B
	MessageVoiceCancelUSSD          MessageID = 0x003C
	MessageVoiceUSSDRelease         MessageID = 0x003D
	MessageVoiceUSSD                MessageID = 0x003E
	MessageVoiceSetConfig           MessageID = 0x0040
	MessageVoiceGetConfig           MessageID = 0x0041
	MessageVoiceSupplementaryResult MessageID = 0x0042
	MessageVoiceOriginateUSSDNoWait MessageID = 0x0043
	MessageVoiceBindSubscription    MessageID = 0x0044
	MessageVoiceSetALSLineSwitching MessageID = 0x0045
	MessageVoiceSelectALSLine       MessageID = 0x0046
	MessageVoiceGetCOLP             MessageID = 0x004B
	MessageVoiceGetCOLR             MessageID = 0x004C
	MessageVoiceGetCNAP             MessageID = 0x004D
	MessageVoiceManageIPCalls       MessageID = 0x004E
	MessageVoiceALSLineSwitching    MessageID = 0x004F
	MessageVoiceALSSelectedLine     MessageID = 0x0050
	MessageVoiceCallModified        MessageID = 0x0051
	MessageVoiceCallModifyRequest   MessageID = 0x0052
	MessageVoiceSpeechCodecInfo     MessageID = 0x0053
	MessageVoiceHandover            MessageID = 0x0054
	MessageVoiceSetupAnswer         MessageID = 0x005C
	MessageVoiceTTY                 MessageID = 0x005D
	MessageVoiceGetSpeechCodecInfo  MessageID = 0x006E
	MessageVoiceCancelIPOperation   MessageID = 0x006F

	// WDA service commands
	MessageWDASetDataFormat          MessageID = 0x0020
	MessageWDAGetDataFormat          MessageID = 0x0021
	MessageWDAPacketFilterEnable     MessageID = 0x0022
	MessageWDAPacketFilterDisable    MessageID = 0x0023
	MessageWDAPacketFilterGetState   MessageID = 0x0024
	MessageWDAPacketFilterAddRule    MessageID = 0x0025
	MessageWDAPacketFilterDeleteRule MessageID = 0x0026
	MessageWDAPacketFilterGetHandles MessageID = 0x0027
	MessageWDAPacketFilterGetRule    MessageID = 0x0028
	MessageWDASetLoopbackState       MessageID = 0x0029
	MessageWDAGetLoopbackState       MessageID = 0x002A
	MessageWDASetQMAPSettings        MessageID = 0x002B
	MessageWDAGetQMAPSettings        MessageID = 0x002C
	MessageWDASetPowersaveConfig     MessageID = 0x002D
	MessageWDASetPowersaveMode       MessageID = 0x002E
	MessageWDASetLoopbackConfig      MessageID = 0x002F
	MessageWDALoopbackConfigResult   MessageID = 0x002F
	MessageWDASetCapability          MessageID = 0x0030
	MessageWDAGetEthernetConfig      MessageID = 0x0033

	// DPM service commands
	MessageDPMOpenPort        MessageID = 0x0020
	MessageDPMClosePort       MessageID = 0x0021
	MessageDPMGetCapabilities MessageID = 0x0022

	// DSD service commands
	MessageDSDGetSystemStatus     MessageID = 0x0024
	MessageDSDSystemStatusChange  MessageID = 0x0025
	MessageDSDSystemStatus        MessageID = 0x0026
	MessageDSDBindSubscription    MessageID = 0x0027
	MessageDSDGetBindSubscription MessageID = 0x0028
	MessageDSDGetAPNInfo          MessageID = 0x0033
	MessageDSDIndicationRegister  MessageID = 0x0038
	MessageDSDSwitchDDS           MessageID = 0x004E
	MessageDSDGetCurrentDDS       MessageID = 0x004F
	MessageDSDCurrentDDS          MessageID = 0x0050
	MessageDSDSetAPNType          MessageID = 0x0051

	// PDC service commands
	MessagePDCReset                MessageID = 0x0000
	MessagePDCRegister             MessageID = 0x0020
	MessagePDCConfigChange         MessageID = 0x0021
	MessagePDCGetSelectedConfig    MessageID = 0x0022
	MessagePDCSetSelectedConfig    MessageID = 0x0023
	MessagePDCListConfigs          MessageID = 0x0024
	MessagePDCDeleteConfig         MessageID = 0x0025
	MessagePDCLoadConfig           MessageID = 0x0026
	MessagePDCActivateConfig       MessageID = 0x0027
	MessagePDCGetConfigInfo        MessageID = 0x0028
	MessagePDCGetConfigLimits      MessageID = 0x0029
	MessagePDCGetDefaultConfigInfo MessageID = 0x002A
	MessagePDCDeactivateConfig     MessageID = 0x002B
	MessagePDCValidateConfig       MessageID = 0x002C
	MessagePDCGetFeature           MessageID = 0x002D
	MessagePDCSetFeature           MessageID = 0x002E
	MessagePDCRefresh              MessageID = 0x002F
	MessagePDCGetConfig            MessageID = 0x0030
	MessagePDCNotification         MessageID = 0x0031

	// DMS service commands
	MessageDMSReset                     MessageID = 0x0000
	MessageDMSSetEventReport            MessageID = 0x0001
	MessageDMSIndicationRegister        MessageID = 0x0003
	MessageDMSUIMSetPINProtection       MessageID = 0x0027
	MessageDMSUIMVerifyPIN              MessageID = 0x0028
	MessageDMSUIMUnblockPIN             MessageID = 0x0029
	MessageDMSUIMChangePIN              MessageID = 0x002A
	MessageDMSUIMGetPINStatus           MessageID = 0x002B
	MessageDMSGetDeviceCapabilities     MessageID = 0x0020
	MessageDMSGetManufacturer           MessageID = 0x0021
	MessageDMSGetModelID                MessageID = 0x0022
	MessageDMSGetRevisionID             MessageID = 0x0023
	MessageDMSGetMSISDN                 MessageID = 0x0024
	MessageDMSGetSerialNumbers          MessageID = 0x0025
	MessageDMSGetPowerState             MessageID = 0x0026
	MessageDMSGetHardwareRevision       MessageID = 0x002C
	MessageDMSGetOperatingMode          MessageID = 0x002D
	MessageDMSSetOperatingMode          MessageID = 0x002E
	MessageDMSGetTime                   MessageID = 0x002F
	MessageDMSGetPRLVersion             MessageID = 0x0030
	MessageDMSGetActivationState        MessageID = 0x0031
	MessageDMSActivateAutomatic         MessageID = 0x0032
	MessageDMSActivateManual            MessageID = 0x0033
	MessageDMSGetUserLockState          MessageID = 0x0034
	MessageDMSSetUserLockState          MessageID = 0x0035
	MessageDMSSetUserLockCode           MessageID = 0x0036
	MessageDMSReadUserData              MessageID = 0x0037
	MessageDMSWriteUserData             MessageID = 0x0038
	MessageDMSReadERIFile               MessageID = 0x0039
	MessageDMSRestoreFactoryDefaults    MessageID = 0x003A
	MessageDMSValidateSPC               MessageID = 0x003B
	MessageDMSSetFirmwareID             MessageID = 0x003E
	MessageDMSUIMGetICCID               MessageID = 0x003C
	MessageDMSUIMGetCKStatus            MessageID = 0x0040
	MessageDMSUIMSetCKProtection        MessageID = 0x0041
	MessageDMSUIMUnblockCK              MessageID = 0x0042
	MessageDMSUIMGetIMSI                MessageID = 0x0043
	MessageDMSUIMGetState               MessageID = 0x0044
	MessageDMSGetBandCapabilities       MessageID = 0x0045
	MessageDMSGetFactorySKU             MessageID = 0x0046
	MessageDMSGetFirmwarePreference     MessageID = 0x0047
	MessageDMSSetFirmwarePreference     MessageID = 0x0048
	MessageDMSListStoredImages          MessageID = 0x0049
	MessageDMSDeleteStoredImage         MessageID = 0x004A
	MessageDMSSetTime                   MessageID = 0x004B
	MessageDMSGetStoredImageInfo        MessageID = 0x004C
	MessageDMSGetAltNetworkConfig       MessageID = 0x004D
	MessageDMSSetAltNetworkConfig       MessageID = 0x004E
	MessageDMSGetBootImageDownloadMode  MessageID = 0x004F
	MessageDMSSetBootImageDownloadMode  MessageID = 0x0050
	MessageDMSGetSoftwareVersion        MessageID = 0x0051
	MessageDMSSetSPC                    MessageID = 0x0052
	MessageDMSGetCurrentPRLInfo         MessageID = 0x0053
	MessageDMSBindSubscription          MessageID = 0x0054
	MessageDMSGetBindSubscription       MessageID = 0x0055
	MessageDMSSetAPSoftwareVersion      MessageID = 0x0056
	MessageDMSGetCDMALockMode           MessageID = 0x0057
	MessageDMSGetMACAddress             MessageID = 0x005C
	MessageDMSGetEncryptedSerialNumbers MessageID = 0x005D
	MessageDMSConfigureModemActivity    MessageID = 0x005E
	MessageDMSGetModemActivity          MessageID = 0x005F
	MessageDMSGetPSMConfig              MessageID = 0x0060
	MessageDMSEnterPSM                  MessageID = 0x0061
	MessageDMSPSMStatus                 MessageID = 0x0062
	MessageDMSGetUIStatus               MessageID = 0x0063
	MessageDMSSetUIStatus               MessageID = 0x0064
	MessageDMSSetDeviceCapabilityConfig MessageID = 0x0065
	MessageDMSSetPSMConfig              MessageID = 0x0066
	MessageDMSPSMConfigChanged          MessageID = 0x0067
	MessageDMSSetAPVersion              MessageID = 0x0069
	MessageDMSGetCapability             MessageID = 0x006A
	MessageDMSSetApplicationPriority    MessageID = 0x006B
	MessageDMSDevicePowerInfoRequest    MessageID = 0x0071
	MessageDMSInteractiveStateRequest   MessageID = 0x0072
	MessageDMSDevicePowerInfo           MessageID = 0x0073
	MessageDMSDeviceInteractiveState    MessageID = 0x0074

	// NAS service commands
	MessageNASReset                        MessageID = 0x0000
	MessageNASAbort                        MessageID = 0x0001
	MessageNASSetEventReport               MessageID = 0x0002
	MessageNASEventReport                  MessageID = MessageNASSetEventReport
	MessageNASIndicationRegister           MessageID = 0x0003
	MessageNASGetSignalStrength            MessageID = 0x0020
	MessageNASPerformNetworkScan           MessageID = 0x0021
	MessageNASInitiateNetworkRegister      MessageID = 0x0022
	MessageNASAttachDetach                 MessageID = 0x0023
	MessageNASGetServingSystem             MessageID = 0x0024
	MessageNASGetHomeNetwork               MessageID = 0x0025
	MessageNASGetPreferredNetworks         MessageID = 0x0026
	MessageNASSetPreferredNetworks         MessageID = 0x0027
	MessageNASGetForbiddenNetworks         MessageID = 0x0028
	MessageNASSetForbiddenNetworks         MessageID = 0x0029
	MessageNASSetTechnologyPreference      MessageID = 0x002A
	MessageNASGetTechnologyPreference      MessageID = 0x002B
	MessageNASGetAccessOverloadClass       MessageID = 0x002C
	MessageNASSetAccessOverloadClass       MessageID = 0x002D
	MessageNASGetNetworkSystemPreference   MessageID = 0x002E
	MessageNASGetRFBandInfo                MessageID = 0x0031
	MessageNASGetANAAAStatus               MessageID = 0x0032
	MessageNASSetSystemSelectionPreference MessageID = 0x0033
	MessageNASGetSystemSelectionPreference MessageID = 0x0034
	MessageNASGetOperatorName              MessageID = 0x0039
	MessageNASOperatorName                 MessageID = 0x003A
	MessageNASGetCellLocationInfo          MessageID = 0x0043
	MessageNASGetPLMNName                  MessageID = 0x0044
	MessageNASBindSubscription             MessageID = 0x0045
	MessageNASNetworkTime                  MessageID = 0x004C
	MessageNASGetSysInfo                   MessageID = 0x004D
	MessageNASSysInfo                      MessageID = 0x004E
	MessageNASGetSignalInfo                MessageID = 0x004F
	MessageNASConfigureSignalInfo          MessageID = 0x0050
	MessageNASSignalInfo                   MessageID = 0x0051
	MessageNASGetTxRxInfo                  MessageID = 0x005A
	MessageNASBlockLTEPLMN                 MessageID = 0x005E
	MessageNASUnblockLTEPLMN               MessageID = 0x005F
	MessageNASResetLTEPLMNBlocking         MessageID = 0x0060
	MessageNASCurrentPLMNName              MessageID = 0x0061
	MessageNASGetCDMAPositionInfo          MessageID = 0x0065
	MessageNASRFBandInfo                   MessageID = 0x0066
	MessageNASForceNetworkSearch           MessageID = 0x0067
	MessageNASNetworkReject                MessageID = 0x0068
	MessageNASConfigureSignalInfo2         MessageID = 0x006C
	MessageNASGetNetworkTime               MessageID = 0x007D
	MessageNASSetLTEBandPriority           MessageID = 0x0080
	MessageNASGetLTEBandPriority           MessageID = 0x0083
	MessageNASIncrementalNetworkScan       MessageID = 0x0085
	MessageNASSetDRX                       MessageID = 0x0088
	MessageNASGetDRX                       MessageID = 0x0089
	MessageNASSetDataRoaming               MessageID = 0x009A
	MessageNASGetDataRoaming               MessageID = 0x009B
	MessageNASGetLTECarrierAggregationInfo MessageID = 0x00AC
	MessageNASGetNegotiatedDRX             MessageID = 0x00AE
	MessageNASSetVoiceRoaming              MessageID = 0x00B7
	MessageNASGetVoiceRoaming              MessageID = 0x00B8
	MessageNASSetEDRX                      MessageID = 0x00BA
	MessageNASGetEDRX                      MessageID = 0x00BB
	MessageNASEDRXChangeInfo               MessageID = 0x00BF
	MessageNASSetEDRXParameters            MessageID = 0x00C0
	MessageNASGetEDRXParameters            MessageID = 0x00C1
	MessageNASAbortNetworkScan             MessageID = 0x00C2
	MessageNASBlockNR5GPLMN                MessageID = 0x00DE
	MessageNASUnblockNR5GPLMN              MessageID = 0x00DF
	MessageNASResetNR5GPLMNBlocking        MessageID = 0x00E0
	MessageNASSetENDCConfig                MessageID = 0x00E7
	MessageNASGetENDCConfig                MessageID = 0x00E8
	MessageNASSetNR5GBandPriority          MessageID = 0x00ED
	MessageNASGetNR5GBandPriority          MessageID = 0x00EE

	// IMSA service commands
	MessageIMSAGetRegistrationStatus MessageID = 0x0020
	MessageIMSAGetServiceStatus      MessageID = 0x0021
	MessageIMSARegisterIndications   MessageID = 0x0022
	MessageIMSARegistrationChanged   MessageID = 0x0023
	MessageIMSAServiceStatusChanged  MessageID = 0x0024
	MessageIMSABind                  MessageID = 0x0033
	MessageIMSAGetBind               MessageID = 0x0034

	// IMS service commands
	MessageIMSSSetRegistrationManagerConfig MessageID = 0x0021
	MessageIMSSGetRegistrationManagerConfig MessageID = 0x0026
	MessageIMSRegisterIndications           MessageID = 0x002A
	MessageIMSSetPolicyManagerSettings      MessageID = 0x0047
	MessageIMSGetPolicyManagerSettings      MessageID = 0x0048
	MessageIMSPolicyManagerSettings         MessageID = 0x0049
	MessageIMSSetServicesEnabled            MessageID = 0x008F
	MessageIMSGetServicesEnabled            MessageID = 0x0090
	MessageIMSServicesEnabled               MessageID = 0x0091
	MessageIMSBind                          MessageID = 0x0098

	// SAR service commands
	MessageSARRFSetState MessageID = 0x0001
	MessageSARRFGetState MessageID = 0x0002

	// IMSP service commands
	MessageIMSPGetEnablerState MessageID = 0x0024

	// IMS DCM service commands
	MessageIMSDCMPDPActivate   MessageID = 0x0020
	MessageIMSDCMPDPDeactivate MessageID = 0x0021

	// SSC service commands
	MessageSSCControl     MessageID = 0x0020
	MessageSSCReportSmall MessageID = 0x0021
	MessageSSCReportLarge MessageID = 0x0022

	// UIM service commands
	MessageReset                     MessageID = 0x0000
	MessageReadTransparent           MessageID = 0x0020
	MessageReadRecord                MessageID = 0x0021
	MessageWriteTransparent          MessageID = 0x0022
	MessageWriteRecord               MessageID = 0x0023
	MessageGetFileAttributes         MessageID = 0x0024
	MessageSetPINProtection          MessageID = 0x0025
	MessageVerifyPIN                 MessageID = 0x0026
	MessageUnblockPIN                MessageID = 0x0027
	MessageChangePIN                 MessageID = 0x0028
	MessageDepersonalization         MessageID = 0x0029
	MessageRefreshRegister           MessageID = 0x002A
	MessageRefreshOK                 MessageID = 0x002B
	MessageRefreshComplete           MessageID = 0x002C
	MessageRegisterEvents            MessageID = 0x002E
	MessagePowerOffSIM               MessageID = 0x0030
	MessagePowerOnSIM                MessageID = 0x0031
	MessageCardStatus                MessageID = 0x0032
	MessageRefresh                   MessageID = 0x0033
	MessageChangeProvisioningSession MessageID = 0x0038
	MessageGetConfiguration          MessageID = 0x003A
	MessageSendAPDU                  MessageID = 0x003B
	MessageOpenLogicalChannel        MessageID = 0x0042
	MessageCloseLogicalChannel       MessageID = 0x003F
	MessageGetATR                    MessageID = 0x0041
	MessageRefreshRegisterAll        MessageID = 0x0044
	MessageSwitchSlot                MessageID = 0x0046
	MessageGetSlotStatus             MessageID = 0x0047
	MessageSlotStatus                MessageID = 0x0048
	MessageGetCardStatus             MessageID = 0x002F
	MessageAuthenticate              MessageID = 0x0034
	MessageRemoteUnlock              MessageID = 0x005D

	// CAT/CAT2 service commands
	MessageCATSetEventReport            MessageID = 0x0001
	MessageCATEventReport               MessageID = 0x0001
	MessageCATGetServiceState           MessageID = 0x0020
	MessageCATSendTerminalResponse      MessageID = 0x0021
	MessageSendEnvelope                 MessageID = 0x0022
	MessageCATSendEnvelope              MessageID = 0x0022
	MessageCATEventConfirmation         MessageID = 0x0026
	MessageCATGetTerminalProfile        MessageID = 0x002C
	MessageCATSetConfiguration          MessageID = 0x002D
	MessageCATGetConfiguration          MessageID = 0x002E
	MessageCATGetCachedProactiveCommand MessageID = 0x002F
)

type MessageType

type MessageType uint8

MessageType represents QMI message types.

const (
	MessageTypeRequest    MessageType = 0x00
	MessageTypeResponse   MessageType = 0x02
	MessageTypeIndication MessageType = 0x04
)

type NASAbortRequest

type NASAbortRequest struct {
	ClientID            uint8
	TransactionID       uint16
	Timeout             time.Duration
	TargetTransactionID uint16
}

NASAbortRequest encodes the library-level NAS Abort command. The target must use the same NAS client ID as the operation being aborted.

func (NASAbortRequest) Request

func (r NASAbortRequest) Request() Request

Request converts the abort operation into a QMI NAS request.

type NASActiveBand

type NASActiveBand uint16

NASActiveBand is the Qualcomm active-band enumeration value.

type NASAttachState

type NASAttachState uint8

NASAttachState is a circuit-switched or packet-switched attach state.

const (
	NASAttachUnknown NASAttachState = iota
	NASAttachAttached
	NASAttachDetached
)

type NASBandPreference

type NASBandPreference uint64

NASBandPreference is the legacy NAS band-class bitmask.

type NASBandwidth

type NASBandwidth uint32

NASBandwidth is the Qualcomm bandwidth enumeration value.

type NASBindSubscriptionRequest

type NASBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  NASSubscription
}

NASBindSubscriptionRequest encodes NAS Bind Subscription.

func (NASBindSubscriptionRequest) Request

func (r NASBindSubscriptionRequest) Request() (Request, error)

Request validates and converts the subscription into a QMI request.

type NASCDMABaseStation

type NASCDMABaseStation struct {
	PilotType     NASCDMAPilotType
	SystemID      uint16
	NetworkID     uint16
	BaseStationID uint16
	PilotPN       uint16
	PilotStrength uint16
	Latitude      int32
	Longitude     int32
	GPSTimeMillis uint64
}

NASCDMABaseStation contains one CDMA pilot position report.

type NASCDMACellLocation

type NASCDMACellLocation struct {
	SystemID      uint16
	NetworkID     uint16
	BaseStationID uint16
	ReferencePN   uint16
	Latitude      uint32
	Longitude     uint32
}

NASCDMACellLocation contains the current CDMA base-station identity.

func (*NASCDMACellLocation) UnmarshalBinary

func (l *NASCDMACellLocation) UnmarshalBinary(value []byte) error

type NASCDMAPilotType

type NASCDMAPilotType uint32

NASCDMAPilotType identifies an active or neighboring CDMA pilot.

const (
	NASCDMAPilotActive NASCDMAPilotType = iota
	NASCDMAPilotNeighbor
)

type NASCDMAPositionInfo

type NASCDMAPositionInfo struct {
	Known        bool
	UEInIdle     bool
	BaseStations []NASCDMABaseStation
}

NASCDMAPositionInfo contains the serving and neighboring CDMA positions.

func (*NASCDMAPositionInfo) UnmarshalTLVs

func (i *NASCDMAPositionInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get CDMA Position Info response TLVs.

type NASCIoTLTEMode

type NASCIoTLTEMode uint32

NASCIoTLTEMode identifies the LTE wideband, M1, or NB1 camping mode.

const (
	NASCIoTLTEModeNoService NASCIoTLTEMode = iota
	NASCIoTLTEModeWideband
	NASCIoTLTEModeM1
	NASCIoTLTEModeNB1
)

type NASCPSMSServiceStatus

type NASCPSMSServiceStatus uint32

NASCPSMSServiceStatus describes control-plane SMS availability.

const (
	NASCPSMSUnavailable NASCPSMSServiceStatus = iota
	NASCPSMSTemporaryFailure
	NASCPSMSAvailable
)

type NASCellLocationInfo

type NASCellLocationInfo struct {
	GERAN      NASGERANCellLocation
	GERANKnown bool
	UMTS       NASUMTSCellLocation
	UMTSKnown  bool
	CDMA       NASCDMACellLocation
	CDMAKnown  bool

	LTEIntra      NASLTEIntraFrequency
	LTEIntraKnown bool
	LTEInter      NASLTEInterFrequency
	LTEInterKnown bool
	LTEGERAN      NASLTEGERANNeighbors
	LTEGERANKnown bool
	LTEWCDMA      NASLTEWCDMANeighbors
	LTEWCDMAKnown bool

	UMTSCellID      uint32
	UMTSCellIDKnown bool
	UMTSLTE         NASUMTSLTENeighbors
	UMTSLTEKnown    bool

	LTETimingAdvance      int32
	LTETimingAdvanceKnown bool
	LTEIntraEARFCN        uint32
	LTEIntraEARFCNKnown   bool
	LTEInterEARFCNs       []uint32
	LTEInterEARFCNsKnown  bool
	UMTSLTEEARFCNs        []uint32
	UMTSLTEEARFCNsKnown   bool

	NR5GARFCN      uint32
	NR5GARFCNKnown bool
	NR5G           NASNR5GCellLocation
	NR5GKnown      bool
}

NASCellLocationInfo contains serving-cell and neighbor measurements by RAT.

func (*NASCellLocationInfo) UnmarshalTLVs

func (i *NASCellLocationInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI NAS Get Cell Location Info response.

type NASChangeDuration

type NASChangeDuration uint8

NASChangeDuration controls whether a preference survives a power cycle.

const (
	NASChangeUntilPowerCycle NASChangeDuration = iota
	NASChangePermanent
)

type NASCommonSignalInfo

type NASCommonSignalInfo struct {
	RSSI int8
	ECIO int16
}

NASCommonSignalInfo contains RSSI and raw ECIO half-dB units.

func (NASCommonSignalInfo) MarshalBinary

func (s NASCommonSignalInfo) MarshalBinary() ([]byte, error)

func (*NASCommonSignalInfo) UnmarshalBinary

func (s *NASCommonSignalInfo) UnmarshalBinary(value []byte) error

type NASConfigureSignalInfo2Request

type NASConfigureSignalInfo2Request struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASSignalThresholdConfig2
}

NASConfigureSignalInfo2Request encodes NAS Configure Signal Info2.

func (NASConfigureSignalInfo2Request) Request

Request converts the per-RAT threshold configuration into a QMI NAS request.

type NASConfigureSignalInfoRequest

type NASConfigureSignalInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASSignalThresholdConfig
}

NASConfigureSignalInfoRequest encodes NAS Configure Signal Info.

func (NASConfigureSignalInfoRequest) Request

Request converts the threshold configuration into a QMI NAS request.

type NASCountryInitials

type NASCountryInitials uint8

NASCountryInitials controls whether country initials prefix a PLMN name.

const (
	NASCountryInitialsDoNotAdd NASCountryInitials = iota
	NASCountryInitialsAdd
	NASCountryInitialsUnspecified NASCountryInitials = 0xFF
)

type NASCurrentPLMNName

type NASCurrentPLMNName struct {
	PLMN                      NASPLMN
	PLMNKnown                 bool
	ServiceProvider           NASEncodedNetworkName
	ServiceProviderKnown      bool
	Short                     NASEncodedNetworkName
	ShortKnown                bool
	Long                      NASEncodedNetworkName
	LongKnown                 bool
	CSGID                     uint32
	CSGIDKnown                bool
	DisplayServiceProvider    NASTriState
	DisplayPLMN               NASTriState
	DisplayBitsKnown          bool
	HomeNetwork               NASTriState
	HomeNetworkKnown          bool
	RadioInterface            NASRadioInterface
	RadioInterfaceKnown       bool
	Localized                 []NASLocalizedPLMNName
	LocalizedKnown            bool
	AdditionalInfo            []uint16
	AdditionalInfoKnown       bool
	Source                    NASNetworkNameSource
	SourceKnown               bool
	ServiceProviderExtended   []uint16
	ServiceProviderExtKnown   bool
	NR5GTrackingAreaCode      [3]byte
	NR5GTrackingAreaCodeKnown bool
}

NASCurrentPLMNName contains the operator-name data carried by the Current PLMN Name indication. Its TLVs differ from Get PLMN Name and are decoded independently.

func (*NASCurrentPLMNName) UnmarshalTLVs

func (n *NASCurrentPLMNName) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Current PLMN Name indication TLVs.

type NASDRX

type NASDRX uint32

NASDRX is the legacy circuit-switched discontinuous-reception cycle.

const (
	NASDRXUnknown NASDRX = 0x00
	NASDRXCN6T32  NASDRX = 0x06
	NASDRXCN7T64  NASDRX = 0x07
	NASDRXCN8T128 NASDRX = 0x08
	NASDRXCN9T256 NASDRX = 0x09
)

func (*NASDRX) UnmarshalTLVs

func (drx *NASDRX) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the QMI NAS legacy DRX cycle.

type NASDataCapability

type NASDataCapability uint8

NASDataCapability identifies a packet-data technology available on the serving system.

const (
	NASDataCapabilityGPRS NASDataCapability = 1 + iota
	NASDataCapabilityEDGE
	NASDataCapabilityHSDPA
	NASDataCapabilityHSUPA
	NASDataCapabilityWCDMA
	NASDataCapabilityCDMA
	NASDataCapabilityEVDORev0
	NASDataCapabilityEVDORevA
	NASDataCapabilityGSM
	NASDataCapabilityEVDORevB
	NASDataCapabilityLTE
	NASDataCapabilityHSDPAPlus
	NASDataCapabilityDCHSDPAPlus
)

type NASECIOMeasurement

type NASECIOMeasurement struct {
	ECIO           uint8
	RadioInterface NASRadioInterface
}

NASECIOMeasurement contains legacy negative half-dB units. Multiplying ECIO by -0.5 yields the value in dB.

type NASEDRXParameters

type NASEDRXParameters struct {
	Enabled               bool
	EnabledKnown          bool
	CycleLength           uint8
	CycleLengthKnown      bool
	PagingTimeWindow      uint8
	PagingTimeWindowKnown bool
	RadioInterface        NASRadioInterface
	RadioInterfaceKnown   bool
	CIoTLTEMode           NASCIoTLTEMode
	CIoTLTEModeKnown      bool
}

NASEDRXParameters contains negotiated extended idle-mode DRX parameters.

func (*NASEDRXParameters) UnmarshalTLVs

func (p *NASEDRXParameters) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS eDRX Change Info indication TLVs.

type NASENDCConfig

type NASENDCConfig struct {
	Enabled                  bool
	EnabledKnown             bool
	ImmediateSCGRelease      bool
	ImmediateSCGReleaseKnown bool
}

NASENDCConfig describes LTE/NR dual-connectivity configuration.

func (*NASENDCConfig) UnmarshalTLVs

func (c *NASENDCConfig) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get ENDC Config response TLVs.

type NASEncodedNetworkName

type NASEncodedNetworkName struct {
	Encoding        NASNetworkDescriptionEncoding
	CountryInitials NASCountryInitials
	SpareBits       NASNameSpareBits
	Data            []byte
}

NASEncodedNetworkName preserves the modem-provided name bytes and encoding.

type NASErrorRateMeasurement

type NASErrorRateMeasurement struct {
	Rate           uint16
	RadioInterface NASRadioInterface
}

NASErrorRateMeasurement is one RAT-specific legacy error-rate value.

type NASEventReport

type NASEventReport struct {
	SignalStrength          NASSignalStrength
	SignalStrengthKnown     bool
	RFBands                 []NASRFBand
	RFBandsKnown            bool
	RegistrationReject      NASRegistrationRejectReason
	RegistrationRejectKnown bool
	RSSI                    NASRSSIMeasurement
	RSSIKnown               bool
	ECIO                    NASECIOMeasurement
	ECIOKnown               bool
	IO                      int32
	IOKnown                 bool
	SINRLevel               uint8
	SINRKnown               bool
	ErrorRate               NASErrorRateMeasurement
	ErrorRateKnown          bool
	RSRQ                    NASRSRQMeasurement
	RSRQKnown               bool
	LTESNR                  int16
	LTESNRKnown             bool
	LTERSRP                 int16
	LTERSRPKnown            bool
}

NASEventReport contains the optional values in one legacy NAS indication.

func (*NASEventReport) UnmarshalTLVs

func (e *NASEventReport) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI NAS Event Report indication.

type NASGERANCellLocation

type NASGERANCellLocation struct {
	CellID             uint32
	CellIDKnown        bool
	PLMN               NASPLMN
	PLMNKnown          bool
	LAC                uint16
	ARFCN              uint16
	BSIC               uint8
	TimingAdvance      uint32
	TimingAdvanceKnown bool
	RXLevel            uint16
	Neighbors          []NASGERANNeighborCell
}

NASGERANCellLocation contains the GSM serving cell and its neighbors.

func (*NASGERANCellLocation) UnmarshalBinary

func (l *NASGERANCellLocation) UnmarshalBinary(value []byte) error

type NASGERANNeighborCell

type NASGERANNeighborCell struct {
	CellID      uint32
	CellIDKnown bool
	PLMN        NASPLMN
	PLMNKnown   bool
	LAC         uint16
	ARFCN       uint16
	BSIC        uint8
	RXLevel     uint16
}

NASGERANNeighborCell contains one measured GSM neighbor.

type NASGWAcquisitionOrder

type NASGWAcquisitionOrder uint32

NASGWAcquisitionOrder is the relative GSM/WCDMA acquisition order.

const (
	NASGWAcquisitionAutomatic NASGWAcquisitionOrder = iota
	NASGWAcquisitionGSMThenWCDMA
	NASGWAcquisitionWCDMAThenGSM
)

type NASGetServingSystemRequest

type NASGetServingSystemRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

NASGetServingSystemRequest encodes QMI NAS Get Serving System.

func (NASGetServingSystemRequest) Request

func (r NASGetServingSystemRequest) Request() Request

Request converts the request into a QMI NAS request.

type NASGetServingSystemResponse

type NASGetServingSystemResponse struct {
	ServingSystem NASServingSystem
}

NASGetServingSystemResponse is the parsed NAS Get Serving System response.

func (*NASGetServingSystemResponse) UnmarshalTLVs

func (r *NASGetServingSystemResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory serving-system aggregate.

type NASGetSignalStrengthRequest

type NASGetSignalStrengthRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mask          NASSignalStrengthRequestMask
}

NASGetSignalStrengthRequest encodes the deprecated Get Signal Strength command retained by the libqmi basic collection.

func (NASGetSignalStrengthRequest) Request

Request converts the signal query into a QMI NAS request.

type NASGetSysInfoRequest

type NASGetSysInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

NASGetSysInfoRequest encodes QMI NAS Get System Info.

func (NASGetSysInfoRequest) Request

func (r NASGetSysInfoRequest) Request() Request

Request converts the request into a QMI NAS request.

type NASGetSysInfoResponse

type NASGetSysInfoResponse struct {
	SysInfo NASSysInfo
}

NASGetSysInfoResponse is the parsed NAS Get System Info response.

func (*NASGetSysInfoResponse) UnmarshalTLVs

func (r *NASGetSysInfoResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a NAS Get System Info response.

type NASGetSystemSelectionPreferenceRequest

type NASGetSystemSelectionPreferenceRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

NASGetSystemSelectionPreferenceRequest encodes Get System Selection Preference.

func (NASGetSystemSelectionPreferenceRequest) Request

Request converts the request into a QMI NAS request.

type NASHDRSignalInfo

type NASHDRSignalInfo struct {
	NASCommonSignalInfo
	SINRLevel uint8
	IO        int32
}

NASHDRSignalInfo contains HDR signal measurements.

type NASHomeNetwork

type NASHomeNetwork struct {
	PLMN NASPLMN

	Is3GPP          bool
	Is3GPPKnown     bool
	NameSource      NASNetworkNameSource
	NameSourceKnown bool
}

NASHomeNetwork contains the provisioned home PLMN and name metadata.

func (*NASHomeNetwork) UnmarshalTLVs

func (r *NASHomeNetwork) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Home Network response TLVs.

type NASIncrementalNetworkScanConfig

type NASIncrementalNetworkScanConfig struct {
	ScanType *NASNetworkScanType
}

NASIncrementalNetworkScanConfig selects the optional scan information type.

func (NASIncrementalNetworkScanConfig) MarshalTLVs

func (c NASIncrementalNetworkScanConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes incremental network-scan fields.

type NASIncrementalNetworkScanStatus

type NASIncrementalNetworkScanStatus uint32

NASIncrementalNetworkScanStatus describes progress of an incremental scan.

const (
	NASIncrementalNetworkScanComplete NASIncrementalNetworkScanStatus = iota
	NASIncrementalNetworkScanPartial
	NASIncrementalNetworkScanAborted
	NASIncrementalNetworkScanRejectedDuringRLF
	NASIncrementalNetworkScanError
	NASIncrementalNetworkScanPartialPeriodic
)

type NASIncrementalNetworkScanUpdate

type NASIncrementalNetworkScanUpdate struct {
	Status   NASIncrementalNetworkScanStatus
	Networks []NASVisibleNetwork
}

NASIncrementalNetworkScanUpdate is one partial or terminal scan indication.

func (*NASIncrementalNetworkScanUpdate) UnmarshalTLVs

func (u *NASIncrementalNetworkScanUpdate) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes one QMI NAS incremental network-scan update.

type NASIndicationConfig

type NASIndicationConfig struct {
	SystemSelection *bool
	OperatorName    *bool
	ServingSystem   *bool
	NetworkTime     *bool
	SystemInfo      *bool
	SignalInfo      *bool
	ErrorRate       *bool
	CurrentPLMNName *bool
	RFBandInfo      *bool
	NetworkReject   *NASNetworkRejectIndicationConfig
	EDRXChange      *bool
}

NASIndicationConfig selects common NAS indications for one control point. Nil fields are omitted, allowing one registration to change only one event.

type NASIndicationRegisterRequest

type NASIndicationRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASIndicationConfig
}

NASIndicationRegisterRequest encodes NAS Indication Register.

func (NASIndicationRegisterRequest) Request

Request converts the request into a QMI NAS request.

type NASInitiateNetworkRegisterRequest

type NASInitiateNetworkRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Registration  NASNetworkRegistration
}

NASInitiateNetworkRegisterRequest encodes Initiate Network Register.

func (NASInitiateNetworkRegisterRequest) Request

Request converts the request into a QMI NAS request.

type NASLTEBandPreference

type NASLTEBandPreference uint64

NASLTEBandPreference is the deprecated 64-bit LTE band mask.

type NASLTEBandPreferenceExtended

type NASLTEBandPreferenceExtended struct {
	Bits1To64    uint64
	Bits65To128  uint64
	Bits129To192 uint64
	Bits193To256 uint64
}

NASLTEBandPreferenceExtended is Qualcomm's 256-bit LTE band mask.

func (NASLTEBandPreferenceExtended) MarshalBinary

func (b NASLTEBandPreferenceExtended) MarshalBinary() ([]byte, error)

MarshalBinary encodes the extended LTE band preference bitmap.

func (*NASLTEBandPreferenceExtended) UnmarshalBinary

func (b *NASLTEBandPreferenceExtended) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes the extended LTE band preference bitmap.

type NASLTECarrierAggregationCell

type NASLTECarrierAggregationCell struct {
	PhysicalCellID uint16
	RXChannel      uint16
	DLBandwidth    NASBandwidth
	Band           NASActiveBand
	State          NASSecondaryCellState
	StateKnown     bool
	Index          uint8
	IndexKnown     bool
}

NASLTECarrierAggregationCell contains one primary or secondary LTE carrier.

type NASLTECarrierAggregationInfo

type NASLTECarrierAggregationInfo struct {
	DLBandwidth      NASBandwidth
	DLBandwidthKnown bool
	PrimaryCell      NASLTECarrierAggregationCell
	PrimaryCellKnown bool
	SecondaryCells   []NASLTECarrierAggregationCell
}

NASLTECarrierAggregationInfo contains LTE primary and secondary carriers.

func (*NASLTECarrierAggregationInfo) UnmarshalTLVs

func (i *NASLTECarrierAggregationInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get LTE CPHY CA Info response TLVs.

type NASLTECellMeasurement

type NASLTECellMeasurement struct {
	PhysicalCellID   uint16
	RSRQ             int16
	RSRP             int16
	RSSI             int16
	SelectionRXLevel int16
}

NASLTECellMeasurement contains one measured LTE cell.

type NASLTEDisableCause

type NASLTEDisableCause uint32

NASLTEDisableCause identifies why LTE is unavailable.

const (
	NASLTEDisableNone NASLTEDisableCause = iota
	NASLTEDisablePermanentDomainSelection
	NASLTEDisableTemporaryDomainSelection
	NASLTEDisableVoiceDomainSelection
	NASLTEDisableAggressionManagement
	NASLTEDisableUser
	NASLTEDisableNoChange
)

type NASLTEGERANCell

type NASLTEGERANCell struct {
	ARFCN            uint16
	Band1900         bool
	CellIDValid      bool
	BSIC             uint8
	RSSI             int16
	SelectionRXLevel int16
}

NASLTEGERANCell contains one GSM cell measured by LTE.

type NASLTEGERANFrequency

type NASLTEGERANFrequency struct {
	CellReselectionPriority uint8
	HighThreshold           uint8
	LowThreshold            uint8
	NCCPermitted            uint8
	Cells                   []NASLTEGERANCell
}

NASLTEGERANFrequency contains one LTE-to-GSM neighbor group.

type NASLTEGERANNeighbors

type NASLTEGERANNeighbors struct {
	UEInIdle    bool
	Frequencies []NASLTEGERANFrequency
}

NASLTEGERANNeighbors contains GSM neighbors measured by LTE.

func (*NASLTEGERANNeighbors) UnmarshalBinary

func (l *NASLTEGERANNeighbors) UnmarshalBinary(value []byte) error

type NASLTEInterFrequency

type NASLTEInterFrequency struct {
	UEInIdle    bool
	Frequencies []NASLTEInterFrequencyEntry
}

NASLTEInterFrequency contains LTE interfrequency measurements.

func (*NASLTEInterFrequency) UnmarshalBinary

func (l *NASLTEInterFrequency) UnmarshalBinary(value []byte) error

type NASLTEInterFrequencyEntry

type NASLTEInterFrequencyEntry struct {
	EARFCN                  uint16
	LowThreshold            uint8
	HighThreshold           uint8
	CellReselectionPriority uint8
	Cells                   []NASLTECellMeasurement
}

NASLTEInterFrequencyEntry contains cells measured on one other LTE frequency.

type NASLTEIntraFrequency

type NASLTEIntraFrequency struct {
	UEInIdle                bool
	PLMN                    NASPLMN
	PLMNKnown               bool
	TrackingAreaCode        uint16
	GlobalCellID            uint32
	EARFCN                  uint16
	ServingCellID           uint16
	CellReselectionPriority uint8
	NonIntraSearchThreshold uint8
	ServingCellLowThreshold uint8
	IntraSearchThreshold    uint8
	Cells                   []NASLTECellMeasurement
}

NASLTEIntraFrequency contains the serving LTE frequency and measured cells.

func (*NASLTEIntraFrequency) UnmarshalBinary

func (l *NASLTEIntraFrequency) UnmarshalBinary(value []byte) error

type NASLTESignalAveragePeriod

type NASLTESignalAveragePeriod uint8

NASLTESignalAveragePeriod controls the LTE measurement averaging window.

const (
	NASLTESignalAverageDefault NASLTESignalAveragePeriod = iota
	NASLTESignalAverageOneSecond
	NASLTESignalAverageTwoSeconds
	NASLTESignalAverageThreeSeconds
	NASLTESignalAverageFourSeconds
	NASLTESignalAverageFiveSeconds
	NASLTESignalAverageSixSeconds
	NASLTESignalAverageSevenSeconds
	NASLTESignalAverageEightSeconds
	NASLTESignalAverageNineSeconds
	NASLTESignalAverageTenSeconds
)

type NASLTESignalInfo

type NASLTESignalInfo struct {
	RSSI int8
	RSRQ int8
	RSRP int16
	// SNR is reported in tenths of a decibel.
	SNR int16
}

NASLTESignalInfo contains LTE signal measurements.

type NASLTESignalReportConfig

type NASLTESignalReportConfig struct {
	Rate          NASLTESignalReportRate
	AveragePeriod NASLTESignalAveragePeriod
}

NASLTESignalReportConfig controls LTE report cadence and averaging.

type NASLTESignalReportRate

type NASLTESignalReportRate uint8

NASLTESignalReportRate controls how often LTE signal state is checked.

const (
	NASLTESignalReportRateDefault NASLTESignalReportRate = iota
	NASLTESignalReportRateOneSecond
	NASLTESignalReportRateTwoSeconds
	NASLTESignalReportRateThreeSeconds
	NASLTESignalReportRateFourSeconds
	NASLTESignalReportRateFiveSeconds
)

type NASLTEWCDMACell

type NASLTEWCDMACell struct {
	PSC              uint16
	CPICHRSCP        int16
	CPICHECNO        int16
	SelectionRXLevel int16
}

NASLTEWCDMACell contains one WCDMA cell measured by LTE.

type NASLTEWCDMAFrequency

type NASLTEWCDMAFrequency struct {
	UARFCN                  uint16
	CellReselectionPriority uint8
	HighThreshold           uint16
	LowThreshold            uint16
	Cells                   []NASLTEWCDMACell
}

NASLTEWCDMAFrequency contains one LTE-to-WCDMA neighbor group.

type NASLTEWCDMANeighbors

type NASLTEWCDMANeighbors struct {
	UEInIdle    bool
	Frequencies []NASLTEWCDMAFrequency
}

NASLTEWCDMANeighbors contains WCDMA neighbors measured by LTE.

func (*NASLTEWCDMANeighbors) UnmarshalBinary

func (l *NASLTEWCDMANeighbors) UnmarshalBinary(value []byte) error

type NASLegacyDeltaConfig

type NASLegacyDeltaConfig struct {
	Report bool
	Delta  uint8
}

NASLegacyDeltaConfig controls a legacy metric's report state and delta. The delta unit depends on the metric using it.

type NASLegacyECIOThresholdConfig

type NASLegacyECIOThresholdConfig struct {
	Report     bool
	Thresholds []int16
}

NASLegacyECIOThresholdConfig controls ECIO crossing thresholds.

type NASLegacyLTESNRDeltaConfig

type NASLegacyLTESNRDeltaConfig struct {
	Report bool
	Delta  uint16
}

NASLegacyLTESNRDeltaConfig controls LTE SNR reports. Delta is in 0.1 dB units and follows the Qualcomm IDL's two-byte field.

type NASLegacySINRThresholdConfig

type NASLegacySINRThresholdConfig struct {
	Report     bool
	Thresholds []uint8
}

NASLegacySINRThresholdConfig controls EVDO SINR crossing thresholds.

type NASLegacySignalThresholdConfig

type NASLegacySignalThresholdConfig struct {
	Report     bool
	Thresholds []int8
}

NASLegacySignalThresholdConfig controls the old signal-strength bands.

type NASLocalizedPLMNName

type NASLocalizedPLMNName struct {
	LongName  []uint16
	ShortName []uint16
	Language  NASPLMNLanguage
}

NASLocalizedPLMNName contains one language-specific UCS-2 name pair.

type NASManualRegistration

type NASManualRegistration struct {
	PLMN           NASPLMN
	RadioInterface NASRadioInterface
}

NASManualRegistration identifies a PLMN and RAT for manual registration.

type NASModePreference

type NASModePreference uint16

NASModePreference is a bitmask of radio technologies the modem may acquire.

const (
	NASModePreferenceCDMA1X NASModePreference = 1 << iota
	NASModePreferenceHDR
	NASModePreferenceGSM
	NASModePreferenceUMTS
	NASModePreferenceLTE
	NASModePreferenceTDSCDMA
	NASModePreferenceNR5G
)

type NASNR5GBandPreference

type NASNR5GBandPreference struct {
	Bits1To64    uint64
	Bits65To128  uint64
	Bits129To192 uint64
	Bits193To256 uint64
	Bits257To320 uint64
	Bits321To384 uint64
	Bits385To448 uint64
	Bits449To512 uint64
}

NASNR5GBandPreference is Qualcomm's 512-bit NR5G band mask.

func (NASNR5GBandPreference) MarshalBinary

func (b NASNR5GBandPreference) MarshalBinary() ([]byte, error)

MarshalBinary encodes the NR5G band preference bitmap.

func (*NASNR5GBandPreference) UnmarshalBinary

func (b *NASNR5GBandPreference) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes the NR5G band preference bitmap.

type NASNR5GCellLocation

type NASNR5GCellLocation struct {
	PLMN             NASPLMN
	PLMNKnown        bool
	TrackingAreaCode [3]byte
	GlobalCellID     uint64
	PhysicalCellID   uint16
	RSRQ             int16
	RSRP             int16
	SNR              int16
}

NASNR5GCellLocation contains the current NR serving-cell measurements.

func (*NASNR5GCellLocation) UnmarshalBinary

func (l *NASNR5GCellLocation) UnmarshalBinary(value []byte) error

type NASNR5GDisableMode

type NASNR5GDisableMode uint32

NASNR5GDisableMode selects which NR5G deployment mode is disabled.

const (
	NASNR5GDisableNone NASNR5GDisableMode = iota
	NASNR5GDisableSA
	NASNR5GDisableNSA
)

type NASNR5GSignalAveragePeriod

type NASNR5GSignalAveragePeriod uint8

NASNR5GSignalAveragePeriod controls the NR5G measurement averaging window.

const (
	NASNR5GSignalAverageDefault       NASNR5GSignalAveragePeriod = 0
	NASNR5GSignalAverageOneSecond     NASNR5GSignalAveragePeriod = 1
	NASNR5GSignalAverageTwoSeconds    NASNR5GSignalAveragePeriod = 2
	NASNR5GSignalAverageThreeSeconds  NASNR5GSignalAveragePeriod = 3
	NASNR5GSignalAverageFourSeconds   NASNR5GSignalAveragePeriod = 4
	NASNR5GSignalAverageFiveSeconds   NASNR5GSignalAveragePeriod = 5
	NASNR5GSignalAverageSixSeconds    NASNR5GSignalAveragePeriod = 6
	NASNR5GSignalAverageSevenSeconds  NASNR5GSignalAveragePeriod = 7
	NASNR5GSignalAverageEightSeconds  NASNR5GSignalAveragePeriod = 8
	NASNR5GSignalAverageNineSeconds   NASNR5GSignalAveragePeriod = 9
	NASNR5GSignalAverageTenSeconds    NASNR5GSignalAveragePeriod = 10
	NASNR5GSignalAverageTwentySeconds NASNR5GSignalAveragePeriod = 20
	NASNR5GSignalAverageThirtySeconds NASNR5GSignalAveragePeriod = 30
)

type NASNR5GSignalInfo

type NASNR5GSignalInfo struct {
	RSRP int16
	// SNR is reported in tenths of a decibel.
	SNR int16
}

NASNR5GSignalInfo contains NR5G signal measurements.

type NASNR5GSignalReportConfig

type NASNR5GSignalReportConfig struct {
	Rate          NASNR5GSignalReportRate
	AveragePeriod NASNR5GSignalAveragePeriod
}

NASNR5GSignalReportConfig controls NR5G report cadence and averaging.

type NASNR5GSignalReportRate

type NASNR5GSignalReportRate uint8

NASNR5GSignalReportRate controls how often NR5G signal state is checked.

const (
	NASNR5GSignalReportRateDefault       NASNR5GSignalReportRate = 0
	NASNR5GSignalReportRateOneSecond     NASNR5GSignalReportRate = 1
	NASNR5GSignalReportRateTwoSeconds    NASNR5GSignalReportRate = 2
	NASNR5GSignalReportRateThreeSeconds  NASNR5GSignalReportRate = 3
	NASNR5GSignalReportRateFourSeconds   NASNR5GSignalReportRate = 4
	NASNR5GSignalReportRateFiveSeconds   NASNR5GSignalReportRate = 5
	NASNR5GSignalReportRateTenSeconds    NASNR5GSignalReportRate = 10
	NASNR5GSignalReportRateTwentySeconds NASNR5GSignalReportRate = 20
	NASNR5GSignalReportRateThirtySeconds NASNR5GSignalReportRate = 30
)

type NASNameSpareBits

type NASNameSpareBits uint8

NASNameSpareBits is the number-of-spare-bits code for GSM packed names.

type NASNetworkDescriptionEncoding

type NASNetworkDescriptionEncoding uint8

NASNetworkDescriptionEncoding identifies bytes in an encoded network name.

const (
	NASNetworkDescriptionGSM7 NASNetworkDescriptionEncoding = iota
	NASNetworkDescriptionUCS2LE
)

type NASNetworkForbiddenStatus

type NASNetworkForbiddenStatus uint8

NASNetworkForbiddenStatus identifies whether registration is forbidden.

const (
	NASNetworkForbiddenUnknown NASNetworkForbiddenStatus = iota
	NASNetworkForbidden
	NASNetworkAllowed
)

type NASNetworkInUseStatus

type NASNetworkInUseStatus uint8

NASNetworkInUseStatus identifies whether a visible network is serving or available.

const (
	NASNetworkInUseUnknown NASNetworkInUseStatus = iota
	NASNetworkInUseCurrent
	NASNetworkInUseAvailable
)

type NASNetworkNameSource

type NASNetworkNameSource uint32

NASNetworkNameSource identifies where an operator name came from.

const (
	NASNetworkNameSourceUnknown NASNetworkNameSource = iota
	NASNetworkNameSourceOPLPNN
	NASNetworkNameSourceCPHSONS
	NASNetworkNameSourceNITZ
	NASNetworkNameSourceSE13
	NASNetworkNameSourceMCCMNC
	NASNetworkNameSourceSPN
)

type NASNetworkPreferredStatus

type NASNetworkPreferredStatus uint8

NASNetworkPreferredStatus identifies operator preference.

const (
	NASNetworkPreferredUnknown NASNetworkPreferredStatus = iota
	NASNetworkPreferred
	NASNetworkNotPreferred
)

type NASNetworkRegistration

type NASNetworkRegistration struct {
	Action         NASRegisterAction
	Manual         *NASManualRegistration
	ChangeDuration *NASChangeDuration
}

NASNetworkRegistration configures one registration attempt.

func (NASNetworkRegistration) MarshalTLVs

func (r NASNetworkRegistration) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes network-registration fields.

type NASNetworkReject

type NASNetworkReject struct {
	RadioInterface   NASRadioInterface
	ServiceDomain    NASNetworkServiceDomain
	Cause            NASRejectCause
	PLMN             NASPLMN
	PLMNKnown        bool
	CSGID            uint32
	CSGIDKnown       bool
	CIoTLTEMode      uint32
	CIoTLTEModeKnown bool
}

NASNetworkReject describes one rejected network registration attempt.

func (*NASNetworkReject) UnmarshalTLVs

func (r *NASNetworkReject) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Network Reject indication TLVs.

type NASNetworkRejectIndicationConfig

type NASNetworkRejectIndicationConfig struct {
	Enabled            bool
	SuppressSystemInfo bool
}

NASNetworkRejectIndicationConfig controls reject indications and whether the modem suppresses the related system-information indication.

type NASNetworkRoamingStatus

type NASNetworkRoamingStatus uint8

NASNetworkRoamingStatus identifies home or roaming status.

const (
	NASNetworkRoamingUnknown NASNetworkRoamingStatus = iota
	NASNetworkRoamingHome
	NASNetworkRoaming
)

type NASNetworkScan

type NASNetworkScan struct {
	Networks    []NASVisibleNetwork
	Result      NASNetworkScanResult
	ResultKnown bool
}

NASNetworkScan contains visible networks and the modem completion status.

func (*NASNetworkScan) UnmarshalTLVs

func (r *NASNetworkScan) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Perform Network Scan response TLVs.

type NASNetworkScanConfig

type NASNetworkScanConfig struct {
	NetworkTypes      *NASNetworkTypeMask
	ScanType          *NASNetworkScanType
	BandPreference    *NASBandPreference
	LTEBandPreference *NASLTEBandPreference
	TDSBandPreference *NASTDSCDMABandPreference
	Scope             *NASNetworkScanScope
	LTEBandsExtended  *NASLTEBandPreferenceExtended
	Timeout           time.Duration
}

NASNetworkScanConfig contains optional network-scan filters.

func (NASNetworkScanConfig) MarshalTLVs

func (c NASNetworkScanConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes network-scan configuration fields.

type NASNetworkScanResult

type NASNetworkScanResult uint32

NASNetworkScanResult is the modem-reported completion status.

const (
	NASNetworkScanSucceeded NASNetworkScanResult = iota
	NASNetworkScanAborted
	NASNetworkScanRejectedDuringRLF
)

type NASNetworkScanScope

type NASNetworkScanScope uint32

NASNetworkScanScope chooses a full-band or acquisition-database scan.

const (
	NASNetworkScanFullBand NASNetworkScanScope = iota
	NASNetworkScanAcquisitionDatabase
)

type NASNetworkScanType

type NASNetworkScanType uint32

NASNetworkScanType identifies the information requested by a scan.

const (
	NASNetworkScanPLMN NASNetworkScanType = iota
	NASNetworkScanCSG
	NASNetworkScanModePreference
	NASNetworkScanPCI
	NASNetworkScanCellSearch
)

type NASNetworkSelection

type NASNetworkSelection struct {
	Mode           NASNetworkSelectionMode
	PLMN           NASPLMN
	RadioInterface *NASRadioInterface
}

NASNetworkSelection configures automatic or manual PLMN selection.

func (NASNetworkSelection) MarshalTLVs

func (s NASNetworkSelection) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes manual or automatic network-selection fields.

type NASNetworkSelectionMode

type NASNetworkSelectionMode uint8

NASNetworkSelectionMode chooses automatic or manual PLMN selection.

const (
	NASNetworkSelectionAutomatic NASNetworkSelectionMode = iota
	NASNetworkSelectionManual
)

type NASNetworkServiceDomain

type NASNetworkServiceDomain uint8

NASNetworkServiceDomain identifies the rejected registration domain.

const (
	NASNetworkServiceNone NASNetworkServiceDomain = iota
	NASNetworkServiceCS
	NASNetworkServicePS
	NASNetworkServiceCSPS
	NASNetworkServiceCamped
)

type NASNetworkStatus

type NASNetworkStatus uint8

NASNetworkStatus is the packed in-use, roaming, forbidden, and preference status.

func (NASNetworkStatus) Forbidden

Forbidden returns the registration-forbidden bits from the packed status.

func (NASNetworkStatus) InUse

InUse returns the in-use bits from the packed status.

func (NASNetworkStatus) Preferred

Preferred returns the operator-preference bits from the packed status.

func (NASNetworkStatus) Roaming

Roaming returns the roaming bits from the packed status.

type NASNetworkTime

type NASNetworkTime struct {
	Year      uint16
	Month     uint8
	Day       uint8
	Hour      uint8
	Minute    uint8
	Second    uint8
	DayOfWeek uint8

	TimeZoneQuarterHours int8
	DaylightSavingHours  uint8
	RadioInterface       NASRadioInterface
}

NASNetworkTime is one network-provided civil timestamp.

type NASNetworkTimeUpdate

type NASNetworkTimeUpdate struct {
	Time NASNetworkTime

	TimeZoneKnown       bool
	DaylightSavingKnown bool
	RadioInterfaceKnown bool
}

NASNetworkTimeUpdate is the timestamp carried by a Network Time indication.

func (*NASNetworkTimeUpdate) UnmarshalTLVs

func (r *NASNetworkTimeUpdate) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI NAS Network Time indication.

type NASNetworkTimes

type NASNetworkTimes struct {
	ThreeGPP2      NASNetworkTime
	ThreeGPP2Known bool
	ThreeGPP       NASNetworkTime
	ThreeGPPKnown  bool
}

NASNetworkTimes contains the latest 3GPP and 3GPP2 timestamps.

func (*NASNetworkTimes) UnmarshalTLVs

func (r *NASNetworkTimes) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Network Time response TLVs.

type NASNetworkTypeMask

type NASNetworkTypeMask uint8

NASNetworkTypeMask selects radio families for a network scan.

const (
	NASNetworkTypeGSM NASNetworkTypeMask = 1 << iota
	NASNetworkTypeUMTS
	NASNetworkTypeLTE
	NASNetworkTypeTDSCDMA
)

type NASOperatorNameData

type NASOperatorNameData struct {
	ServiceProvider      NASServiceProviderName
	ServiceProviderKnown bool
	PLMNRecords          []NASOperatorPLMNRecord
	PLMNRecordsKnown     bool
	PLMNNames            []NASOperatorPLMNName
	PLMNNamesKnown       bool
	OperatorName         string
	OperatorNameKnown    bool
	NITZ                 NASOperatorPLMNName
	NITZKnown            bool
}

NASOperatorNameData contains legacy operator-name sources from the modem.

func (*NASOperatorNameData) UnmarshalTLVs

func (d *NASOperatorNameData) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Get Operator Name and Operator Name indication TLVs.

type NASOperatorPLMNName

type NASOperatorPLMNName struct {
	Long  NASEncodedNetworkName
	Short NASEncodedNetworkName
}

NASOperatorPLMNName contains one encoded long and short operator name.

type NASOperatorPLMNRecord

type NASOperatorPLMNRecord struct {
	MCC          string
	MNC          string
	LACStart     uint16
	LACEnd       uint16
	NameRecordID uint8
}

NASOperatorPLMNRecord maps a PLMN and location-area range to a name record.

type NASPLMN

type NASPLMN struct {
	MCC         uint16
	MNC         uint16
	Description string

	MNCThreeDigits      bool
	MNCThreeDigitsKnown bool
}

NASPLMN identifies a public land mobile network.

func (NASPLMN) MarshalText

func (p NASPLMN) MarshalText() ([]byte, error)

MarshalText encodes the PLMN as five or six decimal digits.

func (NASPLMN) String

func (p NASPLMN) String() string

String returns MCC and MNC as their conventional decimal PLMN string.

func (*NASPLMN) UnmarshalText

func (p *NASPLMN) UnmarshalText(text []byte) error

UnmarshalText decodes a five- or six-digit decimal PLMN.

type NASPLMNAccessTechnology

type NASPLMNAccessTechnology uint16

NASPLMNAccessTechnology is the preferred RAT mask stored with one PLMN.

const (
	NASPLMNAccessGSMCompact NASPLMNAccessTechnology = 1 << 6
	NASPLMNAccessGSM        NASPLMNAccessTechnology = 1 << 7
	NASPLMNAccessNGRAN      NASPLMNAccessTechnology = 1 << 11
	NASPLMNAccessEUTRAN     NASPLMNAccessTechnology = 1 << 14
	NASPLMNAccessUTRAN      NASPLMNAccessTechnology = 1 << 15
	NASPLMNAccessAll        NASPLMNAccessTechnology = 0xFFFF
)

type NASPLMNLanguage

type NASPLMNLanguage uint32

NASPLMNLanguage identifies the language of one UCS-2 operator name.

const (
	NASPLMNLanguageUnknown NASPLMNLanguage = iota
	NASPLMNLanguageChineseTraditional
	NASPLMNLanguageChineseSimplified
)

type NASPLMNName

type NASPLMNName struct {
	ServiceProvider        NASEncodedNetworkName
	Short                  NASEncodedNetworkName
	Long                   NASEncodedNetworkName
	NamesKnown             bool
	DisplayServiceProvider NASTriState
	DisplayPLMN            NASTriState
	DisplayBitsKnown       bool
	HomeNetwork            NASTriState
	HomeNetworkKnown       bool
	Localized              []NASLocalizedPLMNName
	LocalizedKnown         bool
	AdditionalInfo         []uint16
	AdditionalInfoKnown    bool
	Source                 NASNetworkNameSource
	SourceKnown            bool
}

NASPLMNName contains operator names and modem display guidance.

func (*NASPLMNName) UnmarshalTLVs

func (n *NASPLMNName) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get PLMN Name response TLVs.

type NASPLMNNameRequest

type NASPLMNNameRequest struct {
	PLMN               NASPLMN
	SuppressSIMError   *bool
	AlwaysSend         *bool
	UseStaticTableOnly *bool
	CSGID              *uint32
	RadioInterface     *NASRadioInterface
	SendAllInformation *bool
}

NASPLMNNameRequest selects the network and optional lookup policy.

type NASPRLPreference

type NASPRLPreference uint16

NASPRLPreference controls CDMA band-class 0 acquisition.

const (
	NASPRLPreferenceASide NASPRLPreference = 0x0001
	NASPRLPreferenceBSide NASPRLPreference = 0x0002
	NASPRLPreferenceAny   NASPRLPreference = 0x3FFF
)

type NASPSAttachAction

type NASPSAttachAction uint8

NASPSAttachAction requests an immediate packet-domain attach or detach.

const (
	NASPSAttach NASPSAttachAction = 1 + iota
	NASPSDetach
)

type NASPerformNetworkScanRequest

type NASPerformNetworkScanRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASNetworkScanConfig
}

NASPerformNetworkScanRequest encodes Perform Network Scan.

func (NASPerformNetworkScanRequest) Request

Request converts the request into a QMI NAS request.

type NASPreferenceDuration

type NASPreferenceDuration uint8

NASPreferenceDuration controls the lifetime of a legacy technology setting.

const (
	NASPreferencePermanent NASPreferenceDuration = iota
	NASPreferencePowerCycle
	NASPreferenceOneCall
	NASPreferenceOneCallOrTime
	NASPreferenceInternalOneCall1
	NASPreferenceInternalOneCall2
	NASPreferenceInternalOneCall3
)

type NASPreferredNetwork

type NASPreferredNetwork struct {
	PLMN             NASPLMN
	AccessTechnology NASPLMNAccessTechnology
}

NASPreferredNetwork is one ordered user or static preferred PLMN entry.

type NASPreferredNetworks

type NASPreferredNetworks struct {
	Networks    []NASPreferredNetwork
	Known       bool
	Static      []NASPreferredNetwork
	StaticKnown bool
}

NASPreferredNetworks contains user-controlled and modem-provided static preferred PLMN lists.

func (*NASPreferredNetworks) UnmarshalTLVs

func (n *NASPreferredNetworks) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Preferred Networks response TLVs.

type NASPreferredNetworksConfig

type NASPreferredNetworksConfig struct {
	Networks      []NASPreferredNetwork
	ClearPrevious *bool
}

NASPreferredNetworksConfig updates the user-controlled preferred PLMN list. A nil Networks slice omits the list; an empty non-nil slice sends an empty list. ClearPrevious is optional because some modems append by default.

func (NASPreferredNetworksConfig) MarshalTLVs

func (c NASPreferredNetworksConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes preferred-network fields.

type NASRFBand

type NASRFBand struct {
	RadioInterface NASRadioInterface
	Band           NASActiveBand
	Channel        uint32
}

NASRFBand contains one currently active radio, band, and channel.

type NASRFBandInfo

type NASRFBandInfo struct {
	Bands    []NASRFBand
	Extended bool

	DedicatedBands      []NASRFDedicatedBand
	DedicatedBandsKnown bool
	Bandwidths          []NASRFBandwidth
	BandwidthsKnown     bool
	CIoTLTEMode         NASCIoTLTEMode
	CIoTLTEModeKnown    bool
}

NASRFBandInfo contains active bands and optional bandwidths.

func (*NASRFBandInfo) UnmarshalIndicationTLVs

func (r *NASRFBandInfo) UnmarshalIndicationTLVs(tlvs tlv.TLVs) error

UnmarshalIndicationTLVs parses QMI NAS RF Band Info indication TLVs. Unlike Get RF Band Info, each indication TLV contains one aggregate without a count.

func (*NASRFBandInfo) UnmarshalTLVs

func (r *NASRFBandInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get RF Band Info response TLVs.

type NASRFBandwidth

type NASRFBandwidth struct {
	RadioInterface NASRadioInterface
	Bandwidth      NASBandwidth
}

NASRFBandwidth contains the bandwidth reported for one radio interface.

func (NASRFBandwidth) MarshalBinary

func (b NASRFBandwidth) MarshalBinary() ([]byte, error)

func (*NASRFBandwidth) UnmarshalBinary

func (b *NASRFBandwidth) UnmarshalBinary(value []byte) error

type NASRFDedicatedBand

type NASRFDedicatedBand struct {
	RadioInterface NASRadioInterface
	Band           NASActiveBand
}

NASRFDedicatedBand contains the dedicated band for one radio interface.

func (NASRFDedicatedBand) MarshalBinary

func (b NASRFDedicatedBand) MarshalBinary() ([]byte, error)

func (*NASRFDedicatedBand) UnmarshalBinary

func (b *NASRFDedicatedBand) UnmarshalBinary(value []byte) error

type NASRSRQMeasurement

type NASRSRQMeasurement struct {
	RSRQ           int8
	RadioInterface NASRadioInterface
}

NASRSRQMeasurement is one RSRQ value in dB.

type NASRSSIMeasurement

type NASRSSIMeasurement struct {
	RSSI           uint8
	RadioInterface NASRadioInterface
}

NASRSSIMeasurement contains the positive magnitude used by legacy NAS. Negating RSSI yields the conventional dBm value.

type NASRXChainInfo

type NASRXChainInfo struct {
	Index   uint8
	Tuned   bool
	RXPower int32
	ECIO    int32
	RSCP    int32
	RSRP    int32
	Phase   uint32
}

NASRXChainInfo contains raw receive measurements for one modem RF chain.

type NASRadioInterface

type NASRadioInterface uint8

NASRadioInterface identifies a radio interface currently in use.

const (
	NASRadioInterfaceNoService NASRadioInterface = 0
	NASRadioInterfaceCDMA1X    NASRadioInterface = 1
	NASRadioInterfaceCDMAEVDO  NASRadioInterface = 2
	NASRadioInterfaceAMPS      NASRadioInterface = 3
	NASRadioInterfaceGSM       NASRadioInterface = 4
	NASRadioInterfaceUMTS      NASRadioInterface = 5
	NASRadioInterfaceWLAN      NASRadioInterface = 6
	NASRadioInterfaceGPS       NASRadioInterface = 7
	NASRadioInterfaceLTE       NASRadioInterface = 8
	NASRadioInterfaceTDSCDMA   NASRadioInterface = 9
	NASRadioInterfaceLTEM1     NASRadioInterface = 10
	NASRadioInterfaceLTENB1    NASRadioInterface = 11
	NASRadioInterfaceNR5G      NASRadioInterface = 12
	NASRadioInterfaceNoChange  NASRadioInterface = 0xFF
)

type NASRadioSystemInfo

type NASRadioSystemInfo struct {
	ServiceStatus      NASServiceStatus
	ServiceStatusKnown bool

	TrueServiceStatus      NASServiceStatus
	TrueServiceStatusKnown bool
	PreferredDataPath      bool
	PreferredDataPathKnown bool

	SystemInfoKnown        bool
	ServiceDomain          NASServiceDomain
	ServiceDomainKnown     bool
	ServiceCapability      NASServiceDomain
	ServiceCapabilityKnown bool
	RoamingStatus          NASRoamingStatus
	RoamingStatusKnown     bool
	Forbidden              bool
	ForbiddenKnown         bool

	PLMN      NASPLMN
	PLMNKnown bool

	LocationAreaCode      uint16
	LocationAreaCodeKnown bool
	CellID                uint32
	CellIDKnown           bool
	TrackingAreaCode      uint32
	TrackingAreaCodeKnown bool
	PhysicalCellID        uint16
	PhysicalCellIDKnown   bool

	RegistrationRejectDomain NASServiceDomain
	RegistrationRejectCause  uint8
	RegistrationRejectKnown  bool

	VoiceDomain      NASVoiceDomain
	VoiceDomainKnown bool
	SMSDomain        NASSMSDomain
	SMSDomainKnown   bool

	VoiceSupported      bool
	VoiceSupportedKnown bool
	IMSVoiceAvailable   bool
	IMSVoiceKnown       bool
}

NASRadioSystemInfo contains service and serving-cell state for one radio technology.

type NASRegisterAction

type NASRegisterAction uint8

NASRegisterAction chooses automatic or manual registration.

const (
	NASRegisterAutomatically NASRegisterAction = 1 + iota
	NASRegisterManually
)

type NASRegistrationRejectReason

type NASRegistrationRejectReason struct {
	ServiceDomain NASNetworkServiceDomain
	Cause         uint16
}

NASRegistrationRejectReason is the reject data carried by a legacy event.

type NASRegistrationRestriction

type NASRegistrationRestriction uint32

NASRegistrationRestriction controls normal, camp-only, or limited registration.

const (
	NASRegistrationUnrestricted NASRegistrationRestriction = iota
	NASRegistrationCampedOnly
	NASRegistrationLimited
)

type NASRegistrationState

type NASRegistrationState uint8

NASRegistrationState is the network registration state reported by NAS.

const (
	NASRegistrationNotRegistered NASRegistrationState = iota
	NASRegistrationRegistered
	NASRegistrationSearching
	NASRegistrationDenied
	NASRegistrationUnknown
)

type NASRejectCause

type NASRejectCause uint8

NASRejectCause is a 3GPP mobility-management reject cause.

const (
	NASRejectNone                   NASRejectCause = 0x00
	NASRejectIMSIUnknown            NASRejectCause = 0x02
	NASRejectIllegalUE              NASRejectCause = 0x03
	NASRejectIMEINotAccepted        NASRejectCause = 0x05
	NASRejectIllegalME              NASRejectCause = 0x06
	NASRejectPSServicesNotAllowed   NASRejectCause = 0x07
	NASRejectPLMNNotAllowed         NASRejectCause = 0x0B
	NASRejectLocationAreaNotAllowed NASRejectCause = 0x0C
	NASRejectRoamingNotAllowed      NASRejectCause = 0x0D
	NASRejectNoSuitableCells        NASRejectCause = 0x0F
	NASRejectNetworkFailure         NASRejectCause = 0x11
	NASRejectCongestion             NASRejectCause = 0x16
)

type NASRoamingIndicator

type NASRoamingIndicator uint8

NASRoamingIndicator identifies home or roaming service.

const (
	NASRoamingIndicatorRoaming NASRoamingIndicator = iota
	NASRoamingIndicatorHome
)

type NASRoamingPreference

type NASRoamingPreference uint16

NASRoamingPreference controls whether roaming systems may be acquired.

const (
	NASRoamingPreferenceOff         NASRoamingPreference = 0x01
	NASRoamingPreferenceNotOff      NASRoamingPreference = 0x02
	NASRoamingPreferenceNotFlashing NASRoamingPreference = 0x03
	NASRoamingPreferenceAny         NASRoamingPreference = 0xFF
)

type NASRoamingStatus

type NASRoamingStatus uint8

NASRoamingStatus is the roaming state reported for one radio technology.

const (
	NASRoamingStatusOff NASRoamingStatus = iota
	NASRoamingStatusOn
	NASRoamingStatusBlinking
	NASRoamingStatusOutOfNeighborhood
	NASRoamingStatusOutOfBuilding
	NASRoamingStatusPreferred
	NASRoamingStatusAvailable
	NASRoamingStatusAlliancePartner
	NASRoamingStatusPremiumPartner
	NASRoamingStatusFullService
	NASRoamingStatusPartialService
	NASRoamingStatusBannerOn
	NASRoamingStatusBannerOff
)

type NASSMSDomain

type NASSMSDomain uint32

NASSMSDomain identifies the network selected for SMS service.

const (
	NASSMSDomainNone NASSMSDomain = iota
	NASSMSDomainIMS
	NASSMSDomainOneX
	NASSMSDomain3GPP
)

type NASScaledSignalConfig

type NASScaledSignalConfig struct {
	Thresholds []int16
	Delta      *uint16
}

NASScaledSignalConfig configures thresholds and an optional crossing delta. Values use the 0.1 dB or 0.1 dBm units defined by the corresponding metric.

type NASSecondaryCellState

type NASSecondaryCellState uint32

NASSecondaryCellState describes an LTE secondary carrier state.

const (
	NASSecondaryCellDeconfigured NASSecondaryCellState = iota
	NASSecondaryCellConfiguredDeactivated
	NASSecondaryCellConfiguredActivated
)

type NASSelectedNetwork

type NASSelectedNetwork uint8

NASSelectedNetwork identifies the selected network family.

const (
	NASSelectedNetworkUnknown NASSelectedNetwork = iota
	NASSelectedNetwork3GPP2
	NASSelectedNetwork3GPP
)

type NASServiceDomain

type NASServiceDomain uint8

NASServiceDomain identifies the circuit-switched and packet-switched domains.

const (
	NASServiceDomainNone NASServiceDomain = iota
	NASServiceDomainCircuitSwitched
	NASServiceDomainPacketSwitched
	NASServiceDomainCircuitAndPacketSwitched
	NASServiceDomainCamped
)

type NASServiceDomainPreference

type NASServiceDomainPreference uint32

NASServiceDomainPreference selects circuit-switched and packet-switched service.

const (
	NASServiceDomainCSOnly NASServiceDomainPreference = iota
	NASServiceDomainPSOnly
	NASServiceDomainCSPS
)

type NASServiceProviderName

type NASServiceProviderName struct {
	DisplayCondition uint8
	Name             []byte
}

NASServiceProviderName contains the raw EF-SPN value and display condition.

type NASServiceStatus

type NASServiceStatus uint8

NASServiceStatus describes whether a radio technology currently has service.

const (
	NASServiceStatusNone NASServiceStatus = iota
	NASServiceStatusLimited
	NASServiceStatusAvailable
	NASServiceStatusLimitedRegional
	NASServiceStatusPowerSave
)

type NASServingSystem

type NASServingSystem struct {
	RegistrationState NASRegistrationState
	CSAttachState     NASAttachState
	PSAttachState     NASAttachState
	SelectedNetwork   NASSelectedNetwork
	RadioInterfaces   []NASRadioInterface

	RoamingIndicator      NASRoamingIndicator
	RoamingIndicatorKnown bool
	DataCapabilities      []NASDataCapability
	DataCapabilitiesKnown bool
	PLMN                  NASPLMN
	PLMNKnown             bool

	TimeZoneQuarterHours   int8
	TimeZoneKnown          bool
	DaylightSavingHours    uint8
	DaylightSavingKnown    bool
	LocationAreaCode       uint16
	LocationAreaKnown      bool
	CellID                 uint32
	CellIDKnown            bool
	TrackingAreaCode       uint16
	TrackingAreaKnown      bool
	NetworkNameSource      NASNetworkNameSource
	NetworkNameSourceKnown bool
}

NASServingSystem contains the fields from NAS Get Serving System.

func (*NASServingSystem) UnmarshalTLVs

func (s *NASServingSystem) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS serving-system TLVs.

type NASSetEventReportConfig

type NASSetEventReportConfig struct {
	SignalStrength     *NASLegacySignalThresholdConfig
	RFBandInfo         *bool
	RegistrationReject *bool
	RSSI               *NASLegacyDeltaConfig
	ECIO               *NASLegacyDeltaConfig
	IO                 *NASLegacyDeltaConfig
	SINR               *NASLegacyDeltaConfig
	ErrorRate          *bool
	RSRQ               *NASLegacyDeltaConfig
	ECIOThreshold      *NASLegacyECIOThresholdConfig
	SINRThreshold      *NASLegacySINRThresholdConfig
	LTESNR             *NASLegacyLTESNRDeltaConfig
	LTERSRP            *NASLegacyDeltaConfig
}

NASSetEventReportConfig selects deprecated NAS event-report indications. Nil fields are omitted so a caller can change only the settings it owns.

func (NASSetEventReportConfig) MarshalTLVs

func (c NASSetEventReportConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes NAS event-report fields.

type NASSetEventReportRequest

type NASSetEventReportRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASSetEventReportConfig
}

NASSetEventReportRequest encodes Set Event Report.

func (NASSetEventReportRequest) Request

func (r NASSetEventReportRequest) Request() (Request, error)

Request validates and converts the event-report configuration to QMI TLVs.

type NASSetSystemSelectionPreferenceRequest

type NASSetSystemSelectionPreferenceRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        NASSystemSelectionConfig
}

NASSetSystemSelectionPreferenceRequest encodes Set System Selection Preference.

func (NASSetSystemSelectionPreferenceRequest) Request

Request converts the request into a QMI NAS request.

type NASSignalInfo

type NASSignalInfo struct {
	CDMA       NASCommonSignalInfo
	CDMAKnown  bool
	HDR        NASHDRSignalInfo
	HDRKnown   bool
	GSM        int8
	GSMKnown   bool
	WCDMA      NASCommonSignalInfo
	WCDMAKnown bool
	LTE        NASLTESignalInfo
	LTEKnown   bool

	TDSCDMARSCP      int8
	TDSCDMARSCPKnown bool
	TDSCDMA          NASTDSCDMASignalInfo
	TDSCDMAKnown     bool

	NR5G          NASNR5GSignalInfo
	NR5GKnown     bool
	NR5GRSRQ      int16
	NR5GRSRQKnown bool
	UMTSRSCP      int16
	UMTSRSCPKnown bool
}

NASSignalInfo contains the measurements reported for each available RAT.

func (*NASSignalInfo) UnmarshalTLVs

func (r *NASSignalInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Signal Info response or Signal Info indication TLVs.

type NASSignalStrength

type NASSignalStrength struct {
	Strength       int8
	RadioInterface NASRadioInterface
}

NASSignalStrength is one dBm measurement associated with a radio interface.

func (NASSignalStrength) MarshalBinary

func (s NASSignalStrength) MarshalBinary() ([]byte, error)

func (*NASSignalStrength) UnmarshalBinary

func (s *NASSignalStrength) UnmarshalBinary(value []byte) error

type NASSignalStrengthRequestMask

type NASSignalStrengthRequestMask uint16

NASSignalStrengthRequestMask selects optional measurements returned by the deprecated Get Signal Strength command.

const (
	NASSignalStrengthRequestRSSI NASSignalStrengthRequestMask = 1 << iota
	NASSignalStrengthRequestECIO
	NASSignalStrengthRequestIO
	NASSignalStrengthRequestSINR
	NASSignalStrengthRequestErrorRate
	NASSignalStrengthRequestRSRQ
	NASSignalStrengthRequestLTESNR
	NASSignalStrengthRequestLTERSRP

	NASSignalStrengthRequestAll = NASSignalStrengthRequestRSSI |
		NASSignalStrengthRequestECIO |
		NASSignalStrengthRequestIO |
		NASSignalStrengthRequestSINR |
		NASSignalStrengthRequestErrorRate |
		NASSignalStrengthRequestRSRQ |
		NASSignalStrengthRequestLTESNR |
		NASSignalStrengthRequestLTERSRP
)

type NASSignalStrengthResult

type NASSignalStrengthResult struct {
	Current NASSignalStrength

	Strengths       []NASSignalStrength
	StrengthsKnown  bool
	RSSI            []NASRSSIMeasurement
	RSSIKnown       bool
	ECIO            []NASECIOMeasurement
	ECIOKnown       bool
	IO              int32
	IOKnown         bool
	SINRLevel       uint8
	SINRKnown       bool
	ErrorRates      []NASErrorRateMeasurement
	ErrorRatesKnown bool
	RSRQ            NASRSRQMeasurement
	RSRQKnown       bool
	LTESNR          int16
	LTESNRKnown     bool
	LTERSRP         int16
	LTERSRPKnown    bool
}

NASSignalStrengthResult contains the mandatory current measurement and all optional legacy metrics requested by the caller.

func (*NASSignalStrengthResult) UnmarshalTLVs

func (r *NASSignalStrengthResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI NAS Get Signal Strength response.

type NASSignalThresholdConfig

type NASSignalThresholdConfig struct {
	RSSI    []int8
	ECIO    []int16
	HDRSINR []uint8
	LTESNR  []int16
	HDRIO   []int32
	LTERSRQ []int8
	LTERSRP []int16
	RSCP    []int8

	TDSSINR   []float32
	LTEReport *NASLTESignalReportConfig
}

NASSignalThresholdConfig selects crossing thresholds for Signal Info indications. Nil slices are omitted. A non-nil slice must contain between 1 and 16 values.

type NASSignalThresholdConfig2

NASSignalThresholdConfig2 configures per-RAT signal thresholds supported by the nondeprecated Config Signal Info2 command.

type NASSubscription

type NASSubscription uint8

NASSubscription identifies the subscription used by the NAS control point.

const (
	NASSubscriptionPrimary NASSubscription = iota
	NASSubscriptionSecondary
	NASSubscriptionTertiary
)

type NASSysInfo

type NASSysInfo struct {
	CDMA    NASRadioSystemInfo
	HDR     NASRadioSystemInfo
	GSM     NASRadioSystemInfo
	WCDMA   NASRadioSystemInfo
	LTE     NASRadioSystemInfo
	TDSCDMA NASRadioSystemInfo
	NR5G    NASRadioSystemInfo

	CPSMSServiceStatus          NASCPSMSServiceStatus
	CPSMSServiceStatusKnown     bool
	ENDCAvailable               bool
	ENDCAvailableKnown          bool
	DCNRRestricted              bool
	DCNRRestrictedKnown         bool
	TrackingAreaRestricted      bool
	TrackingAreaRestrictedKnown bool
	N1SMSRegistered             bool
	N1SMSRegisteredKnown        bool

	// VoPS mirrors the standard NAS system-info availability fields.
	VoPSKnown       bool
	VoPSSupported   bool
	NRVoPSKnown     bool
	NRVoPSSupported bool
}

NASSysInfo contains current service information for every supported radio technology.

func (*NASSysInfo) UnmarshalTLVs

func (s *NASSysInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses both Get System Info responses and System Info indications.

type NASSystemSelectionConfig

type NASSystemSelectionConfig struct {
	EmergencyMode      *bool
	ModePreference     *NASModePreference
	BandPreference     *NASBandPreference
	PRLPreference      *NASPRLPreference
	RoamingPreference  *NASRoamingPreference
	LTEBandPreference  *NASLTEBandPreference
	NetworkSelection   *NASNetworkSelection
	ChangeDuration     *NASChangeDuration
	ServiceDomain      *NASServiceDomainPreference
	GWAcquisitionOrder *NASGWAcquisitionOrder

	TDSCDMABandPreference *NASTDSCDMABandPreference
	AcquisitionOrder      []NASRadioInterface
	RegistrationRestrict  *NASRegistrationRestriction
	UsagePreference       *NASUsagePreference
	VoiceDomain           *NASVoiceDomainPreference

	LTEBandsExtended *NASLTEBandPreferenceExtended
	NR5GBands        *NASNR5GBandPreference
	NR5GDisableMode  *NASNR5GDisableMode
	NR5GSABands      *NASNR5GBandPreference
	NR5GNSABands     *NASNR5GBandPreference
}

NASSystemSelectionConfig contains optional changes to modem selection policy. Nil pointer and nil slice fields are omitted from the request.

func (NASSystemSelectionConfig) MarshalTLVs

func (c NASSystemSelectionConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes system-selection fields.

type NASSystemSelectionPreference

type NASSystemSelectionPreference struct {
	EmergencyMode           bool
	EmergencyModeKnown      bool
	ModePreference          NASModePreference
	ModePreferenceKnown     bool
	BandPreference          NASBandPreference
	BandPreferenceKnown     bool
	PRLPreference           NASPRLPreference
	PRLPreferenceKnown      bool
	RoamingPreference       NASRoamingPreference
	RoamingPreferenceKnown  bool
	LTEBandPreference       NASLTEBandPreference
	LTEBandPreferenceKnown  bool
	NetworkSelection        NASNetworkSelectionMode
	NetworkSelectionKnown   bool
	ServiceDomain           NASServiceDomainPreference
	ServiceDomainKnown      bool
	GWAcquisitionOrder      NASGWAcquisitionOrder
	GWAcquisitionOrderKnown bool

	TDSCDMABandPreference        NASTDSCDMABandPreference
	TDSCDMABandPreferenceKnown   bool
	ManualPLMN                   NASPLMN
	ManualPLMNKnown              bool
	AcquisitionOrder             []NASRadioInterface
	AcquisitionOrderKnown        bool
	RegistrationRestriction      NASRegistrationRestriction
	RegistrationRestrictionKnown bool
	UsagePreference              NASUsagePreference
	UsagePreferenceKnown         bool
	VoiceDomain                  NASVoiceDomainPreference
	VoiceDomainKnown             bool
	LTEDisableCause              NASLTEDisableCause
	LTEDisableCauseKnown         bool
	DisabledRATs                 NASModePreference
	DisabledRATsKnown            bool

	LTEBandsExtended      NASLTEBandPreferenceExtended
	LTEBandsExtendedKnown bool
	NR5GBands             NASNR5GBandPreference
	NR5GBandsKnown        bool
	NR5GDisableMode       NASNR5GDisableMode
	NR5GDisableModeKnown  bool
	NR5GSABands           NASNR5GBandPreference
	NR5GSABandsKnown      bool
	NR5GNSABands          NASNR5GBandPreference
	NR5GNSABandsKnown     bool
}

NASSystemSelectionPreference is the current modem selection policy.

func (*NASSystemSelectionPreference) UnmarshalTLVs

func (r *NASSystemSelectionPreference) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses Get System Selection Preference response or indication TLVs.

type NASTDSCDMABandPreference

type NASTDSCDMABandPreference uint64

NASTDSCDMABandPreference is the TD-SCDMA band mask.

type NASTDSCDMASignalInfo

type NASTDSCDMASignalInfo struct {
	RSSI float32
	RSCP float32
	ECIO float32
	SINR float32
}

NASTDSCDMASignalInfo contains floating-point TD-SCDMA measurements in dB/dBm.

type NASTXInfo

type NASTXInfo struct {
	InTraffic bool
	Power     int32
}

NASTXInfo contains current transmit state and raw power.

type NASTechnologyPreference

type NASTechnologyPreference uint16

NASTechnologyPreference is the legacy NAS radio-technology bitmask. New code should normally use NASModePreference through SystemSelectionPreference.

const (
	NASTechnology3GPP2 NASTechnologyPreference = 1 << iota
	NASTechnology3GPP
	NASTechnologyAMPSOrGSM
	NASTechnologyCDMAOrWCDMA
	NASTechnologyHDR
	NASTechnologyLTE
)

type NASTechnologyPreferences

type NASTechnologyPreferences struct {
	Active          NASTechnologyPreference
	Duration        NASPreferenceDuration
	Persistent      NASTechnologyPreference
	PersistentKnown bool
}

NASTechnologyPreferences contains active and persistent legacy preferences.

func (*NASTechnologyPreferences) UnmarshalTLVs

func (p *NASTechnologyPreferences) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Technology Preference response TLVs.

type NASTriState

type NASTriState uint32

NASTriState is Qualcomm's false, true, or unknown state.

const (
	NASTriFalse NASTriState = iota
	NASTriTrue
	NASTriUnknown
)

type NASTxRxInfo

type NASTxRxInfo struct {
	RXChains []NASRXChainInfo
	TX       NASTXInfo
	TXKnown  bool
}

NASTxRxInfo contains per-chain receive data and optional transmit data.

func (*NASTxRxInfo) UnmarshalTLVs

func (i *NASTxRxInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI NAS Get Tx Rx Info response TLVs.

type NASUMTSCellLocation

type NASUMTSCellLocation struct {
	CellID         uint16
	PLMN           NASPLMN
	PLMNKnown      bool
	LAC            uint16
	UARFCN         uint16
	PSC            uint16
	RSCP           int16
	ECIO           int16
	Neighbors      []NASUMTSNeighborCell
	GERANNeighbors []NASUMTSGERANNeighborCell
}

NASUMTSCellLocation contains the WCDMA serving cell and its neighbors.

func (*NASUMTSCellLocation) UnmarshalBinary

func (l *NASUMTSCellLocation) UnmarshalBinary(value []byte) error

type NASUMTSGERANNeighborCell

type NASUMTSGERANNeighborCell struct {
	ARFCN uint16
	NCC   uint8
	BCC   uint8
	RSSI  int16
}

NASUMTSGERANNeighborCell contains one GSM neighbor measured by WCDMA.

type NASUMTSLTENeighbor

type NASUMTSLTENeighbor struct {
	EARFCN           uint16
	PhysicalCellID   uint16
	RSRP             float32
	RSRQ             float32
	SelectionRXLevel int16
	TDD              bool
}

NASUMTSLTENeighbor contains one LTE cell measured by WCDMA.

type NASUMTSLTENeighbors

type NASUMTSLTENeighbors struct {
	RRCState NASWCDMARRCState
	Cells    []NASUMTSLTENeighbor
}

NASUMTSLTENeighbors contains LTE neighbors measured by WCDMA.

func (*NASUMTSLTENeighbors) UnmarshalBinary

func (l *NASUMTSLTENeighbors) UnmarshalBinary(value []byte) error

type NASUMTSNeighborCell

type NASUMTSNeighborCell struct {
	UARFCN uint16
	PSC    uint16
	RSCP   int16
	ECIO   int16
}

NASUMTSNeighborCell contains one monitored WCDMA cell.

type NASUsagePreference

type NASUsagePreference uint32

NASUsagePreference identifies a voice- or data-centric subscription.

const (
	NASUsageUnknown NASUsagePreference = iota
	NASUsageVoiceCentric
	NASUsageDataCentric
)

type NASVisibleNetwork

type NASVisibleNetwork struct {
	PLMN            NASPLMN
	Status          NASNetworkStatus
	RadioInterfaces []NASRadioInterface
	NameSource      NASNetworkNameSource
	NameSourceKnown bool
}

NASVisibleNetwork is one PLMN returned by a network scan.

type NASVoiceDomain

type NASVoiceDomain uint32

NASVoiceDomain identifies the network selected for voice service.

const (
	NASVoiceDomainNone NASVoiceDomain = iota
	NASVoiceDomainIMS
	NASVoiceDomainOneX
	NASVoiceDomain3GPP
)

type NASVoiceDomainPreference

type NASVoiceDomainPreference uint32

NASVoiceDomainPreference selects circuit-switched or packet-switched voice.

const (
	NASVoiceDomainCSOnly NASVoiceDomainPreference = iota
	NASVoiceDomainPSOnly
	NASVoiceDomainCSPreferred
	NASVoiceDomainPSPreferred
)

type NASWCDMARRCState

type NASWCDMARRCState uint32

NASWCDMARRCState identifies the current WCDMA RRC state.

const (
	NASWCDMARRCDisconnected NASWCDMARRCState = iota
	NASWCDMARRCCellPCH
	NASWCDMARRCURAPCH
	NASWCDMARRCCellFACH
	NASWCDMARRCCellDCH
)

type OMACancelSessionRequest

type OMACancelSessionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

OMACancelSessionRequest encodes QMI OMA Cancel Session.

func (OMACancelSessionRequest) Request

func (r OMACancelSessionRequest) Request() Request

Request converts the cancellation into a QMI request.

type OMAEvent

type OMAEvent struct {
	NetworkInitiatedAlert      OMANetworkInitiatedAlert
	NetworkInitiatedAlertKnown bool
	SessionState               OMASessionState
	SessionStateKnown          bool
	FailureReason              OMASessionFailureReason
	FailureReasonKnown         bool
}

OMAEvent is one OMA Event Report indication.

func (*OMAEvent) UnmarshalTLVs

func (e *OMAEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI OMA Event Report indication.

type OMAEventReportConfig

type OMAEventReportConfig struct {
	NetworkInitiatedAlerts *bool
	SessionState           *bool
}

OMAEventReportConfig updates selected OMA event-report settings. Nil fields are omitted so callers do not overwrite settings they do not own.

type OMAFeatureSettings

type OMAFeatureSettings struct {
	DeviceProvisioning      bool
	DeviceProvisioningKnown bool
	PRLUpdate               bool
	PRLUpdateKnown          bool
	HFA                     bool
	HFAKnown                bool
	HFADoneState            OMAHFAFeatureDoneState
	HFADoneStateKnown       bool
}

OMAFeatureSettings contains the modem's OMA feature configuration.

func (*OMAFeatureSettings) UnmarshalTLVs

func (s *OMAFeatureSettings) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI OMA Get Feature Setting output.

type OMAFeatureSettingsUpdate

type OMAFeatureSettingsUpdate struct {
	DeviceProvisioning *bool
	PRLUpdate          *bool
	HFA                *bool
}

OMAFeatureSettingsUpdate updates selected OMA features. Nil fields are omitted.

type OMAGetFeatureSettingsRequest

type OMAGetFeatureSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

OMAGetFeatureSettingsRequest encodes QMI OMA Get Feature Setting.

func (OMAGetFeatureSettingsRequest) Request

Request converts the query into a QMI request.

type OMAGetSessionInfoRequest

type OMAGetSessionInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

OMAGetSessionInfoRequest encodes QMI OMA Get Session Info.

func (OMAGetSessionInfoRequest) Request

func (r OMAGetSessionInfoRequest) Request() Request

Request converts the query into a QMI request.

type OMAHFAFeatureDoneState

type OMAHFAFeatureDoneState uint8

OMAHFAFeatureDoneState reports the result of hands-free activation.

const (
	OMAHFAFeatureNotFinished OMAHFAFeatureDoneState = iota
	OMAHFAFeatureSucceeded
	OMAHFAFeatureFailed
)

type OMANetworkInitiatedAlert

type OMANetworkInitiatedAlert struct {
	SessionType OMASessionType
	SessionID   uint16
}

OMANetworkInitiatedAlert identifies a pending network-initiated session.

func (OMANetworkInitiatedAlert) MarshalBinary

func (a OMANetworkInitiatedAlert) MarshalBinary() ([]byte, error)

func (*OMANetworkInitiatedAlert) UnmarshalBinary

func (a *OMANetworkInitiatedAlert) UnmarshalBinary(value []byte) error

type OMAResetRequest

type OMAResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

OMAResetRequest encodes QMI OMA Reset.

func (OMAResetRequest) Request

func (r OMAResetRequest) Request() Request

Request converts the reset into a QMI request.

type OMARetryInfo

type OMARetryInfo struct {
	Count          uint8
	PauseTimer     uint16
	PauseRemaining uint16
}

OMARetryInfo contains the retry counters returned for a retrying session. Qualcomm's published protocol does not specify a unit for the timer fields.

type OMASendSelectionRequest

type OMASendSelectionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Accept        bool
	SessionID     uint16
}

OMASendSelectionRequest encodes QMI OMA Send Selection.

func (OMASendSelectionRequest) Request

func (r OMASendSelectionRequest) Request() Request

Request converts the network-initiated alert decision into a QMI request.

type OMASessionFailureReason

type OMASessionFailureReason uint8

OMASessionFailureReason explains why an OMA session failed.

const (
	OMASessionFailureUnknown OMASessionFailureReason = iota
	OMASessionFailureNetworkUnavailable
	OMASessionFailureServerUnavailable
	OMASessionFailureAuthentication
	OMASessionFailureMaximumRetries
	OMASessionFailureCancelled
)

type OMASessionInfo

type OMASessionInfo struct {
	State                      OMASessionState
	Type                       OMASessionType
	FailureReason              OMASessionFailureReason
	FailureReasonKnown         bool
	Retry                      OMARetryInfo
	RetryKnown                 bool
	NetworkInitiatedAlert      OMANetworkInitiatedAlert
	NetworkInitiatedAlertKnown bool
}

OMASessionInfo describes the current session, or the previous session when no session is active.

func (*OMASessionInfo) UnmarshalTLVs

func (i *OMASessionInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI OMA Get Session Info output.

type OMASessionState

type OMASessionState uint8

OMASessionState describes the progress of an OMA session.

const (
	OMASessionCompleteInformationUpdated OMASessionState = iota
	OMASessionCompleteInformationUnavailable
	OMASessionFailed
	OMASessionRetrying
	OMASessionConnecting
	OMASessionConnected
	OMASessionAuthenticated
	OMASessionMDNDownloaded
	OMASessionMSIDDownloaded
	OMASessionPRLDownloaded
	OMASessionMIPProfileDownloaded
)

type OMASessionType

type OMASessionType uint8

OMASessionType identifies an OMA device-management session.

const (
	OMASessionClientDeviceConfigure OMASessionType = iota
	OMASessionClientPRLUpdate
	OMASessionClientHandsFreeActivation
	OMASessionDeviceHandsFreeActivation
	OMASessionNetworkPRLUpdate
	OMASessionNetworkDeviceConfigure
	OMASessionDevicePRLUpdate
)

type OMASetEventReportRequest

type OMASetEventReportRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        OMAEventReportConfig
}

OMASetEventReportRequest encodes QMI OMA Set Event Report.

func (OMASetEventReportRequest) Request

func (r OMASetEventReportRequest) Request() Request

Request converts the event settings into QMI TLVs.

type OMASetFeatureSettingsRequest

type OMASetFeatureSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Update        OMAFeatureSettingsUpdate
}

OMASetFeatureSettingsRequest encodes QMI OMA Set Feature Setting.

func (OMASetFeatureSettingsRequest) Request

Request converts selected feature settings into QMI TLVs.

type OMAStartSessionRequest

type OMAStartSessionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	SessionType   OMASessionType
}

OMAStartSessionRequest encodes QMI OMA Start Session.

func (OMAStartSessionRequest) Request

func (r OMAStartSessionRequest) Request() (Request, error)

Request validates and converts the session start into a QMI request.

type OpenLogicalChannelRequest

type OpenLogicalChannelRequest struct {
	AID []byte
}

func (OpenLogicalChannelRequest) MarshalBinary

func (r OpenLogicalChannelRequest) MarshalBinary() ([]byte, error)

func (*OpenLogicalChannelRequest) UnmarshalBinary

func (r *OpenLogicalChannelRequest) UnmarshalBinary(data []byte) error

type OpenLogicalChannelResponse

type OpenLogicalChannelResponse struct {
	Channel        uint8
	SelectResponse []byte
}

func (*OpenLogicalChannelResponse) UnmarshalBinary

func (r *OpenLogicalChannelResponse) UnmarshalBinary(data []byte) error

type Option

type Option func(*config)

Option configures a Client.

func WithSlot

func WithSlot(slot uint8) Option

WithSlot selects the physical UICC slot used by UIM and CAT operations.

type PBMAdditionalNumberCapability

type PBMAdditionalNumberCapability struct {
	MaximumNumbers         uint8
	MaximumNumberLength    uint8
	MaximumNumberTagLength uint8
}

PBMAdditionalNumberCapability contains additional-number limits.

type PBMAllCapabilities

PBMAllCapabilities contains capability arrays for every available session.

func (*PBMAllCapabilities) UnmarshalTLVs

func (c *PBMAllCapabilities) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PBM Get All Capabilities output.

type PBMAlphaStringCapability

type PBMAlphaStringCapability struct {
	MaximumRecords      uint8
	UsedRecords         uint8
	MaximumStringLength uint8
}

PBMAlphaStringCapability contains GAS or AAS record limits.

func (PBMAlphaStringCapability) MarshalBinary

func (c PBMAlphaStringCapability) MarshalBinary() ([]byte, error)

func (*PBMAlphaStringCapability) UnmarshalBinary

func (c *PBMAlphaStringCapability) UnmarshalBinary(value []byte) error

type PBMBasicCapabilities

type PBMBasicCapabilities struct {
	Session    PBMSessionType
	Phonebooks []PBMPhonebookCapability
}

PBMBasicCapabilities groups phonebook record limits by session.

type PBMCapabilities

type PBMCapabilities struct {
	Basic                 PBMBasicCapabilities
	BasicKnown            bool
	Group                 PBMGroupCapability
	GroupKnown            bool
	AdditionalNumber      PBMAdditionalNumberCapability
	AdditionalNumberKnown bool
	Email                 PBMEmailCapability
	EmailKnown            bool
	SecondName            PBMSecondNameCapability
	SecondNameKnown       bool
	HiddenRecords         PBMHiddenRecordsCapability
	HiddenRecordsKnown    bool
	GAS                   PBMAlphaStringCapability
	GASKnown              bool
	AAS                   PBMAlphaStringCapability
	AASKnown              bool
}

PBMCapabilities contains the optional capability TLVs returned for one requested phonebook.

func (*PBMCapabilities) UnmarshalTLVs

func (c *PBMCapabilities) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PBM Get Capabilities output.

type PBMEmailCapability

type PBMEmailCapability struct {
	MaximumEmails        uint8
	MaximumAddressLength uint8
}

PBMEmailCapability contains email-field limits.

type PBMEmergencyList

type PBMEmergencyList struct {
	Hardcoded      []string
	HardcodedFlags []PBMEmergencyNumberFlags
	NV             []string
	NVFlags        []PBMEmergencyNumberFlags
	Card           []PBMSessionEmergencyNumbers
	Network        []PBMSessionEmergencyNumbers
}

PBMEmergencyList is the consolidated emergency-number list known by the modem.

func (*PBMEmergencyList) UnmarshalTLVs

func (l *PBMEmergencyList) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PBM Get Emergency List output.

type PBMEmergencyNumber

type PBMEmergencyNumber struct {
	Flags  PBMEmergencyNumberFlags
	Number string
}

PBMEmergencyNumber is a categorized card or network emergency number.

type PBMEmergencyNumberFlags

type PBMEmergencyNumberFlags uint8

PBMEmergencyNumberFlags describes the service categories of an emergency number.

const (
	PBMEmergencyPolice PBMEmergencyNumberFlags = 1 << iota
	PBMEmergencyAmbulance
	PBMEmergencyFireBrigade
	PBMEmergencyMarineGuard
	PBMEmergencyMountainRescue
	PBMEmergencyManualECall
	PBMEmergencyAutomaticECall
	PBMEmergencySpare
)

type PBMEventRegistrationMask

type PBMEventRegistrationMask uint32

PBMEventRegistrationMask selects Phonebook Management indications.

const (
	PBMEventRecordUpdate PBMEventRegistrationMask = 1 << iota
	PBMEventPhonebookReady
	PBMEventEmergencyNumberList
	PBMEventHiddenRecordStatus
	PBMEventAASUpdate
	PBMEventGASUpdate
)

type PBMGetAllCapabilitiesRequest

type PBMGetAllCapabilitiesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PBMGetAllCapabilitiesRequest encodes QMI PBM Get All Capabilities.

func (PBMGetAllCapabilitiesRequest) Request

Request converts the query into a QMI PBM request.

type PBMGetCapabilitiesRequest

type PBMGetCapabilitiesRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Session       PBMSessionType
	Phonebook     PBMPhonebookType
}

PBMGetCapabilitiesRequest encodes QMI PBM Get Capabilities.

func (PBMGetCapabilitiesRequest) Request

func (r PBMGetCapabilitiesRequest) Request() (Request, error)

Request validates and converts the capability query into a QMI PBM request.

type PBMGetEmergencyListRequest

type PBMGetEmergencyListRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PBMGetEmergencyListRequest encodes QMI PBM Get Emergency List.

func (PBMGetEmergencyListRequest) Request

func (r PBMGetEmergencyListRequest) Request() Request

Request converts the query into a QMI PBM request.

type PBMGroupCapability

type PBMGroupCapability struct {
	MaximumGroups         uint8
	MaximumGroupTagLength uint8
}

PBMGroupCapability contains group limits for a phonebook session.

type PBMHiddenRecordsCapability

type PBMHiddenRecordsCapability struct {
	Supported bool
}

PBMHiddenRecordsCapability reports whether hidden records are supported.

type PBMIndicationRegisterRequest

type PBMIndicationRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mask          PBMEventRegistrationMask
}

PBMIndicationRegisterRequest encodes QMI PBM Indication Register.

func (PBMIndicationRegisterRequest) Request

Request converts the event mask into a QMI PBM request.

type PBMIndicationRegisterResponse

type PBMIndicationRegisterResponse struct {
	Mask      PBMEventRegistrationMask
	MaskKnown bool
}

PBMIndicationRegisterResponse contains the effective event mask when the modem returns it.

func (*PBMIndicationRegisterResponse) UnmarshalTLVs

func (r *PBMIndicationRegisterResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PBM Indication Register output.

type PBMPhonebookCapability

type PBMPhonebookCapability struct {
	Phonebook           PBMPhonebookType
	UsedRecords         uint16
	MaximumRecords      uint16
	MaximumNumberLength uint8
	MaximumNameLength   uint8
}

PBMPhonebookCapability contains the record limits for one phonebook.

type PBMPhonebookType

type PBMPhonebookType uint16

PBMPhonebookType is a bitmask of phonebook types.

const (
	PBMPhonebookADN PBMPhonebookType = 1 << iota
	PBMPhonebookFDN
	PBMPhonebookMSISDN
	PBMPhonebookMBDN
	PBMPhonebookSDN
	PBMPhonebookBDN
	PBMPhonebookLND
	PBMPhonebookMBN
	PBMPhonebookGAS
	PBMPhonebookAAS
)

type PBMSecondNameCapability

type PBMSecondNameCapability struct {
	MaximumLength uint8
}

PBMSecondNameCapability contains the second-name length limit.

type PBMSessionAdditionalNumberCapability

type PBMSessionAdditionalNumberCapability struct {
	PBMAdditionalNumberCapability
	Session PBMSessionType
}

PBMSessionAdditionalNumberCapability associates additional-number limits with a session.

type PBMSessionAlphaStringCapability

type PBMSessionAlphaStringCapability struct {
	PBMAlphaStringCapability
	Session PBMSessionType
}

PBMSessionAlphaStringCapability associates GAS or AAS limits with a session.

type PBMSessionEmailCapability

type PBMSessionEmailCapability struct {
	PBMEmailCapability
	Session PBMSessionType
}

PBMSessionEmailCapability associates email limits with a session.

type PBMSessionEmergencyNumbers

type PBMSessionEmergencyNumbers struct {
	Session PBMSessionType
	Numbers []PBMEmergencyNumber
}

PBMSessionEmergencyNumbers groups emergency numbers by phonebook session.

type PBMSessionGroupCapability

type PBMSessionGroupCapability struct {
	PBMGroupCapability
	Session PBMSessionType
}

PBMSessionGroupCapability associates group limits with a session.

type PBMSessionHiddenRecordsCapability

type PBMSessionHiddenRecordsCapability struct {
	PBMHiddenRecordsCapability
	Session PBMSessionType
}

PBMSessionHiddenRecordsCapability associates hidden-record support with a session.

type PBMSessionSecondNameCapability

type PBMSessionSecondNameCapability struct {
	PBMSecondNameCapability
	Session PBMSessionType
}

PBMSessionSecondNameCapability associates second-name limits with a session.

type PBMSessionType

type PBMSessionType uint8

PBMSessionType identifies a phonebook session.

const (
	PBMSessionGWPrimary PBMSessionType = iota
	PBMSession1XPrimary
	PBMSessionGWSecondary
	PBMSession1XSecondary
	PBMSessionNonProvisioningSlot1
	PBMSessionNonProvisioningSlot2
	PBMSessionGlobalPhonebookSlot1
	PBMSessionGlobalPhonebookSlot2
	PBMSessionGWTertiary
	PBMSession1XTertiary
	PBMSessionGlobalPhonebookSlot3
)

type PDCActivateConfigIndication

type PDCActivateConfigIndication = PDCOperationIndication

PDCActivateConfigIndication is an Activate Config completion.

type PDCActivateConfigRequest

type PDCActivateConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          PDCConfigurationType
	Token         *uint32
	Activation    *PDCActivationType
	Subscription  *uint32
	Slot          *uint32
}

PDCActivateConfigRequest encodes QMI PDC Activate Config.

func (PDCActivateConfigRequest) Request

func (r PDCActivateConfigRequest) Request() (Request, error)

Request validates and converts the activation request.

type PDCActivationType

type PDCActivationType uint32

PDCActivationType selects a normal activation or a refresh-only operation.

const (
	PDCActivationRegular PDCActivationType = iota
	PDCActivationRefreshOnly
)

type PDCConfig

type PDCConfig struct {
	Type PDCConfigurationType
	ID   []byte
}

PDCConfig identifies one persistent modem configuration.

func (PDCConfig) MarshalBinary

func (c PDCConfig) MarshalBinary() ([]byte, error)

MarshalBinary encodes a QMI PDC configuration reference.

func (*PDCConfig) UnmarshalBinary

func (c *PDCConfig) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a QMI PDC configuration reference.

type PDCConfigActivation

type PDCConfigActivation struct {
	Type         PDCConfigurationType
	Activation   *PDCActivationType
	Subscription *uint32
	Slot         *uint32
}

PDCConfigActivation describes a pending-configuration activation.

type PDCConfigChangeIndication

type PDCConfigChangeIndication struct {
	Config PDCConfig
}

PDCConfigChangeIndication reports a newly selected configuration.

func (*PDCConfigChangeIndication) UnmarshalTLVs

func (i *PDCConfigChangeIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a PDC Config Change indication.

type PDCConfigDeactivation

type PDCConfigDeactivation struct {
	Type         PDCConfigurationType
	Subscription *uint32
}

PDCConfigDeactivation selects the active configuration store to deactivate.

type PDCConfigInfo

type PDCConfigInfo struct {
	Size             uint32
	SizeKnown        bool
	Description      string
	DescriptionKnown bool
	Version          uint32
	VersionKnown     bool
	Storage          PDCStorage
	StorageKnown     bool
	Path             string
	PathKnown        bool
	BaseVersion      uint32
	BaseVersionKnown bool
	Header           []byte
	HeaderKnown      bool
}

PDCConfigInfo contains metadata returned for one persistent configuration.

type PDCConfigLimits

type PDCConfigLimits struct {
	Maximum      uint64
	MaximumKnown bool
	Current      uint64
	CurrentKnown bool
}

PDCConfigLimits contains storage use for one configuration type.

type PDCConfigLoad

type PDCConfigLoad struct {
	Config  PDCConfig
	Data    []byte
	Storage *PDCStorage
}

PDCConfigLoad contains a complete configuration to upload. Storage is omitted when nil so the modem can use its default storage policy.

type PDCConfigSelection

type PDCConfigSelection struct {
	Config       PDCConfig
	Subscription *uint32
	Slot         *uint32
}

PDCConfigSelection identifies a configuration to make pending.

type PDCConfigurationType

type PDCConfigurationType uint32

PDCConfigurationType identifies a persistent modem configuration store.

const (
	PDCConfigurationPlatform PDCConfigurationType = 0x00
	PDCConfigurationSoftware PDCConfigurationType = 0x01
	PDCConfigurationDatabase PDCConfigurationType = 0x10
)

type PDCDeactivateConfigIndication

type PDCDeactivateConfigIndication = PDCOperationIndication

PDCDeactivateConfigIndication is a Deactivate Config completion.

type PDCDeactivateConfigRequest

type PDCDeactivateConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          PDCConfigurationType
	Token         *uint32
	Subscription  *uint32
}

PDCDeactivateConfigRequest encodes QMI PDC Deactivate Config.

func (PDCDeactivateConfigRequest) Request

func (r PDCDeactivateConfigRequest) Request() (Request, error)

Request validates and converts the deactivation into QMI TLVs.

type PDCDeleteConfigIndication

type PDCDeleteConfigIndication = PDCOperationIndication

PDCDeleteConfigIndication is a Delete Config completion.

type PDCDeleteConfigRequest

type PDCDeleteConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDCConfig
	Token         *uint32
}

PDCDeleteConfigRequest encodes QMI PDC Delete Config.

func (PDCDeleteConfigRequest) Request

func (r PDCDeleteConfigRequest) Request() (Request, error)

Request validates and converts the configuration deletion into QMI TLVs.

type PDCGetConfigInfoIndication

type PDCGetConfigInfoIndication struct {
	Result PDCIndicationResult
	Info   PDCConfigInfo
}

PDCGetConfigInfoIndication is the asynchronous configuration-info result.

func (*PDCGetConfigInfoIndication) UnmarshalTLVs

func (i *PDCGetConfigInfoIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses configuration metadata and completion information.

type PDCGetConfigInfoRequest

type PDCGetConfigInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDCConfig
	Token         *uint32
}

PDCGetConfigInfoRequest encodes QMI PDC Get Config Info.

func (PDCGetConfigInfoRequest) Request

func (r PDCGetConfigInfoRequest) Request() (Request, error)

Request validates and converts the configuration-information query.

type PDCGetConfigLimitsIndication

type PDCGetConfigLimitsIndication struct {
	Result PDCIndicationResult
	Limits PDCConfigLimits
}

PDCGetConfigLimitsIndication is the asynchronous storage-limits result.

func (*PDCGetConfigLimitsIndication) UnmarshalTLVs

func (i *PDCGetConfigLimitsIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses configuration storage limits.

type PDCGetConfigLimitsRequest

type PDCGetConfigLimitsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          PDCConfigurationType
	Token         *uint32
}

PDCGetConfigLimitsRequest encodes QMI PDC Get Config Limits.

func (PDCGetConfigLimitsRequest) Request

func (r PDCGetConfigLimitsRequest) Request() (Request, error)

Request validates and converts the storage-limits query into QMI TLVs.

type PDCGetDefaultConfigInfoIndication

type PDCGetDefaultConfigInfoIndication struct {
	Result PDCIndicationResult
	Info   PDCConfigInfo
}

PDCGetDefaultConfigInfoIndication is the asynchronous default-config result.

func (*PDCGetDefaultConfigInfoIndication) UnmarshalTLVs

func (i *PDCGetDefaultConfigInfoIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses default configuration metadata.

type PDCGetDefaultConfigInfoRequest

type PDCGetDefaultConfigInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          PDCConfigurationType
	Token         *uint32
}

PDCGetDefaultConfigInfoRequest encodes QMI PDC Get Default Config Info.

func (PDCGetDefaultConfigInfoRequest) Request

Request validates and converts the default-configuration query into QMI TLVs.

type PDCGetSelectedConfigIndication

type PDCGetSelectedConfigIndication struct {
	Result   PDCIndicationResult
	Selected PDCSelectedConfig
}

PDCGetSelectedConfigIndication is the asynchronous selected-config result.

func (*PDCGetSelectedConfigIndication) UnmarshalTLVs

func (i *PDCGetSelectedConfigIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses selected configuration IDs and completion metadata.

type PDCGetSelectedConfigRequest

type PDCGetSelectedConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Type          PDCConfigurationType
	Token         *uint32
	Subscription  *uint32
	Slot          *uint32
}

PDCGetSelectedConfigRequest encodes QMI PDC Get Selected Config.

func (PDCGetSelectedConfigRequest) Request

func (r PDCGetSelectedConfigRequest) Request() (Request, error)

Request validates and converts the selected-configuration query.

type PDCIndicationConfig

type PDCIndicationConfig struct {
	ConfigChange  bool
	ClientRefresh *bool
}

PDCIndicationConfig updates PDC indication registration. ConfigChange is always sent because QMI PDC requires that setting in every register request.

type PDCIndicationResult

type PDCIndicationResult struct {
	Error      QMIError
	Token      uint32
	TokenKnown bool
}

PDCIndicationResult is the common asynchronous PDC completion status.

func (PDCIndicationResult) Err

func (r PDCIndicationResult) Err() error

Err returns the modem-reported operation error.

func (*PDCIndicationResult) UnmarshalTLVs

func (r *PDCIndicationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common QMI PDC indication result and token.

type PDCListConfigsIndication

type PDCListConfigsIndication struct {
	Result             PDCIndicationResult
	Configs            []PDCConfig
	ConfigsKnown       bool
	MoreAvailable      bool
	MoreAvailableKnown bool
}

PDCListConfigsIndication is one configuration-list result frame.

func (*PDCListConfigsIndication) UnmarshalTLVs

func (i *PDCListConfigsIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a PDC configuration-list indication.

type PDCListConfigsRequest

type PDCListConfigsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Token         *uint32
	Type          PDCConfigurationType
	MultiSupport  *bool
}

PDCListConfigsRequest encodes QMI PDC List Configs.

func (PDCListConfigsRequest) Request

func (r PDCListConfigsRequest) Request() (Request, error)

Request validates and converts the configuration-list query.

type PDCLoadConfigIndication

type PDCLoadConfigIndication struct {
	Result          PDCIndicationResult
	Received        uint32
	ReceivedKnown   bool
	Remaining       uint32
	RemainingKnown  bool
	FrameReset      bool
	FrameResetKnown bool
}

PDCLoadConfigIndication is one asynchronous load-frame result.

func (*PDCLoadConfigIndication) UnmarshalTLVs

func (i *PDCLoadConfigIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses one load-frame completion.

type PDCLoadConfigRequest

type PDCLoadConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDCConfig
	TotalSize     uint32
	Chunk         []byte
	Token         *uint32
	Storage       *PDCStorage
}

PDCLoadConfigRequest encodes one QMI PDC Load Config frame.

func (PDCLoadConfigRequest) Request

func (r PDCLoadConfigRequest) Request() (Request, error)

Request validates and converts one configuration frame into QMI TLVs.

type PDCLoadConfigResponse

type PDCLoadConfigResponse struct {
	FrameReset      bool
	FrameResetKnown bool
}

PDCLoadConfigResponse contains immediate frame-reset feedback.

func (*PDCLoadConfigResponse) UnmarshalTLVs

func (r *PDCLoadConfigResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional immediate frame-reset flag.

type PDCOperationIndication

type PDCOperationIndication struct {
	Result PDCIndicationResult
}

PDCOperationIndication is the common Set Selected and Activate indication.

func (*PDCOperationIndication) UnmarshalTLVs

func (i *PDCOperationIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common PDC operation result and token.

type PDCRefreshEvent

type PDCRefreshEvent struct {
	Type              PDCRefreshEventType
	Subscription      uint32
	SubscriptionKnown bool
	Slot              uint32
	SlotKnown         bool
}

PDCRefreshEvent describes one PDC refresh indication.

type PDCRefreshEventType

type PDCRefreshEventType uint32

PDCRefreshEventType identifies one modem configuration refresh stage.

const (
	PDCRefreshStart PDCRefreshEventType = iota
	PDCRefreshComplete
	PDCRefreshClient
)

type PDCRefreshIndication

type PDCRefreshIndication struct {
	Event PDCRefreshEvent
}

PDCRefreshIndication is a parsed PDC Refresh indication.

func (*PDCRefreshIndication) UnmarshalTLVs

func (i *PDCRefreshIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a PDC refresh event.

type PDCRegisterRequest

type PDCRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDCIndicationConfig
}

PDCRegisterRequest encodes QMI PDC Indication Register.

func (PDCRegisterRequest) Request

func (r PDCRegisterRequest) Request() Request

Request converts the indication settings into a QMI request.

type PDCResetRequest

type PDCResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PDCResetRequest encodes QMI PDC Reset.

func (PDCResetRequest) Request

func (r PDCResetRequest) Request() Request

Request converts the reset into a QMI request.

type PDCSelectedConfig

type PDCSelectedConfig struct {
	Active       []byte
	ActiveKnown  bool
	Pending      []byte
	PendingKnown bool
}

PDCSelectedConfig contains active and pending configuration IDs.

type PDCSelectionQuery

type PDCSelectionQuery struct {
	Type         PDCConfigurationType
	Subscription *uint32
	Slot         *uint32
}

PDCSelectionQuery selects the subscription and slot whose active and pending configuration IDs should be queried.

type PDCSetSelectedConfigIndication

type PDCSetSelectedConfigIndication = PDCOperationIndication

PDCSetSelectedConfigIndication is a Set Selected Config completion.

type PDCSetSelectedConfigRequest

type PDCSetSelectedConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDCConfig
	Token         *uint32
	Subscription  *uint32
	Slot          *uint32
}

PDCSetSelectedConfigRequest encodes QMI PDC Set Selected Config.

func (PDCSetSelectedConfigRequest) Request

func (r PDCSetSelectedConfigRequest) Request() (Request, error)

Request validates and converts the new selected configuration.

type PDCStorage

type PDCStorage uint32

PDCStorage identifies where a configuration is stored.

const (
	PDCStorageLocal PDCStorage = iota
	PDCStorageRemote
)

type PDNConfig

type PDNConfig struct {
	APN               string
	Authentication    WDSAuthenticationMask
	Username          string
	Password          string
	IPPreference      WDSIPPreference
	ProfileIndex      uint8
	Subscription      *WDSSubscription
	RequestTimeout    time.Duration
	MuxDataPort       *WDSMuxDataPort
	LegacyMuxDataPort WDSSIOPort
	LegacyMuxFallback *WDSMuxDataPort
	CallType          *WDSCallType
}

PDNConfig describes a general QMI WDS packet-data call.

type PDNInfo

type PDNInfo struct {
	LocalIPv4        net.IP
	LocalIPv6        net.IP
	IPv4Gateway      net.IP
	IPv4SubnetMask   net.IP
	IPv6Gateway      net.IP
	IPv6PrefixLength uint8
	DNS              []net.IP
	MTU              uint32
	IPFamily         WDSIPFamily
	PacketDataReady  bool
}

PDNInfo contains the negotiated network configuration of a packet-data call.

type PDNOpenResult

type PDNOpenResult struct {
	Session *PDNSession
	Err     error
}

PDNOpenResult reports one packet-data call from OpenPDNs. Session is set only when that family completed its Start Network transaction and runtime settings were read successfully.

type PDNSession

type PDNSession struct {
	// contains filtered or unexported fields
}

PDNSession owns a WDS packet-data handle and, on QMUX, its QMI client ID.

func (*PDNSession) ChannelRates

func (s *PDNSession) ChannelRates(ctx context.Context) (WDSChannelRates, error)

ChannelRates reads rates associated with this packet-data session.

func (*PDNSession) Close

func (s *PDNSession) Close() error

Close stops the packet-data call and releases its WDS client.

func (*PDNSession) CurrentDataBearerTechnology

func (s *PDNSession) CurrentDataBearerTechnology(ctx context.Context) (WDSCurrentBearerTechnologyInfo, error)

CurrentDataBearerTechnology reads legacy bearer masks for this session.

func (*PDNSession) DataBearerTechnology

func (s *PDNSession) DataBearerTechnology(ctx context.Context) (WDSDataBearerTechnologyInfo, error)

DataBearerTechnology reads the compact legacy bearer for this session.

func (*PDNSession) DataBearerTechnologyExtended

func (s *PDNSession) DataBearerTechnologyExtended(ctx context.Context) (WDSBearerTechnologyInfo, error)

DataBearerTechnologyExtended reads 5G-capable bearer information for this session.

func (*PDNSession) DormancyStatus

func (s *PDNSession) DormancyStatus(ctx context.Context) (WDSDormancyStatus, error)

DormancyStatus reads this packet-data session's traffic-channel state.

func (*PDNSession) GoActive

func (s *PDNSession) GoActive(ctx context.Context) error

GoActive asks this packet-data session to acquire a traffic channel.

func (*PDNSession) GoDormant

func (s *PDNSession) GoDormant(ctx context.Context, config WDSGoDormantConfig) error

GoDormant asks this packet-data session to release its traffic channel.

func (*PDNSession) Info

func (s *PDNSession) Info() PDNInfo

Info returns a defensive copy of the negotiated PDN state.

func (*PDNSession) PacketStatistics

func (s *PDNSession) PacketStatistics(ctx context.Context, mask WDSStatisticsMask) (WDSPacketStatistics, error)

PacketStatistics reads counters associated with this packet-data session.

func (*PDNSession) SetEventReport

func (s *PDNSession) SetEventReport(ctx context.Context, config WDSSetEventReportConfig) error

SetEventReport configures event indications for this packet-data session.

func (*PDNSession) Status

Status reads the current state and refreshes negotiated runtime settings for a connected PDN.

func (*PDNSession) WatchStatus

func (s *PDNSession) WatchStatus(ctx context.Context) (<-chan WDSPacketServiceEvent, error)

WatchStatus emits an initial snapshot followed by packet-service and extended-IP-configuration updates for this PDN.

type PDSAGPSConfig

type PDSAGPSConfig struct {
	Server *PDSAGPSServer
	URL    *string
}

PDSAGPSConfig contains the A-GPS server forms returned by the modem. The modem may return an address, a URL, or both.

type PDSAGPSConfigUpdate

type PDSAGPSConfigUpdate struct {
	Server      *PDSAGPSServer
	URL         *string
	NetworkMode *PDSNetworkMode
}

PDSAGPSConfigUpdate selects A-GPS fields to update. Nil fields are omitted.

type PDSAGPSServer

type PDSAGPSServer struct {
	Address netip.Addr
	Port    uint32
}

PDSAGPSServer identifies an IPv4 A-GPS server endpoint.

func (PDSAGPSServer) MarshalBinary

func (s PDSAGPSServer) MarshalBinary() ([]byte, error)

MarshalBinary encodes a QMI PDS A-GPS server.

func (*PDSAGPSServer) UnmarshalBinary

func (s *PDSAGPSServer) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a QMI PDS A-GPS server.

type PDSDefaultTrackingSession

type PDSDefaultTrackingSession struct {
	OperatingMode          PDSOperatingMode
	PositionTimeoutSeconds uint8
	IntervalSeconds        uint32
	AccuracyMeters         uint32
}

PDSDefaultTrackingSession contains the modem's default positioning parameters. The wire interval is seconds; older Qualcomm API documentation incorrectly described it as milliseconds.

type PDSEvent

type PDSEvent struct {
	NMEA               string
	NMEAKnown          bool
	ExtendedNMEA       PDSExtendedNMEA
	ExtendedNMEAKnown  bool
	SessionStatus      PDSPositionSessionStatus
	SessionStatusKnown bool
}

PDSEvent contains the supported fields from one PDS Event Report indication. Known fields distinguish an omitted TLV from a zero value.

func (*PDSEvent) UnmarshalTLVs

func (e *PDSEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI PDS Event Report indication.

type PDSEventReportConfig

type PDSEventReportConfig struct {
	NMEAPosition                    *bool
	ExtendedNMEAPosition            *bool
	ParsedPosition                  *bool
	ExternalXTRADataRequest         *bool
	ExternalTimeInjectionRequest    *bool
	ExternalWiFiPositionRequest     *bool
	SatelliteInformation            *bool
	VXNetworkInitiatedRequest       *bool
	SUPLNetworkInitiatedPrompt      *bool
	UMTSCPNetworkInitiatedPrompt    *bool
	CommunicationEvent              *bool
	AccelerometerStreamingReady     *bool
	GyroStreamingReady              *bool
	TimeSyncRequest                 *bool
	PositionReliability             *bool
	SensorDataUsage                 *bool
	TimeSourceInformation           *bool
	HeadingUncertainty              *bool
	NMEADebugStrings                *bool
	ExtendedExternalXTRADataRequest *bool
}

PDSEventReportConfig updates selected PDS event-report settings. Nil fields are omitted so callers do not overwrite settings they do not own.

type PDSExtendedNMEA

type PDSExtendedNMEA struct {
	OperatingMode PDSOperatingMode
	Sentence      string
}

PDSExtendedNMEA contains an NMEA sentence and the positioning mode that produced it.

type PDSGPSServiceState

type PDSGPSServiceState struct {
	Enabled         bool
	TrackingSession PDSTrackingSessionState
}

PDSGPSServiceState contains the GPS engine and tracking-session states.

type PDSGetAGPSConfigRequest

type PDSGetAGPSConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	NetworkMode   PDSNetworkMode
}

PDSGetAGPSConfigRequest encodes QMI PDS Get AGPS Config.

func (PDSGetAGPSConfigRequest) Request

func (r PDSGetAGPSConfigRequest) Request() (Request, error)

Request converts the network selection into a PDS request.

type PDSGetAGPSConfigResponse

type PDSGetAGPSConfigResponse struct {
	Config PDSAGPSConfig
}

PDSGetAGPSConfigResponse is the parsed A-GPS configuration response.

func (*PDSGetAGPSConfigResponse) UnmarshalTLVs

func (r *PDSGetAGPSConfigResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PDS Get AGPS Config response TLVs.

type PDSGetAutoTrackingStateRequest

type PDSGetAutoTrackingStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PDSGetAutoTrackingStateRequest encodes QMI PDS Get Auto Tracking State.

func (PDSGetAutoTrackingStateRequest) Request

Request converts the query into a PDS request.

type PDSGetAutoTrackingStateResponse

type PDSGetAutoTrackingStateResponse struct {
	Enabled bool
}

PDSGetAutoTrackingStateResponse is the parsed automatic tracking state.

func (*PDSGetAutoTrackingStateResponse) UnmarshalTLVs

func (r *PDSGetAutoTrackingStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PDS Get Auto Tracking State response TLVs.

type PDSGetDefaultTrackingSessionRequest

type PDSGetDefaultTrackingSessionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PDSGetDefaultTrackingSessionRequest encodes QMI PDS Get Default Tracking Session.

func (PDSGetDefaultTrackingSessionRequest) Request

Request converts the query into a PDS request.

type PDSGetDefaultTrackingSessionResponse

type PDSGetDefaultTrackingSessionResponse struct {
	Session PDSDefaultTrackingSession
}

PDSGetDefaultTrackingSessionResponse is the parsed default tracking session response.

func (*PDSGetDefaultTrackingSessionResponse) UnmarshalTLVs

func (r *PDSGetDefaultTrackingSessionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PDS Get Default Tracking Session response TLVs.

type PDSGetGPSServiceStateRequest

type PDSGetGPSServiceStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PDSGetGPSServiceStateRequest encodes QMI PDS Get GPS Service State.

func (PDSGetGPSServiceStateRequest) Request

Request converts the query into a PDS request.

type PDSGetGPSServiceStateResponse

type PDSGetGPSServiceStateResponse struct {
	State PDSGPSServiceState
}

PDSGetGPSServiceStateResponse is the parsed GPS service state response.

func (*PDSGetGPSServiceStateResponse) UnmarshalTLVs

func (r *PDSGetGPSServiceStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI PDS Get GPS Service State response TLVs.

type PDSNetworkMode

type PDSNetworkMode uint8

PDSNetworkMode selects the network family used for A-GPS setup.

const (
	PDSNetworkModeUMTS PDSNetworkMode = iota
	PDSNetworkModeCDMA
)

type PDSOperatingMode

type PDSOperatingMode int8

PDSOperatingMode identifies how the modem computes a position. Unknown is valid in event reports but cannot be configured as a tracking-session mode.

const (
	PDSOperatingModeUnknown    PDSOperatingMode = -1
	PDSOperatingModeStandalone PDSOperatingMode = 0
	PDSOperatingModeMSBased    PDSOperatingMode = 1
	PDSOperatingModeMSAssisted PDSOperatingMode = 2
)

type PDSPositionSessionStatus

type PDSPositionSessionStatus uint8

PDSPositionSessionStatus identifies the result or progress of a positioning session.

const (
	PDSPositionSessionSuccess PDSPositionSessionStatus = iota
	PDSPositionSessionInProgress
	PDSPositionSessionGeneralFailure
	PDSPositionSessionTimeout
	PDSPositionSessionUserEnded
	PDSPositionSessionBadParameter
	PDSPositionSessionPhoneOffline
	PDSPositionSessionEngineLocked
	PDSPositionSessionEmergencyCall
)

type PDSResetRequest

type PDSResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

PDSResetRequest encodes QMI PDS Reset.

func (PDSResetRequest) Request

func (r PDSResetRequest) Request() Request

Request converts the reset into a QMI request.

type PDSSetAGPSConfigRequest

type PDSSetAGPSConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDSAGPSConfigUpdate
}

PDSSetAGPSConfigRequest encodes QMI PDS Set AGPS Config.

func (PDSSetAGPSConfigRequest) Request

func (r PDSSetAGPSConfigRequest) Request() (Request, error)

Request converts selected A-GPS fields into a PDS request.

type PDSSetAutoTrackingStateRequest

type PDSSetAutoTrackingStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

PDSSetAutoTrackingStateRequest encodes QMI PDS Set Auto Tracking State.

func (PDSSetAutoTrackingStateRequest) Request

Request converts the desired automatic tracking state into a PDS request.

type PDSSetDefaultTrackingSessionRequest

type PDSSetDefaultTrackingSessionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Session       PDSDefaultTrackingSession
}

PDSSetDefaultTrackingSessionRequest encodes QMI PDS Set Default Tracking Session.

func (PDSSetDefaultTrackingSessionRequest) Request

Request converts the default tracking parameters into a PDS request.

type PDSSetEventReportRequest

type PDSSetEventReportRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        PDSEventReportConfig
}

PDSSetEventReportRequest encodes QMI PDS Set Event Report.

func (PDSSetEventReportRequest) Request

func (r PDSSetEventReportRequest) Request() Request

Request converts the event settings into PDS TLVs.

type PDSSetGPSServiceStateRequest

type PDSSetGPSServiceStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

PDSSetGPSServiceStateRequest encodes QMI PDS Set GPS Service State.

func (PDSSetGPSServiceStateRequest) Request

Request converts the desired GPS engine state into a PDS request.

type PDSTrackingSessionState

type PDSTrackingSessionState uint8

PDSTrackingSessionState identifies whether a tracking session is active.

const (
	PDSTrackingSessionUnknown PDSTrackingSessionState = iota
	PDSTrackingSessionInactive
	PDSTrackingSessionActive
)

type PINChangeRequest

type PINChangeRequest struct {
	Session      Session
	AID          []byte
	ID           PINID
	OldPIN       string
	NewPIN       string
	KeyReference *PINKeyReference
}

PINChangeRequest replaces one PIN after verifying its current value.

type PINID

type PINID uint8

PINID identifies a UIM PIN credential.

const (
	PINIDPIN1 PINID = 1 + iota
	PINIDPIN2
	PINIDUniversal
	PINIDHiddenKey
)

type PINKeyReference

type PINKeyReference uint8

PINKeyReference identifies an application PIN reference from ETSI TS 102 221.

const (
	PINKeyReferenceApplication1 PINKeyReference = 1 + iota
	PINKeyReferenceApplication2
	PINKeyReferenceApplication3
	PINKeyReferenceApplication4
	PINKeyReferenceApplication5
	PINKeyReferenceApplication6
	PINKeyReferenceApplication7
	PINKeyReferenceApplication8
)

type PINOperationResult

type PINOperationResult struct {
	VerifyRetries  uint8
	UnblockRetries uint8
	RetriesKnown   bool
	EncryptedPIN1  []byte
}

PINOperationResult contains optional modem details returned by a PIN operation.

func (*PINOperationResult) UnmarshalTLVs

func (r *PINOperationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes PIN retry and encrypted-PIN result fields.

type PINProtectionRequest

type PINProtectionRequest struct {
	Session      Session
	AID          []byte
	ID           PINID
	Enable       bool
	PIN          string
	KeyReference *PINKeyReference
}

PINProtectionRequest enables or disables one PIN for a UIM session.

type PINState

type PINState byte
const (
	PINStateNotInitialized PINState = iota
	PINStateEnabledNotVerified
	PINStateEnabledVerified
	PINStateDisabled
	PINStateBlocked
	PINStatePermanentlyBlocked
)

type PINUnblockRequest

type PINUnblockRequest struct {
	Session      Session
	AID          []byte
	ID           PINID
	PUK          string
	NewPIN       string
	KeyReference *PINKeyReference
}

PINUnblockRequest unblocks one PIN using its PUK and assigns a new value.

type PINVerifyRequest

type PINVerifyRequest struct {
	Session      Session
	AID          []byte
	ID           PINID
	PIN          string
	KeyReference *PINKeyReference
}

PINVerifyRequest verifies one PIN for a UIM session.

type PersonalizationFeature

type PersonalizationFeature byte
const (
	PersonalizationFeatureGWNetwork PersonalizationFeature = iota
	PersonalizationFeatureGWNetworkSubset
	PersonalizationFeatureGWServiceProvider
	PersonalizationFeatureGWCorporate
	PersonalizationFeatureGWUIM
	PersonalizationFeatureOneXNetworkType1
	PersonalizationFeatureOneXNetworkType2
	PersonalizationFeatureOneXHRPD
	PersonalizationFeatureOneXServiceProvider
	PersonalizationFeatureOneXCorporate
	PersonalizationFeatureOneXRUIM
	PersonalizationFeatureUnknown
	PersonalizationFeatureGWServiceProviderName
	PersonalizationFeatureGWSPAndEHPLMN
	PersonalizationFeatureGWICCID
	PersonalizationFeatureGWIMPI
	PersonalizationFeatureGWNetworkSubsetServiceProvider
	PersonalizationFeatureGWCarrier
)

type PersonalizationState

type PersonalizationState byte
const (
	PersonalizationStateUnknown PersonalizationState = iota
	PersonalizationStateInProgress
	PersonalizationStateReady
	PersonalizationStateCodeRequired
	PersonalizationStatePUKCodeRequired
	PersonalizationStatePermanentlyBlocked
)

type PhysicalCardState

type PhysicalCardState uint32
const (
	PhysicalCardStateUnknown PhysicalCardState = iota
	PhysicalCardStateAbsent
	PhysicalCardStatePresent
)

type PowerOnSIMRequest

type PowerOnSIMRequest struct {
	Slot                uint8
	IgnoreHotSwapSwitch bool
}

type QMIError

type QMIError uint16

QMIError represents QMI protocol errors as defined in libqmi These correspond to the "Error" field in QMI Result TLVs

const (
	QMIErrorNone                        QMIError = 0     /*< nick=None >*/
	QMIErrorMalformedMessage            QMIError = 1     /*< nick=MalformedMessage >*/
	QMIErrorNoMemory                    QMIError = 2     /*< nick=NoMemory >*/
	QMIErrorInternal                    QMIError = 3     /*< nick=Internal >*/
	QMIErrorAborted                     QMIError = 4     /*< nick=Aborted >*/
	QMIErrorClientIDsExhausted          QMIError = 5     /*< nick=ClientIdsExhausted >*/
	QMIErrorUnabortableTransaction      QMIError = 6     /*< nick=UnabortableTransaction >*/
	QMIErrorInvalidClientID             QMIError = 7     /*< nick=InvalidClientId >*/
	QMIErrorNoThresholdsProvided        QMIError = 8     /*< nick=NoThresholdsProvided >*/
	QMIErrorInvalidHandle               QMIError = 9     /*< nick=InvalidHandle >*/
	QMIErrorInvalidProfile              QMIError = 10    /*< nick=InvalidProfile >*/
	QMIErrorInvalidPINID                QMIError = 11    /*< nick=InvalidPINId >*/
	QMIErrorIncorrectPIN                QMIError = 12    /*< nick=IncorrectPin >*/
	QMIErrorNoNetworkFound              QMIError = 13    /*< nick=NoNetworkFound >*/
	QMIErrorCallFailed                  QMIError = 14    /*< nick=CallFailed >*/
	QMIErrorOutOfCall                   QMIError = 15    /*< nick=OutOfCall >*/
	QMIErrorNotProvisioned              QMIError = 16    /*< nick=NotProvisioned >*/
	QMIErrorMissingArgument             QMIError = 17    /*< nick=MissingArgument >*/
	QMIErrorArgumentTooLong             QMIError = 19    /*< nick=ArgumentTooLong >*/
	QMIErrorInvalidTransactionID        QMIError = 22    /*< nick=InvalidTransactionId >*/
	QMIErrorDeviceInUse                 QMIError = 23    /*< nick=DeviceInUse >*/
	QMIErrorNetworkUnsupported          QMIError = 24    /*< nick=NetworkUnsupported >*/
	QMIErrorDeviceUnsupported           QMIError = 25    /*< nick=DeviceUnsupported >*/
	QMIErrorNoEffect                    QMIError = 26    /*< nick=NoEffect >*/
	QMIErrorNoFreeProfile               QMIError = 27    /*< nick=NoFreeProfile >*/
	QMIErrorInvalidPDPType              QMIError = 28    /*< nick=InvalidPDPType >*/
	QMIErrorInvalidTechnologyPreference QMIError = 29    /*< nick=InvalidTechnologyPreference >*/
	QMIErrorInvalidProfileType          QMIError = 30    /*< nick=InvalidProfileType >*/
	QMIErrorInvalidServiceType          QMIError = 31    /*< nick=InvalidServiceType >*/
	QMIErrorInvalidRegisterAction       QMIError = 32    /*< nick=InvalidRegisterAction >*/
	QMIErrorInvalidPSAttachAction       QMIError = 33    /*< nick=InvalidPSAttachAction >*/
	QMIErrorAuthenticationFailed        QMIError = 34    /*< nick=AuthenticationFailed >*/
	QMIErrorPINBlocked                  QMIError = 35    /*< nick=PINBlocked >*/
	QMIErrorPINAlwaysBlocked            QMIError = 36    /*< nick=PINAlwaysBlocked >*/
	QMIErrorUIMUninitialized            QMIError = 37    /*< nick=UIMUninitialized >*/
	QMIErrorMaximumQoSRequestsInUse     QMIError = 38    /*< nick=MaximumQoSRequestsInUse >*/
	QMIErrorIncorrectFlowFilter         QMIError = 39    /*< nick=IncorrectFlowFilter >*/
	QMIErrorNetworkQoSUnaware           QMIError = 40    /*< nick=NetworkQoSUnaware >*/
	QMIErrorInvalidQoSID                QMIError = 41    /*< nick=InvalidQoSId >*/
	QMIErrorRequestedNumberUnsupported  QMIError = 42    /*< nick=RequestedNumberUnsupported >*/
	QMIErrorInterfaceNotFound           QMIError = 43    /*< nick=InterfaceNotFound >*/
	QMIErrorFlowSuspended               QMIError = 44    /*< nick=FlowSuspended >*/
	QMIErrorInvalidDataFormat           QMIError = 45    /*< nick=InvalidDataFormat >*/
	QMIErrorGeneralError                QMIError = 46    /*< nick=GeneralError >*/
	QMIErrorUnknownError                QMIError = 47    /*< nick=UnknownError >*/
	QMIErrorInvalidArgument             QMIError = 48    /*< nick=InvalidArgument >*/
	QMIErrorInvalidIndex                QMIError = 49    /*< nick=InvalidIndex >*/
	QMIErrorNoEntry                     QMIError = 50    /*< nick=NoEntry >*/
	QMIErrorDeviceStorageFull           QMIError = 51    /*< nick=DeviceStorageFull >*/
	QMIErrorDeviceNotReady              QMIError = 52    /*< nick=DeviceNotReady >*/
	QMIErrorNetworkNotReady             QMIError = 53    /*< nick=NetworkNotReady >*/
	QMIErrorWMSCauseCode                QMIError = 54    /*< nick=WMSCauseCode >*/
	QMIErrorWMSMessageNotSent           QMIError = 55    /*< nick=WMSMessageNotSent >*/
	QMIErrorWMSMessageDeliveryFailure   QMIError = 56    /*< nick=WMSMessageDeliveryFailure >*/
	QMIErrorWMSInvalidMessageID         QMIError = 57    /*< nick=WMSInvalidMessageId >*/
	QMIErrorWMSEncoding                 QMIError = 58    /*< nick=WMSEncoding >*/
	QMIErrorAuthenticationLock          QMIError = 59    /*< nick=AuthenticationLock >*/
	QMIErrorInvalidTransition           QMIError = 60    /*< nick=InvalidTransition >*/
	QMIErrorNotMcastInterface           QMIError = 61    /*< nick=NotMcastInterface >*/
	QMIErrorMaximumMcastRequestsInUse   QMIError = 62    /*< nick=MaximumMcastRequestsInUse >*/
	QMIErrorInvalidMcastHandle          QMIError = 63    /*< nick=InvalidMcastHandle >*/
	QMIErrorInvalidIPFamilyPreference   QMIError = 64    /*< nick=InvalidIPFamilyPreference >*/
	QMIErrorSessionInactive             QMIError = 65    /*< nick=SessionInactive >*/
	QMIErrorSessionInvalid              QMIError = 66    /*< nick=SessionInvalid >*/
	QMIErrorSessionOwnership            QMIError = 67    /*< nick=SessionOwnership >*/
	QMIErrorInsufficientResources       QMIError = 68    /*< nick=InsufficientResources >*/
	QMIErrorDisabled                    QMIError = 69    /*< nick=Disabled >*/
	QMIErrorInvalidOperation            QMIError = 70    /*< nick=InvalidOperation >*/
	QMIErrorInvalidQMICommand           QMIError = 71    /*< nick=InvalidQMICommand >*/
	QMIErrorWMSTPDUType                 QMIError = 72    /*< nick=WMSTPDUType >*/
	QMIErrorWMSSMSCAddress              QMIError = 73    /*< nick=WMSSMSCAddress >*/
	QMIErrorInformationUnavailable      QMIError = 74    /*< nick=InformationUnavailable >*/
	QMIErrorSegmentTooLong              QMIError = 75    /*< nick=SegmentTooLong >*/
	QMIErrorSegmentOrder                QMIError = 76    /*< nick=SegmentOrder >*/
	QMIErrorBundlingNotSupported        QMIError = 77    /*< nick=BundlingNotSupported >*/
	QMIErrorOperationPartialFailure     QMIError = 78    /*< nick=OperationPartialFailure >*/
	QMIErrorPolicyMismatch              QMIError = 79    /*< nick=PolicyMismatch >*/
	QMIErrorSIMFileNotFound             QMIError = 80    /*< nick=SIMFileNotFound >*/
	QMIErrorExtendedInternal            QMIError = 81    /*< nick=ExtendedInternal >*/
	QMIErrorAccessDenied                QMIError = 82    /*< nick=AccessDenied >*/
	QMIErrorHardwareRestricted          QMIError = 83    /*< nick=HardwareRestricted >*/
	QMIErrorACKNotSent                  QMIError = 84    /*< nick=ACKNotSent >*/
	QMIErrorInjectTimeout               QMIError = 85    /*< nick=InjectTimeout >*/
	QMIErrorIncompatibleState           QMIError = 90    /*< nick=IncompatibleState >*/
	QMIErrorFDNRestrict                 QMIError = 91    /*< nick=FDNRestrict >*/
	QMIErrorSUPSFailureCase             QMIError = 92    /*< nick=SUPSFailureCase >*/
	QMIErrorNoRadio                     QMIError = 93    /*< nick=NoRadio >*/
	QMIErrorNotSupported                QMIError = 94    /*< nick=NotSupported >*/
	QMIErrorNoSubscription              QMIError = 95    /*< nick=NoSubscription >*/
	QMIErrorCardCallControlFailed       QMIError = 96    /*< nick=CardCallControlFailed >*/
	QMIErrorNetworkAborted              QMIError = 97    /*< nick=NetworkAborted >*/
	QMIErrorMsgBlocked                  QMIError = 98    /*< nick=MsgBlocked >*/
	QMIErrorInvalidSessionType          QMIError = 100   /*< nick=InvalidSessionType >*/
	QMIErrorInvalidPbType               QMIError = 101   /*< nick=InvalidPbType >*/
	QMIErrorNoSIM                       QMIError = 102   /*< nick=NoSim >*/
	QMIErrorPbNotReady                  QMIError = 103   /*< nick=PbNotReady >*/
	QMIErrorPINRestriction              QMIError = 104   /*< nick=PINRestriction >*/
	QMIErrorPIN2Restriction             QMIError = 105   /*< nick=PIN1Restriction >*/
	QMIErrorPUKRestriction              QMIError = 106   /*< nick=PUKRestriction >*/
	QMIErrorPUK2Restriction             QMIError = 107   /*< nick=PUK2Restriction >*/
	QMIErrorPbAccessRestricted          QMIError = 108   /*< nick=PbAccessRestricted >*/
	QMIErrorPbDeleteInProgress          QMIError = 109   /*< nick=PbDeleteInProgress >*/
	QMIErrorPbTextTooLong               QMIError = 110   /*< nick=PbTextTooLong >*/
	QMIErrorPbNumberTooLong             QMIError = 111   /*< nick=PbNumberTooLong >*/
	QMIErrorPbHiddenKeyRestriction      QMIError = 112   /*< nick=PbHiddenKeyRestriction >*/
	QMIErrorPbNotAvailable              QMIError = 113   /*< nick=PbNotAvailable >*/
	QMIErrorDeviceMemoryError           QMIError = 114   /*< nick=DeviceMemoryError >*/
	QMIErrorNoPermission                QMIError = 115   /*< nick=NoPermission >*/
	QMIErrorTooSoon                     QMIError = 116   /*< nick=TooSoon >*/
	QMIErrorTimeNotAcquired             QMIError = 117   /*< nick=TimeNotAcquired >*/
	QMIErrorOperationInProgress         QMIError = 118   /*< nick=OperationInProgress >*/
	QMIErrorFWWriteFailed               QMIError = 388   /*< nick=FWWriteFailed >*/
	QMIErrorFWInfoReadFailed            QMIError = 389   /*< nick=FWInfoReadFailed >*/
	QMIErrorFWFileNotFound              QMIError = 390   /*< nick=FWFileNotFound >*/
	QMIErrorFWDirNotFound               QMIError = 391   /*< nick=FWDirNotFound >*/
	QMIErrorFWAlreadyActivated          QMIError = 392   /*< nick=FWAlreadyActivated >*/
	QMIErrorFWCannotGenericImage        QMIError = 393   /*< nick=FWCannotGenericImage >*/
	QMIErrorFWFileOpenFailed            QMIError = 400   /*< nick=FWFileOpenFailed >*/
	QMIErrorFWUpdateDiscontinuousFrame  QMIError = 401   /*< nick=FWUpdateDiscontinuousFrame >*/
	QMIErrorFWUpdateFailed              QMIError = 402   /*< nick=FWUpdateFailed >*/
	QMIErrorCATEventRegistrationFailed  QMIError = 61441 /*< nick=CatEventRegistrationFailed >*/
	QMIErrorCATInvalidTerminalResponse  QMIError = 61442 /*< nick=CatInvalidTerminalResponse >*/
	QMIErrorCATInvalidEnvelopeCommand   QMIError = 61443 /*< nick=CatInvalidEnvelopeCommand >*/
	QMIErrorCATEnvelopeCommandBusy      QMIError = 61444 /*< nick=CatEnvelopeCommandBusy >*/
	QMIErrorCATEnvelopeCommandFailed    QMIError = 61445 /*< nick=CatEnvelopeCommandFailed >*/
)

func (QMIError) Error

func (q QMIError) Error() string

type QMIFileType

type QMIFileType byte
const (
	QMIFileTypeTransparent QMIFileType = iota
	QMIFileTypeCyclic
	QMIFileTypeLinearFixed
	QMIFileTypeDedicated
	QMIFileTypeMaster
)

type QMIResult

type QMIResult uint16

QMIResult represents the result code in QMI responses.

const (
	QMIResultSuccess QMIResult = 0x0000 // Success
	QMIResultFailure QMIResult = 0x0001 // Failure
)

type QoSBindDataPortRequest

type QoSBindDataPortRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        QoSDataPortConfig
}

QoSBindDataPortRequest encodes Bind Data Port.

func (QoSBindDataPortRequest) Request

func (r QoSBindDataPortRequest) Request() (Request, error)

Request validates and converts a modern or legacy data-port binding.

type QoSBindSubscriptionRequest

type QoSBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  QoSSubscription
}

QoSBindSubscriptionRequest encodes Bind Subscription.

func (QoSBindSubscriptionRequest) Request

func (r QoSBindSubscriptionRequest) Request() (Request, error)

Request validates and converts the subscription binding.

type QoSDataPortConfig

type QoSDataPortConfig struct {
	Endpoint   *DataEndpoint
	MuxID      *uint8
	LegacyPort *WDSSIOPort
}

QoSDataPortConfig selects a modern endpoint/mux or one legacy SIO port.

type QoSFlowEvent

type QoSFlowEvent uint8

QoSFlowEvent describes why a flow-status indication was emitted.

const (
	QoSFlowEventActivated QoSFlowEvent = 1 + iota
	QoSFlowEventSuspended
	QoSFlowEventGone
	QoSFlowEventModifyAccepted
	QoSFlowEventModifyRejected
	QoSFlowEventInfoCodeUpdated
)

type QoSFlowStatus

type QoSFlowStatus uint8

QoSFlowStatus is the current state of a negotiated QoS flow.

const (
	QoSFlowStatusDefault QoSFlowStatus = iota
	QoSFlowStatusActivated
	QoSFlowStatusSuspended
	QoSFlowStatusGone
)

type QoSFlowStatusIndication

type QoSFlowStatusIndication struct {
	Update QoSFlowStatusUpdate
}

QoSFlowStatusIndication is the parsed per-flow status indication.

func (*QoSFlowStatusIndication) UnmarshalTLVs

func (r *QoSFlowStatusIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory status aggregate and optional reason.

type QoSFlowStatusUpdate

type QoSFlowStatusUpdate struct {
	ID          uint32
	Status      QoSFlowStatus
	Event       QoSFlowEvent
	Reason      uint8
	ReasonKnown bool
}

QoSFlowStatusUpdate is emitted for a flow owned by this QoS control point.

type QoSGetBindSubscriptionRequest

type QoSGetBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

QoSGetBindSubscriptionRequest encodes Get Bind Subscription.

func (QoSGetBindSubscriptionRequest) Request

Request converts the query into a QMI request.

type QoSGetBindSubscriptionResponse

type QoSGetBindSubscriptionResponse struct {
	Subscription      QoSSubscription
	SubscriptionKnown bool
}

QoSGetBindSubscriptionResponse is the parsed bound subscription.

func (*QoSGetBindSubscriptionResponse) UnmarshalTLVs

func (r *QoSGetBindSubscriptionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional bound subscription.

type QoSGetFlowStatusRequest

type QoSGetFlowStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	FlowID        uint32
}

QoSGetFlowStatusRequest encodes Get QoS Status.

func (QoSGetFlowStatusRequest) Request

func (r QoSGetFlowStatusRequest) Request() Request

Request converts the flow query into a QMI request.

type QoSGetFlowStatusResponse

type QoSGetFlowStatusResponse struct {
	Status QoSFlowStatus
}

QoSGetFlowStatusResponse is the parsed flow status response.

func (*QoSGetFlowStatusResponse) UnmarshalTLVs

func (r *QoSGetFlowStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory flow status.

type QoSGetNetworkStatusRequest

type QoSGetNetworkStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

QoSGetNetworkStatusRequest encodes Get QoS Network Status.

func (QoSGetNetworkStatusRequest) Request

func (r QoSGetNetworkStatusRequest) Request() Request

Request converts the query into a QMI request.

type QoSGetNetworkStatusResponse

type QoSGetNetworkStatusResponse struct {
	Supported bool
}

QoSGetNetworkStatusResponse is the parsed network QoS support status.

func (*QoSGetNetworkStatusResponse) UnmarshalTLVs

func (r *QoSGetNetworkStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory support flag.

type QoSResetRequest

type QoSResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

QoSResetRequest encodes QMI QoS Reset.

func (QoSResetRequest) Request

func (r QoSResetRequest) Request() Request

Request converts the reset into a QMI request.

type QoSSubscription

type QoSSubscription uint32

QoSSubscription identifies a modem subscription for the QoS service.

const (
	QoSSubscriptionPrimary QoSSubscription = 1 + iota
	QoSSubscriptionSecondary
	QoSSubscriptionTertiary
)

type RawFileAttributes

type RawFileAttributes struct {
	FileSize           uint16
	FileID             uint16
	FileType           QMIFileType
	RecordSize         uint16
	RecordCount        uint16
	ReadSecurity       UIMFileSecurity
	WriteSecurity      UIMFileSecurity
	IncreaseSecurity   UIMFileSecurity
	DeactivateSecurity UIMFileSecurity
	ActivateSecurity   UIMFileSecurity
	Raw                []byte
}

func (RawFileAttributes) MarshalBinary

func (r RawFileAttributes) MarshalBinary() ([]byte, error)

MarshalBinary encodes raw QMI UIM file attributes.

func (*RawFileAttributes) UnmarshalBinary

func (r *RawFileAttributes) UnmarshalBinary(data []byte) error

UnmarshalBinary decodes raw QMI UIM file attributes.

type RecordRead

type RecordRead struct {
	File       File
	Record     uint16
	Length     uint16
	LastRecord uint16
}

type RecordWrite

type RecordWrite struct {
	File   File
	Record uint16
	Data   []byte
}

type RefreshEvent

type RefreshEvent struct {
	Stage   RefreshStage
	Mode    RefreshMode
	Session Session
	AID     []byte
	Files   []RefreshFile
}

func (*RefreshEvent) UnmarshalTLVs

func (e *RefreshEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI UIM refresh event.

type RefreshFile

type RefreshFile struct {
	FileID uint16
	Path   []byte
}

type RefreshMode

type RefreshMode uint8
const (
	RefreshModeReset RefreshMode = iota
	RefreshModeInit
	RefreshModeInitFCN
	RefreshModeFCN
	RefreshModeInitFullFCN
	RefreshModeApplicationReset
	RefreshMode3GReset
)

type RefreshRegisterRequest

type RefreshRegisterRequest struct {
	Session     Session
	AID         []byte
	VoteForInit bool
	Files       []RefreshFile
}

type RefreshStage

type RefreshStage uint8
const (
	RefreshStageWaitForOK RefreshStage = iota
	RefreshStageStart
	RefreshStageEndWithSuccess
	RefreshStageEndWithFailure
)

type ReleaseClientIDRequest

type ReleaseClientIDRequest struct {
	ClientID      uint8
	TransactionID uint16
	ServiceType   ServiceType
}

func (ReleaseClientIDRequest) Request

func (r ReleaseClientIDRequest) Request() Request

type ReleaseClientIDResponse

type ReleaseClientIDResponse struct {
	ClientID uint8
}

func (*ReleaseClientIDResponse) UnmarshalTLVs

func (r *ReleaseClientIDResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

type Request

type Request struct {
	Service       ServiceType
	ClientID      uint8
	TransactionID uint16
	MessageID     MessageID
	Timeout       time.Duration
	TLVs          tlv.TLVs
}

type Response

type Response struct {
	Service       ServiceType
	ClientID      uint8
	TransactionID uint16
	MessageID     MessageID
	TLVs          tlv.TLVs
}

type SARGetRFStateRequest

type SARGetRFStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

SARGetRFStateRequest encodes SAR RF Get State.

func (SARGetRFStateRequest) Request

func (r SARGetRFStateRequest) Request() Request

Request converts the query into a QMI request.

type SARGetRFStateResponse

type SARGetRFStateResponse struct {
	State SARRFState
}

SARGetRFStateResponse contains the active RF exposure profile.

func (*SARGetRFStateResponse) UnmarshalTLVs

func (r *SARGetRFStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses SAR RF Get State response TLVs.

type SARRFState

type SARRFState uint32

SARRFState selects one modem RF exposure profile.

const (
	SARRFState0 SARRFState = iota
	SARRFState1
	SARRFState2
	SARRFState3
	SARRFState4
	SARRFState5
	SARRFState6
	SARRFState7
	SARRFState8
	SARRFState9
	SARRFState10
	SARRFState11
	SARRFState12
	SARRFState13
	SARRFState14
	SARRFState15
	SARRFState16
	SARRFState17
	SARRFState18
	SARRFState19
	SARRFState20
)

type SARSetRFStateRequest

type SARSetRFStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	State         SARRFState
}

SARSetRFStateRequest encodes SAR RF Set State.

func (SARSetRFStateRequest) Request

func (r SARSetRFStateRequest) Request() (Request, error)

Request validates and converts the RF state into a QMI request.

type SSCControlRequest

type SSCControlRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Data          []byte
	ReportType    *SSCReportType
}

SSCControlRequest sends an opaque request to Snapdragon Sensor Core.

func (SSCControlRequest) Request

func (r SSCControlRequest) Request() (Request, error)

Request validates and converts the control data into a QMI request.

type SSCControlResponse

type SSCControlResponse struct {
	ClientID      uint64
	ClientIDKnown bool
	Response      uint32
	ResponseKnown bool
}

SSCControlResponse contains identifiers returned for an SSC request.

func (*SSCControlResponse) UnmarshalTLVs

func (r *SSCControlResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses SSC Control response TLVs.

type SSCReport

type SSCReport struct {
	ClientID uint64
	Data     []byte
	Err      error
}

SSCReport is one opaque sensor-core report. Err reports malformed wire data.

func (*SSCReport) UnmarshalTLVs

func (r *SSCReport) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses an SSC report indication.

type SSCReportType

type SSCReportType uint8

SSCReportType selects the SSC indication size class.

const (
	SSCReportSmall SSCReportType = iota
	SSCReportLarge
)

type SendAPDURequest

type SendAPDURequest struct {
	Command []byte
}

func (SendAPDURequest) MarshalBinary

func (r SendAPDURequest) MarshalBinary() ([]byte, error)

func (*SendAPDURequest) UnmarshalBinary

func (r *SendAPDURequest) UnmarshalBinary(data []byte) error

type SendAPDUResponse

type SendAPDUResponse struct {
	Response []byte
}

func (*SendAPDUResponse) UnmarshalBinary

func (r *SendAPDUResponse) UnmarshalBinary(data []byte) error

type ServiceType

type ServiceType uint32

ServiceType represents QMI service types. QRTR uses a 32-bit service ID; QMUX transports accept only the legacy 8-bit subset.

const (
	ServiceControl ServiceType = 0x00        // Control service
	ServiceWDS     ServiceType = 0x01        // Wireless Data Service
	ServiceDMS     ServiceType = 0x02        // Device Management Service
	ServiceNAS     ServiceType = 0x03        // Network Access Service
	ServiceQoS     ServiceType = 0x04        // Quality of Service service
	ServiceWMS     ServiceType = 0x05        // Wireless Messaging Service
	ServicePDS     ServiceType = 0x06        // Position Determination Service
	ServiceAUTH    ServiceType = 0x07        // Authentication service
	ServiceEAP     ServiceType = ServiceAUTH // Deprecated: use ServiceAUTH.
	ServiceVoice   ServiceType = 0x09        // Voice service
	ServiceCAT2    ServiceType = 0x0A        // Card Application Toolkit service v2
	ServiceUIM     ServiceType = 0x0B        // UIM service
	ServiceSAR     ServiceType = 0x11        // Specific Absorption Rate service
	ServiceIMS     ServiceType = 0x12        // IMS Settings service
	ServiceIMSS    ServiceType = ServiceIMS  // Deprecated: use ServiceIMS.
	ServicePBM     ServiceType = 0x0C        // Phonebook Manager service
	ServiceLOC     ServiceType = 0x10        // Location service
	ServiceWDA     ServiceType = 0x1A        // Wireless Data Administrative service
	ServiceIMSP    ServiceType = 0x1F        // IMS Presence service
	ServicePDC     ServiceType = 0x24        // Persistent Device Configuration service
	ServiceDSD     ServiceType = 0x2A        // Data System Determination service
	ServiceDPM     ServiceType = 0x2F        // Data Port Mapper service
	ServiceIMSA    ServiceType = 0x21        // IMS Application service
	ServiceCAT     ServiceType = 0xE0        // Card Application Toolkit service v1
	ServiceOMA     ServiceType = 0xE2        // Open Mobile Alliance device management service
	ServiceSSC     ServiceType = 0x190       // Snapdragon Sensor Core service
	ServiceIMSDCM  ServiceType = 0x302       // IMS DCM service
)

type ServiceVersion

type ServiceVersion struct {
	Service ServiceType
	Major   uint16
	Minor   uint16
}

ServiceVersion identifies one QMI service version advertised by the device.

type ServiceVersionList

type ServiceVersionList []ServiceVersion

ServiceVersionList contains the QMI services advertised by the device.

func (*ServiceVersionList) UnmarshalTLVs

func (v *ServiceVersionList) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI control Get Version Info response.

type Session

type Session uint8
const (
	SessionPrimaryGWProvisioning Session = 0

	SessionNonProvisioningSlot1 Session = 4
	SessionNonProvisioningSlot2 Session = 5
	SessionCardSlot1            Session = 6
	SessionCardSlot2            Session = 7

	SessionNonProvisioningSlot3 Session = 16
	SessionNonProvisioningSlot4 Session = 17
	SessionNonProvisioningSlot5 Session = 18
	SessionCardSlot3            Session = 19
	SessionCardSlot4            Session = 20
	SessionCardSlot5            Session = 21
)

type Slot

type Slot struct {
	PhysicalCardStatus PhysicalCardState
	PhysicalSlotStatus SlotState
	LogicalSlot        uint8
	ICCID              []byte
	CardProtocol       CardProtocol
	ValidApplications  uint8
	ATR                []byte
	IsEUICC            bool
}

type SlotState

type SlotState uint32
const (
	SlotStateInactive SlotState = iota
	SlotStateActive
)

type SlotStatus

type SlotStatus struct {
	ActiveSlot uint8
	Slots      []Slot
}

func (*SlotStatus) UnmarshalTLVs

func (s *SlotStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a UIM slot-status response or indication.

type SupportedMessages

type SupportedMessages struct {
	// contains filtered or unexported fields
}

SupportedMessages is the QMI message-ID bit mask returned by a service.

func (SupportedMessages) Mask

func (s SupportedMessages) Mask() []byte

Mask returns a copy of the raw QMI message-ID bit mask.

func (SupportedMessages) Supports

func (s SupportedMessages) Supports(id MessageID) bool

Supports reports whether the service advertises id.

type TransparentRead

type TransparentRead struct {
	File        File
	Offset      uint16
	Length      uint16
	EncryptData bool
}

type TransparentWrite

type TransparentWrite struct {
	File   File
	Offset uint16
	Data   []byte
}

type Transport

type Transport interface {
	Do(ctx context.Context, req Request) (Response, error)
	Close() error
}

type UIMAPDUProcedureBytes

type UIMAPDUProcedureBytes uint8

UIMAPDUProcedureBytes controls whether intermediate procedure bytes are returned.

const (
	UIMAPDUReturnProcedureBytes UIMAPDUProcedureBytes = iota
	UIMAPDUSkipProcedureBytes
)

type UIMAPDURequest

type UIMAPDURequest struct {
	Channel        uint8
	Command        []byte
	ProcedureBytes *UIMAPDUProcedureBytes
}

UIMAPDURequest contains the channel, command, and optional procedure-byte policy.

type UIMConfiguration

type UIMConfiguration struct {
	AutomaticSelection             bool
	AutomaticSelectionKnown        bool
	PersonalizationStatus          []UIMPersonalizationStatus
	PersonalizationStatusKnown     bool
	HaltSubscription               bool
	HaltSubscriptionKnown          bool
	OtherSlotsPersonalization      [][]UIMPersonalizationStatus
	OtherSlotsPersonalizationKnown bool
}

UIMConfiguration contains common UIM provisioning and personalization settings. Known fields distinguish omitted response TLVs from false values.

func (*UIMConfiguration) UnmarshalTLVs

func (c *UIMConfiguration) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI UIM Get Configuration response TLVs.

type UIMConfigurationMask

type UIMConfigurationMask uint32

UIMConfigurationMask selects fields returned by UIMConfiguration. A zero mask omits the request TLV and asks the modem for all supported fields.

const (
	UIMConfigurationAutomaticSelection UIMConfigurationMask = 1 << iota
	UIMConfigurationPersonalizationStatus
	UIMConfigurationHaltSubscription
)

type UIMDepersonalizationOperation

type UIMDepersonalizationOperation uint8

UIMDepersonalizationOperation selects how a blocked personalization feature is changed.

const (
	UIMDepersonalizationDeactivate UIMDepersonalizationOperation = iota
	UIMDepersonalizationUnblock
)

type UIMDepersonalizationRequest

type UIMDepersonalizationRequest struct {
	Feature    UIMPersonalizationFeature
	Operation  UIMDepersonalizationOperation
	ControlKey string
}

UIMDepersonalizationRequest deactivates or unblocks one network-lock feature.

type UIMDepersonalizationResult

type UIMDepersonalizationResult struct {
	VerifyRetries  uint8
	UnblockRetries uint8
	RetriesKnown   bool
}

UIMDepersonalizationResult contains retry counters returned after an unsuccessful depersonalization attempt.

func (*UIMDepersonalizationResult) UnmarshalTLVs

func (r *UIMDepersonalizationResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes UIM depersonalization retry counters.

type UIMFileControlInformation

type UIMFileControlInformation uint8

UIMFileControlInformation selects the data returned by an application select.

const (
	UIMFileControlNoData UIMFileControlInformation = iota
	UIMFileControlFCP
	UIMFileControlFCI
	UIMFileControlFCIWithInterfaces
	UIMFileControlFMD
)

type UIMFileSecurity

type UIMFileSecurity struct {
	Logic      UIMSecurityAttributeLogic
	Attributes UIMSecurityAttribute
}

UIMFileSecurity contains one file-operation access rule.

func (UIMFileSecurity) MarshalBinary

func (s UIMFileSecurity) MarshalBinary() ([]byte, error)

func (*UIMFileSecurity) UnmarshalBinary

func (s *UIMFileSecurity) UnmarshalBinary(data []byte) error

type UIMOpenLogicalChannelConfig

type UIMOpenLogicalChannelConfig struct {
	AID                    []byte
	FileControlInformation *UIMFileControlInformation
}

UIMOpenLogicalChannelConfig selects an application and optional select response format.

type UIMPersonalizationFeature

type UIMPersonalizationFeature uint8

UIMPersonalizationFeature identifies a SIM or R-UIM network-lock category.

const (
	UIMPersonalizationGWNetwork UIMPersonalizationFeature = iota
	UIMPersonalizationGWNetworkSubset
	UIMPersonalizationGWServiceProvider
	UIMPersonalizationGWCorporate
	UIMPersonalizationGWUIM
	UIMPersonalization1XNetworkType1
	UIMPersonalization1XNetworkType2
	UIMPersonalization1XHRPD
	UIMPersonalization1XServiceProvider
	UIMPersonalization1XCorporate
	UIMPersonalization1XRUIM
	UIMPersonalizationGWServiceProviderName
	UIMPersonalizationGWSPEHPLMN
	UIMPersonalizationGWICCID
	UIMPersonalizationGWIMPI
	UIMPersonalizationGWNetworkSubsetServiceProvider
	UIMPersonalizationGWCarrier
)

type UIMPersonalizationStatus

type UIMPersonalizationStatus struct {
	Feature        UIMPersonalizationFeature
	VerifyRetries  uint8
	UnblockRetries uint8
}

UIMPersonalizationStatus contains remaining attempts for one active lock.

type UIMSecurityAttribute

type UIMSecurityAttribute uint16

UIMSecurityAttribute is a mask of credentials required for file access.

const (
	UIMSecurityPIN1 UIMSecurityAttribute = 1 << iota
	UIMSecurityPIN2
	UIMSecurityUPIN
	UIMSecurityADM
)

type UIMSecurityAttributeLogic

type UIMSecurityAttributeLogic uint8

UIMSecurityAttributeLogic describes how a file's access conditions combine.

const (
	UIMSecurityAlways UIMSecurityAttributeLogic = iota
	UIMSecurityNever
	UIMSecurityAnd
	UIMSecurityOr
	UIMSecuritySingle
)

type UIMTransparentReadResult

type UIMTransparentReadResult struct {
	Data           []byte
	Encrypted      bool
	EncryptedKnown bool
}

UIMTransparentReadResult contains transparent file bytes and encryption state.

type VoiceALS

type VoiceALS uint8

VoiceALS identifies the alternate-line-service line of a call.

const (
	VoiceALSLine1 VoiceALS = iota
	VoiceALSLine2
)

type VoiceActiveStatus

type VoiceActiveStatus uint8

VoiceActiveStatus reports whether a supplementary service is active.

const (
	VoiceStatusInactive VoiceActiveStatus = iota
	VoiceStatusActive
)

type VoiceAlphaEncoding

type VoiceAlphaEncoding uint8

VoiceAlphaEncoding identifies the coding scheme of a network alpha identifier.

const (
	VoiceAlphaEncodingGSM  VoiceAlphaEncoding = 0x01
	VoiceAlphaEncodingUCS2 VoiceAlphaEncoding = 0x02
)

type VoiceAlphaIdentifier

type VoiceAlphaIdentifier struct {
	Encoding VoiceAlphaEncoding
	Data     []byte
}

VoiceAlphaIdentifier contains network-provided display text.

func (VoiceAlphaIdentifier) MarshalBinary

func (a VoiceAlphaIdentifier) MarshalBinary() ([]byte, error)

func (*VoiceAlphaIdentifier) UnmarshalBinary

func (a *VoiceAlphaIdentifier) UnmarshalBinary(value []byte) error

type VoiceAnswerOptions

type VoiceAnswerOptions struct {
	CallType        *VoiceCallType
	AudioAttributes *VoiceCallAttribute
	VideoAttributes *VoiceCallAttribute
	Presentation    *VoiceIPPresentation
	Reject          bool
	RejectCause     *uint32
	SIPRejectCause  *uint16
	CodecProfile    *uint8
	RTTMode         *VoiceRTTMode
}

VoiceAnswerOptions controls optional fields of QMI Voice Answer Call.

type VoiceCLIR

type VoiceCLIR uint8

VoiceCLIR selects temporary calling-line identification restriction.

const (
	VoiceCLIRSuppression VoiceCLIR = 0x01
	VoiceCLIRInvocation  VoiceCLIR = 0x02
)

type VoiceCOLRPresentation

type VoiceCOLRPresentation uint32

VoiceCOLRPresentation identifies connected-line presentation restriction.

const (
	VoiceCOLRNotRestricted VoiceCOLRPresentation = iota
	VoiceCOLRRestricted
)

type VoiceCOLRStatus

type VoiceCOLRStatus struct {
	VoiceLineStatus
	Presentation      VoiceCOLRPresentation
	PresentationKnown bool
}

VoiceCOLRStatus contains COLR provisioning and presentation policy.

func (*VoiceCOLRStatus) UnmarshalTLVs

func (s *VoiceCOLRStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a connected-line restriction response.

type VoiceCall

type VoiceCall struct {
	ID                          uint8
	State                       VoiceCallState
	Type                        VoiceCallType
	Direction                   VoiceCallDirection
	Mode                        VoiceCallMode
	Multiparty                  bool
	ALS                         VoiceALS
	Number                      string
	NumberKnown                 bool
	Presentation                VoicePresentation
	PresentationKnown           bool
	CallerName                  string
	CallerNameKnown             bool
	CallerNamePresentation      VoicePresentation
	CallerNamePresentationKnown bool
	CallerNameCodingScheme      uint8
	CallerNameCodingSchemeKnown bool
	Privacy                     VoicePrivacy
	PrivacyKnown                bool
	EndReason                   VoiceCallEndReason
	EndReasonKnown              bool
	EndReasonText               []uint16
	SIPURI                      string
	SIPURIKnown                 bool
	SIPErrorCode                uint16
	SIPErrorCodeKnown           bool
	AudioAttributes             VoiceCallAttribute
	AudioAttributesKnown        bool
	VideoAttributes             VoiceCallAttribute
	VideoAttributesKnown        bool
	RTTMode                     VoiceRTTMode
	RTTModeKnown                bool
	Secure                      bool
	SecureKnown                 bool
	SRVCC                       bool
	SRVCCKnown                  bool
}

VoiceCall contains the stable, commonly used fields from QMI Voice call information and all-call-status messages.

func (*VoiceCall) UnmarshalTLVs

func (c *VoiceCall) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Call Info response.

type VoiceCallAttribute

type VoiceCallAttribute uint64

VoiceCallAttribute is a transmit/receive media-direction mask.

const (
	VoiceCallAttributeTX VoiceCallAttribute = 1 << iota
	VoiceCallAttributeRX
)

type VoiceCallBarringStatus

type VoiceCallBarringStatus struct {
	VoiceSupplementaryResult
	ServiceClass         uint8
	ServiceClassKnown    bool
	ExtendedServiceClass VoiceServiceClass
	ExtendedClassKnown   bool
}

VoiceCallBarringStatus describes call-barring service classes and failures.

func (*VoiceCallBarringStatus) UnmarshalTLVs

func (s *VoiceCallBarringStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a call-barring response.

type VoiceCallControlResultType

type VoiceCallControlResultType uint8

VoiceCallControlResultType identifies how SIM call control modified a USSD request.

const (
	VoiceCallControlResultVoice VoiceCallControlResultType = iota
	VoiceCallControlResultSupplementaryService
	VoiceCallControlResultUSSD
)

type VoiceCallDirection

type VoiceCallDirection uint8

VoiceCallDirection identifies a mobile-originated or mobile-terminated call.

const (
	VoiceCallDirectionMO VoiceCallDirection = 0x01
	VoiceCallDirectionMT VoiceCallDirection = 0x02
)

type VoiceCallEndReason

type VoiceCallEndReason uint16

VoiceCallEndReason is the modem-provided reason a call ended.

type VoiceCallForwardingInfo

type VoiceCallForwardingInfo struct {
	Status       VoiceActiveStatus
	ServiceClass uint8
	Number       string
	NoReplyTimer uint8
}

VoiceCallForwardingInfo contains one call-forwarding record returned by the network in a supplementary-service indication.

type VoiceCallForwardingRule

type VoiceCallForwardingRule struct {
	Active               bool
	ServiceClass         VoiceServiceClass
	ExtendedServiceClass bool
	Number               string
	Presentation         VoicePresentation
	Screening            uint8
	NumberType           uint8
	NumberPlan           uint8
	NoReplyTimer         uint8
}

VoiceCallForwardingRule contains one network call-forwarding rule.

type VoiceCallForwardingRules

type VoiceCallForwardingRules []VoiceCallForwardingRule

VoiceCallForwardingRules is a network-provided call-forwarding rule list.

func (*VoiceCallForwardingRules) UnmarshalTLVs

func (r *VoiceCallForwardingRules) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses legacy or extended call-forwarding rule TLVs.

type VoiceCallForwardingStatus

type VoiceCallForwardingStatus struct {
	VoiceSupplementaryResult
	Rules VoiceCallForwardingRules
}

VoiceCallForwardingStatus contains call-forwarding rules and common errors.

func (*VoiceCallForwardingStatus) UnmarshalTLVs

func (s *VoiceCallForwardingStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a call-forwarding response.

type VoiceCallMode

type VoiceCallMode uint8

VoiceCallMode is the access technology carrying a voice call.

const (
	VoiceCallModeNoService VoiceCallMode = iota
	VoiceCallModeCDMA
	VoiceCallModeGSM
	VoiceCallModeUMTS
	VoiceCallModeLTE
	VoiceCallModeTDSCDMA
	VoiceCallModeUnknown
	VoiceCallModeWLAN
	VoiceCallModeNR5G
)

type VoiceCallState

type VoiceCallState uint8

VoiceCallState is the current modem state of a voice call.

const (
	VoiceCallStateOriginating   VoiceCallState = 0x01
	VoiceCallStateIncoming      VoiceCallState = 0x02
	VoiceCallStateConversation  VoiceCallState = 0x03
	VoiceCallStateCCInProgress  VoiceCallState = 0x04
	VoiceCallStateAlerting      VoiceCallState = 0x05
	VoiceCallStateHold          VoiceCallState = 0x06
	VoiceCallStateWaiting       VoiceCallState = 0x07
	VoiceCallStateDisconnecting VoiceCallState = 0x08
	VoiceCallStateEnd           VoiceCallState = 0x09
	VoiceCallStateSetup         VoiceCallState = 0x0A
	VoiceCallStatePreAlerting   VoiceCallState = 0x0B
)

type VoiceCallType

type VoiceCallType uint8

VoiceCallType identifies the media and emergency class of a call.

const (
	VoiceCallTypeVoice            VoiceCallType = 0x00
	VoiceCallTypeVoiceForced      VoiceCallType = 0x01
	VoiceCallTypeVoiceIP          VoiceCallType = 0x02
	VoiceCallTypeVideo            VoiceCallType = 0x03
	VoiceCallTypeVideoShare       VoiceCallType = 0x04
	VoiceCallTypeTest             VoiceCallType = 0x05
	VoiceCallTypeOTAPA            VoiceCallType = 0x06
	VoiceCallTypeStandardOTASP    VoiceCallType = 0x07
	VoiceCallTypeNonstandardOTASP VoiceCallType = 0x08
	VoiceCallTypeEmergency        VoiceCallType = 0x09
	VoiceCallTypeSupplementary    VoiceCallType = 0x0A
	VoiceCallTypeEmergencyIP      VoiceCallType = 0x0B
	VoiceCallTypeECall            VoiceCallType = 0x0C
	VoiceCallTypeEmergencyVideo   VoiceCallType = 0x0D
)

type VoiceCallWaitingStatus

type VoiceCallWaitingStatus struct {
	VoiceSupplementaryResult
	ServiceClass         uint8
	ServiceClassKnown    bool
	ExtendedServiceClass VoiceServiceClass
	ExtendedClassKnown   bool
}

VoiceCallWaitingStatus describes call-waiting provisioning and classes.

func (*VoiceCallWaitingStatus) UnmarshalTLVs

func (s *VoiceCallWaitingStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a call-waiting response.

type VoiceCalls

type VoiceCalls []VoiceCall

VoiceCalls is a QMI Voice call table.

func (*VoiceCalls) UnmarshalTLVs

func (c *VoiceCalls) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get All Call Info response.

type VoiceConfig

type VoiceConfig struct {
	AutoAnswer       bool
	AutoAnswerKnown  bool
	TTYMode          VoiceTTYMode
	TTYModeKnown     bool
	Privacy          VoicePrivacy
	PrivacyKnown     bool
	VoiceDomain      VoiceDomainPreference
	VoiceDomainKnown bool
	UITTYMode        VoiceTTYMode
	UITTYModeKnown   bool
}

VoiceConfig contains the commonly useful QMI Voice configuration values. Known fields distinguish an unsupported or omitted value from its zero value.

func (*VoiceConfig) UnmarshalTLVs

func (c *VoiceConfig) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the common QMI Voice configuration fields.

type VoiceConfigUpdate

type VoiceConfigUpdate struct {
	AutoAnswer  *bool
	TTYMode     *VoiceTTYMode
	VoiceDomain *VoiceDomainPreference
	UITTYMode   *VoiceTTYMode
}

VoiceConfigUpdate selects common QMI Voice configuration fields to change. Nil fields are omitted so callers can update one setting without replacing unrelated modem state.

type VoiceDTMFEvent

type VoiceDTMFEvent struct {
	CallID         uint8
	Type           VoiceDTMFEventType
	Digits         string
	OnLength       VoiceDTMFOnLength
	OnLengthKnown  bool
	OffLength      VoiceDTMFOffLength
	OffLengthKnown bool
	Volume         uint16
	VolumeKnown    bool
}

VoiceDTMFEvent contains one QMI Voice DTMF indication.

func (*VoiceDTMFEvent) UnmarshalTLVs

func (e *VoiceDTMFEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI Voice DTMF indication TLVs.

type VoiceDTMFEventType

type VoiceDTMFEventType uint8

VoiceDTMFEventType identifies a received or transmitted DTMF event.

const (
	VoiceDTMFEventReverseBurst    VoiceDTMFEventType = 0x00
	VoiceDTMFEventReverseStart    VoiceDTMFEventType = 0x01
	VoiceDTMFEventReverseStop     VoiceDTMFEventType = 0x03
	VoiceDTMFEventForwardBurst    VoiceDTMFEventType = 0x05
	VoiceDTMFEventForwardStart    VoiceDTMFEventType = 0x06
	VoiceDTMFEventForwardStop     VoiceDTMFEventType = 0x07
	VoiceDTMFEventIPIncomingStart VoiceDTMFEventType = 0x08
	VoiceDTMFEventIPIncomingStop  VoiceDTMFEventType = 0x09
)

type VoiceDTMFLengths

type VoiceDTMFLengths struct {
	On  VoiceDTMFOnLength
	Off VoiceDTMFOffLength
}

VoiceDTMFLengths configures a CDMA burst-DTMF sequence.

type VoiceDTMFOffLength

type VoiceDTMFOffLength uint8

VoiceDTMFOffLength selects a CDMA burst-DTMF interdigit interval.

const (
	VoiceDTMFOff60ms VoiceDTMFOffLength = iota
	VoiceDTMFOff100ms
	VoiceDTMFOff150ms
	VoiceDTMFOff200ms
)

type VoiceDTMFOnLength

type VoiceDTMFOnLength uint8

VoiceDTMFOnLength selects a CDMA burst-DTMF pulse width.

const (
	VoiceDTMFOn95ms VoiceDTMFOnLength = iota
	VoiceDTMFOn150ms
	VoiceDTMFOn200ms
	VoiceDTMFOn250ms
	VoiceDTMFOn300ms
	VoiceDTMFOn350ms
	VoiceDTMFOnSMS
)

type VoiceDialOptions

type VoiceDialOptions struct {
	CallType          *VoiceCallType
	CLIR              *VoiceCLIR
	EmergencyCategory *uint8
	Service           *VoiceDialService
	AudioAttributes   *VoiceCallAttribute
	VideoAttributes   *VoiceCallAttribute
	Presentation      *VoiceIPPresentation
	CallPull          *bool
	CodecProfile      *uint8
	Secure            *bool
	RTTMode           *VoiceRTTMode
	OriginationNumber string
	Secondary         *bool
}

VoiceDialOptions controls optional fields of QMI Voice Dial Call.

type VoiceDialService

type VoiceDialService uint32

VoiceDialService selects the radio domain used to originate a call.

const (
	VoiceDialServiceAutomatic       VoiceDialService = 0x01
	VoiceDialServiceGSM             VoiceDialService = 0x02
	VoiceDialServiceWCDMA           VoiceDialService = 0x03
	VoiceDialServiceCDMAAutomatic   VoiceDialService = 0x04
	VoiceDialServiceGSMWCDMA        VoiceDialService = 0x05
	VoiceDialServiceLTE             VoiceDialService = 0x06
	VoiceDialServiceTDSCDMA         VoiceDialService = 0x07
	VoiceDialServiceGSMWCDMATDSCDMA VoiceDialService = 0x08
	VoiceDialServiceCSOnly          VoiceDialService = 0x09
	VoiceDialServicePSOnly          VoiceDialService = 0x0A
	VoiceDialServiceNR5G            VoiceDialService = 0x0B
)

type VoiceDomainPreference

type VoiceDomainPreference uint8

VoiceDomainPreference selects circuit-switched or packet-switched voice.

const (
	VoiceDomainCSOnly VoiceDomainPreference = iota
	VoiceDomainPSOnly
	VoiceDomainCSPreferred
	VoiceDomainPSPreferred
)

type VoiceECTCallState

type VoiceECTCallState uint8

VoiceECTCallState describes the remote call involved in an explicit transfer.

const (
	VoiceECTCallNone VoiceECTCallState = iota
	VoiceECTCallAlerting
	VoiceECTCallActive
)

type VoiceECTNumber

type VoiceECTNumber struct {
	State        VoiceECTCallState
	Presentation VoicePresentation
	Number       string
}

VoiceECTNumber identifies the remote party in an explicit call transfer.

type VoiceFlashRequest

type VoiceFlashRequest struct {
	CallID  uint8
	Payload string
	Type    *VoiceFlashType
}

VoiceFlashRequest contains the call and optional flash payload.

type VoiceFlashType

type VoiceFlashType uint8

VoiceFlashType identifies a 3GPP2 flash operation.

const (
	VoiceFlashSimple VoiceFlashType = iota
	VoiceFlashActivateAnswerHold
	VoiceFlashDeactivateAnswerHold
)

type VoiceHandover

type VoiceHandover struct {
	State     VoiceHandoverState
	Type      VoiceHandoverType
	TypeKnown bool
}

VoiceHandover contains one handover state update.

func (*VoiceHandover) UnmarshalTLVs

func (h *VoiceHandover) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a handover indication.

type VoiceHandoverState

type VoiceHandoverState uint32

VoiceHandoverState identifies progress of a voice handover.

const (
	VoiceHandoverStart VoiceHandoverState = 0x01 + iota
	VoiceHandoverFail
	VoiceHandoverComplete
	VoiceHandoverCancel
)

type VoiceHandoverType

type VoiceHandoverType uint32

VoiceHandoverType identifies source and target radio technologies.

const (
	VoiceHandoverGSMToGSM VoiceHandoverType = 0x01 + iota
	VoiceHandoverGSMToWCDMA
	VoiceHandoverWCDMAToWCDMA
	VoiceHandoverWCDMAToGSM
	VoiceHandoverSRVCCLTEToGSM
	VoiceHandoverSRVCCLTEToWCDMA
	VoiceHandoverDRVCCWLANToCDMA
	VoiceHandoverDRVCCWLANToGSMWCDMA
)

type VoiceIPPresentation

type VoiceIPPresentation uint32

VoiceIPPresentation controls number presentation for an IP call.

const (
	VoiceIPPresentationAllowed VoiceIPPresentation = iota
	VoiceIPPresentationRestricted
)

type VoiceIndicationConfig

type VoiceIndicationConfig struct {
	CallEvents                      *bool
	DTMFEvents                      *bool
	USSDEvents                      *bool
	SupplementaryNotificationEvents *bool
	SupplementaryResultEvents       *bool
	ModificationEvents              *bool
	HandoverEvents                  *bool
	SpeechEvents                    *bool
	PrivacyEvents                   *bool
	TTYEvents                       *bool
}

VoiceIndicationConfig updates selected QMI Voice indication registrations. Nil fields are omitted so one caller does not overwrite unrelated settings.

type VoiceLineStatus

type VoiceLineStatus struct {
	VoiceSupplementaryResult
}

VoiceLineStatus describes provisioning for a line-identification service.

func (*VoiceLineStatus) UnmarshalTLVs

func (s *VoiceLineStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a line-identification response.

type VoiceManageOperation

type VoiceManageOperation uint8

VoiceManageOperation identifies an in-call supplementary operation.

const (
	VoiceManageReleaseHeldOrWaiting             VoiceManageOperation = 0x01
	VoiceManageReleaseActiveAcceptHeldOrWaiting VoiceManageOperation = 0x02
	VoiceManageHoldActiveAcceptWaitingOrHeld    VoiceManageOperation = 0x03
	VoiceManageHoldAllExceptSpecified           VoiceManageOperation = 0x04
	VoiceManageConference                       VoiceManageOperation = 0x05
	VoiceManageExplicitTransfer                 VoiceManageOperation = 0x06
	VoiceManageCCBSActivation                   VoiceManageOperation = 0x07
	VoiceManageEndAll                           VoiceManageOperation = 0x08
	VoiceManageReleaseSpecified                 VoiceManageOperation = 0x09
	VoiceManageLocalHold                        VoiceManageOperation = 0x0A
	VoiceManageLocalUnhold                      VoiceManageOperation = 0x0B
)

type VoiceManageRequest

type VoiceManageRequest struct {
	Operation   VoiceManageOperation
	CallID      *uint8
	RejectCause *uint32
}

VoiceManageRequest performs one in-call supplementary operation.

type VoiceNetworkMode

type VoiceNetworkMode uint32

VoiceNetworkMode identifies the access technology used for a voice codec.

const (
	VoiceNetworkModeNone VoiceNetworkMode = iota
	VoiceNetworkModeGSM
	VoiceNetworkModeWCDMA
	VoiceNetworkModeCDMA
	VoiceNetworkModeLTE
	VoiceNetworkModeTDSCDMA
	VoiceNetworkModeWLAN
	VoiceNetworkModeNR5G
)

type VoicePresentation

type VoicePresentation uint8

VoicePresentation describes whether the remote party number may be shown.

const (
	VoicePresentationAllowed     VoicePresentation = 0x00
	VoicePresentationRestricted  VoicePresentation = 0x01
	VoicePresentationUnavailable VoicePresentation = 0x02
	VoicePresentationPayphone    VoicePresentation = 0x04
)

type VoicePrivacy

type VoicePrivacy uint8

VoicePrivacy selects the 3GPP2 voice privacy level.

const (
	VoicePrivacyStandard VoicePrivacy = iota
	VoicePrivacyEnhanced
)

type VoicePrivacyInfo

type VoicePrivacyInfo struct {
	CallID  uint8
	Privacy VoicePrivacy
}

VoicePrivacyInfo contains the privacy state for one call.

func (*VoicePrivacyInfo) UnmarshalTLVs

func (i *VoicePrivacyInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a call-privacy indication.

type VoiceProvisionStatus

type VoiceProvisionStatus uint8

VoiceProvisionStatus reports how a supplementary service is provisioned.

const (
	VoiceNotProvisioned VoiceProvisionStatus = iota
	VoiceProvisionedPermanently
	VoiceProvisionPresentationRestricted
	VoiceProvisionPresentationAllowed
)

type VoiceRTTMode

type VoiceRTTMode uint32

VoiceRTTMode selects real-time text for an IP call.

const (
	VoiceRTTDisabled VoiceRTTMode = iota
	VoiceRTTFull
)

type VoiceServiceClass

type VoiceServiceClass uint32

VoiceServiceClass is the extended supplementary-service class bitmask.

const (
	VoiceServiceClassVoice VoiceServiceClass = 0x0001
	VoiceServiceClassData  VoiceServiceClass = 0x0002
	VoiceServiceClassFax   VoiceServiceClass = 0x0004
	VoiceServiceClassSMS   VoiceServiceClass = 0x0008
)

type VoiceSetSupplementaryRequest

type VoiceSetSupplementaryRequest struct {
	Action               VoiceSupplementaryAction
	Reason               VoiceSupplementaryReason
	ServiceClass         *uint8
	ExtendedServiceClass *VoiceServiceClass
	Password             string
	Number               string
	NoReplyTimer         *uint8
}

VoiceSetSupplementaryRequest changes one network supplementary service.

type VoiceSpeechCodec

type VoiceSpeechCodec uint32

VoiceSpeechCodec identifies the codec selected for a call.

const (
	VoiceSpeechCodecNone VoiceSpeechCodec = iota
	VoiceSpeechCodecQCELP13K
	VoiceSpeechCodecEVRC
	VoiceSpeechCodecEVRCB
	VoiceSpeechCodecEVRCWB
	VoiceSpeechCodecEVRCNW
	VoiceSpeechCodecAMRNB
	VoiceSpeechCodecAMRWB
	VoiceSpeechCodecGSMEFR
	VoiceSpeechCodecGSMFR
	VoiceSpeechCodecGSMHR
	VoiceSpeechCodecG711U
	VoiceSpeechCodecG723
	VoiceSpeechCodecG711A
	VoiceSpeechCodecG722
	VoiceSpeechCodecG711AB
	VoiceSpeechCodecG729
	VoiceSpeechCodecEVSNB
	VoiceSpeechCodecEVSWB
	VoiceSpeechCodecEVSSWB
	VoiceSpeechCodecEVSFB
)

type VoiceSpeechCodecInfo

type VoiceSpeechCodecInfo struct {
	NetworkMode       VoiceNetworkMode
	NetworkModeKnown  bool
	Codec             VoiceSpeechCodec
	CodecKnown        bool
	SamplingRate      uint32
	SamplingRateKnown bool
	CallID            uint8
	CallIDKnown       bool
}

VoiceSpeechCodecInfo contains optional codec negotiation details.

func (*VoiceSpeechCodecInfo) UnmarshalTLVs

func (i *VoiceSpeechCodecInfo) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a speech-codec indication.

type VoiceSubscription

type VoiceSubscription uint8

VoiceSubscription identifies the subscription bound to a Voice client.

const (
	VoiceSubscriptionPrimary VoiceSubscription = iota
	VoiceSubscriptionSecondary
	VoiceSubscriptionTertiary
)

type VoiceSupplementaryAction

type VoiceSupplementaryAction uint8

VoiceSupplementaryAction identifies a network supplementary-service action.

const (
	VoiceSupplementaryActivate   VoiceSupplementaryAction = 0x01
	VoiceSupplementaryDeactivate VoiceSupplementaryAction = 0x02
	VoiceSupplementaryRegister   VoiceSupplementaryAction = 0x03
	VoiceSupplementaryErase      VoiceSupplementaryAction = 0x04
)

type VoiceSupplementaryCode

type VoiceSupplementaryCode uint32

VoiceSupplementaryCode identifies the forwarding reason carried by a notification.

const (
	VoiceSupplementaryCodeForwardUnconditional VoiceSupplementaryCode = 0x01
	VoiceSupplementaryCodeForwardBusy          VoiceSupplementaryCode = 0x02
	VoiceSupplementaryCodeForwardNoReply       VoiceSupplementaryCode = 0x03
	VoiceSupplementaryCodeForwardUnreachable   VoiceSupplementaryCode = 0x04
	VoiceSupplementaryCodeForwardAll           VoiceSupplementaryCode = 0x05
	VoiceSupplementaryCodeForwardConditional   VoiceSupplementaryCode = 0x06
)

type VoiceSupplementaryDataSource

type VoiceSupplementaryDataSource uint8

VoiceSupplementaryDataSource identifies whether supplementary data came from the device or the network.

const (
	VoiceSupplementaryDataSourceDevice VoiceSupplementaryDataSource = iota
	VoiceSupplementaryDataSourceNetwork
)

type VoiceSupplementaryNotification

type VoiceSupplementaryNotification struct {
	CallID              uint8
	Type                VoiceSupplementaryNotificationType
	CUGIndex            uint16
	CUGIndexKnown       bool
	ECTNumber           VoiceECTNumber
	ECTNumberKnown      bool
	Code                VoiceSupplementaryCode
	CodeKnown           bool
	ForwardHistory      []uint16
	ForwardHistoryKnown bool
	MediaDirection      VoiceCallAttribute
	MediaDirectionKnown bool
}

VoiceSupplementaryNotification reports a 3GPP supplementary-service event.

func (*VoiceSupplementaryNotification) UnmarshalTLVs

func (e *VoiceSupplementaryNotification) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a supplementary-service notification.

type VoiceSupplementaryNotificationType

type VoiceSupplementaryNotificationType uint8

VoiceSupplementaryNotificationType identifies a 3GPP call notification.

const (
	VoiceSupplementaryOutgoingForwarded          VoiceSupplementaryNotificationType = 0x01
	VoiceSupplementaryOutgoingWaiting            VoiceSupplementaryNotificationType = 0x02
	VoiceSupplementaryOutgoingCUG                VoiceSupplementaryNotificationType = 0x03
	VoiceSupplementaryOutgoingBarred             VoiceSupplementaryNotificationType = 0x04
	VoiceSupplementaryOutgoingDeflected          VoiceSupplementaryNotificationType = 0x05
	VoiceSupplementaryIncomingCUG                VoiceSupplementaryNotificationType = 0x06
	VoiceSupplementaryIncomingBarred             VoiceSupplementaryNotificationType = 0x07
	VoiceSupplementaryIncomingForwarded          VoiceSupplementaryNotificationType = 0x08
	VoiceSupplementaryIncomingDeflected          VoiceSupplementaryNotificationType = 0x09
	VoiceSupplementaryIncomingIsForwarded        VoiceSupplementaryNotificationType = 0x0A
	VoiceSupplementaryUnconditionalForwardActive VoiceSupplementaryNotificationType = 0x0B
	VoiceSupplementaryConditionalForwardActive   VoiceSupplementaryNotificationType = 0x0C
	VoiceSupplementaryCLIRSuppressionRejected    VoiceSupplementaryNotificationType = 0x0D
	VoiceSupplementaryCallHeld                   VoiceSupplementaryNotificationType = 0x0E
	VoiceSupplementaryCallRetrieved              VoiceSupplementaryNotificationType = 0x0F
	VoiceSupplementaryCallMultiparty             VoiceSupplementaryNotificationType = 0x10
	VoiceSupplementaryIncomingECT                VoiceSupplementaryNotificationType = 0x11
	VoiceSupplementaryOutgoingProgressQueued     VoiceSupplementaryNotificationType = 0x12
)

type VoiceSupplementaryQuery

type VoiceSupplementaryQuery struct {
	ServiceClass         *uint8
	ExtendedServiceClass *VoiceServiceClass
}

VoiceSupplementaryQuery selects a legacy or extended service class.

type VoiceSupplementaryReason

type VoiceSupplementaryReason uint8

VoiceSupplementaryReason identifies a forwarding, barring, or line service.

const (
	VoiceReasonForwardUnconditional VoiceSupplementaryReason = 0x01
	VoiceReasonForwardBusy          VoiceSupplementaryReason = 0x02
	VoiceReasonForwardNoReply       VoiceSupplementaryReason = 0x03
	VoiceReasonForwardUnreachable   VoiceSupplementaryReason = 0x04
	VoiceReasonForwardAll           VoiceSupplementaryReason = 0x05
	VoiceReasonForwardConditional   VoiceSupplementaryReason = 0x06
	VoiceReasonBarAllOutgoing       VoiceSupplementaryReason = 0x07
	VoiceReasonBarOutgoingIntl      VoiceSupplementaryReason = 0x08
	VoiceReasonBarOutgoingIntlHome  VoiceSupplementaryReason = 0x09
	VoiceReasonBarAllIncoming       VoiceSupplementaryReason = 0x0A
	VoiceReasonBarIncomingRoaming   VoiceSupplementaryReason = 0x0B
	VoiceReasonBarAll               VoiceSupplementaryReason = 0x0C
	VoiceReasonBarAllOutgoingGroup  VoiceSupplementaryReason = 0x0D
	VoiceReasonBarAllIncomingGroup  VoiceSupplementaryReason = 0x0E
	VoiceReasonCallWaiting          VoiceSupplementaryReason = 0x0F
	VoiceReasonCLIP                 VoiceSupplementaryReason = 0x10
	VoiceReasonCLIR                 VoiceSupplementaryReason = 0x11
	VoiceReasonCOLP                 VoiceSupplementaryReason = 0x12
	VoiceReasonCOLR                 VoiceSupplementaryReason = 0x13
	VoiceReasonCNAP                 VoiceSupplementaryReason = 0x14
	VoiceReasonBarIncomingNumber    VoiceSupplementaryReason = 0x15
	VoiceReasonBarIncomingAnonymous VoiceSupplementaryReason = 0x16
)

type VoiceSupplementaryResult

type VoiceSupplementaryResult struct {
	FailureCause      uint16
	FailureCauseKnown bool
	Active            VoiceActiveStatus
	Provision         VoiceProvisionStatus
	StatusKnown       bool
	RetryDuration     uint16
	RetryKnown        bool
	SIPErrorCode      uint16
	SIPErrorCodeKnown bool
}

VoiceSupplementaryResult contains common network response details.

type VoiceSupplementaryResultEvent

type VoiceSupplementaryResultEvent struct {
	Service               VoiceSupplementaryService
	ModifiedByCallControl bool
	ServiceClass          uint8
	ServiceClassKnown     bool
	Reason                VoiceSupplementaryReason
	ReasonKnown           bool
	Number                string
	NumberKnown           bool
	NoReplyTimer          uint8
	NoReplyTimerKnown     bool
	USSD                  VoiceUSSDData
	USSDKnown             bool
	CallID                uint8
	CallIDKnown           bool
	Alpha                 VoiceAlphaIdentifier
	AlphaKnown            bool
	Password              string
	PasswordKnown         bool
	NewPassword           string
	NewPasswordAgain      string
	NewPasswordKnown      bool
	DataSource            VoiceSupplementaryDataSource
	DataSourceKnown       bool
	FailureCause          uint16
	FailureCauseKnown     bool
	CallForwarding        []VoiceCallForwardingInfo
	CallForwardingKnown   bool
	CLIR                  VoiceSupplementaryStatus
	CLIP                  VoiceSupplementaryStatus
	COLP                  VoiceSupplementaryStatus
	COLR                  VoiceSupplementaryStatus
	CNAP                  VoiceSupplementaryStatus
	USSUTF16              []uint16
	USSUTF16Known         bool
	ExtendedServiceClass  VoiceServiceClass
	ExtendedClassKnown    bool
	BarredNumbers         []string
	BarredNumbersKnown    bool
}

VoiceSupplementaryResultEvent contains one asynchronous supplementary service request or network response.

func (*VoiceSupplementaryResultEvent) UnmarshalTLVs

func (e *VoiceSupplementaryResultEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a supplementary-service result indication.

type VoiceSupplementaryService

type VoiceSupplementaryService uint8

VoiceSupplementaryService identifies a modem-originated supplementary request or a network response.

const (
	VoiceSupplementaryServiceActivate VoiceSupplementaryService = 0x01 + iota
	VoiceSupplementaryServiceDeactivate
	VoiceSupplementaryServiceRegister
	VoiceSupplementaryServiceErase
	VoiceSupplementaryServiceInterrogate
	VoiceSupplementaryServiceRegisterPassword
	VoiceSupplementaryServiceUSSDRequest
)

type VoiceSupplementaryServiceType

type VoiceSupplementaryServiceType uint8

VoiceSupplementaryServiceType identifies a call-control supplementary result.

const VoiceSupplementaryServiceUSSD VoiceSupplementaryServiceType = 0x07

type VoiceSupplementaryStatus

type VoiceSupplementaryStatus struct {
	Active    VoiceActiveStatus
	Provision VoiceProvisionStatus
	Known     bool
}

VoiceSupplementaryStatus contains active and provisioned state for a line identification service.

type VoiceTTYMode

type VoiceTTYMode uint8

VoiceTTYMode selects the modem and UI teletypewriter mode.

const (
	VoiceTTYFull VoiceTTYMode = iota
	VoiceTTYVCO
	VoiceTTYHCO
	VoiceTTYOff
)

func (*VoiceTTYMode) UnmarshalTLVs

func (m *VoiceTTYMode) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a TTY-mode indication.

type VoiceUSSDAction

type VoiceUSSDAction uint8

VoiceUSSDAction reports whether the network expects another user response.

const (
	VoiceUSSDActionNotRequired VoiceUSSDAction = 0x01
	VoiceUSSDActionRequired    VoiceUSSDAction = 0x02
)

type VoiceUSSDData

type VoiceUSSDData struct {
	Encoding VoiceUSSDEncoding
	Data     []byte
}

VoiceUSSDData contains USSD bytes encoded according to Encoding.

func (VoiceUSSDData) MarshalBinary

func (d VoiceUSSDData) MarshalBinary() ([]byte, error)

MarshalBinary encodes QMI Voice USSD data.

func (*VoiceUSSDData) UnmarshalBinary

func (d *VoiceUSSDData) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes QMI Voice USSD data.

type VoiceUSSDEncoding

type VoiceUSSDEncoding uint8

VoiceUSSDEncoding identifies the coding scheme of a QMI USSD payload.

const (
	VoiceUSSDEncodingASCII VoiceUSSDEncoding = 0x01
	VoiceUSSDEncoding8Bit  VoiceUSSDEncoding = 0x02
	VoiceUSSDEncodingUCS2  VoiceUSSDEncoding = 0x03
)

type VoiceUSSDEvent

type VoiceUSSDEvent struct {
	Released          bool
	Action            VoiceUSSDAction
	Data              VoiceUSSDData
	DataKnown         bool
	UTF16             []uint16
	FailureCauseText  []uint16
	SIPErrorCode      uint16
	SIPErrorCodeKnown bool
}

VoiceUSSDEvent is an unsolicited USSD notification or release.

func (*VoiceUSSDEvent) UnmarshalTLVs

func (e *VoiceUSSDEvent) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes a QMI Voice USSD indication.

type VoiceUSSDNoWaitResult

type VoiceUSSDNoWaitResult struct {
	VoiceUSSDResult
	ProtocolError      QMIError
	ProtocolErrorKnown bool
	Alpha              VoiceAlphaIdentifier
	AlphaKnown         bool
	FailureCauseText   []uint16
	Err                error
}

VoiceUSSDNoWaitResult is the asynchronous result of Originate USSD No Wait. Err reports malformed indication data; modem and network failures remain in ProtocolError and FailureCause so callers can inspect their numeric values.

func (*VoiceUSSDNoWaitResult) UnmarshalTLVs

func (r *VoiceUSSDNoWaitResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses an Originate USSD No Wait result indication.

type VoiceUSSDResult

type VoiceUSSDResult struct {
	Data                                 VoiceUSSDData
	DataKnown                            bool
	UTF16                                []uint16
	FailureCause                         uint16
	FailureCauseKnown                    bool
	Alpha                                VoiceAlphaIdentifier
	AlphaKnown                           bool
	CallControlResult                    VoiceCallControlResultType
	CallControlResultKnown               bool
	CallID                               uint8
	CallIDKnown                          bool
	CallControlSupplementaryService      VoiceSupplementaryServiceType
	CallControlSupplementaryServiceKnown bool
	SIPErrorCode                         uint16
	SIPErrorCodeKnown                    bool
}

VoiceUSSDResult contains optional network data returned synchronously by Originate USSD.

func (*VoiceUSSDResult) UnmarshalTLVs

func (r *VoiceUSSDResult) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs decodes a QMI Voice USSD response.

type WDAAggregationProtocol

type WDAAggregationProtocol uint32

WDAAggregationProtocol identifies a modem data aggregation format.

const (
	WDAAggregationDisabled WDAAggregationProtocol = iota
	WDAAggregationTLP
	WDAAggregationQCNCM
	WDAAggregationMBIM
	WDAAggregationRNDIS
	WDAAggregationQMAP
	WDAAggregationQMAPv2
	WDAAggregationQMAPv3
	WDAAggregationQMAPv4
	WDAAggregationQMAPv5
)

type WDADataFormat

type WDADataFormat struct {
	QoSEnabled                        bool
	QoSEnabledKnown                   bool
	LinkLayerProtocol                 WDALinkLayerProtocol
	LinkLayerProtocolKnown            bool
	UplinkAggregation                 WDAAggregationProtocol
	UplinkAggregationKnown            bool
	DownlinkAggregation               WDAAggregationProtocol
	DownlinkAggregationKnown          bool
	NDPSignature                      uint32
	NDPSignatureKnown                 bool
	DownlinkMaxDatagrams              uint32
	DownlinkMaxDatagramsKnown         bool
	DownlinkMaxSize                   uint32
	DownlinkMaxSizeKnown              bool
	UplinkMaxDatagrams                uint32
	UplinkMaxDatagramsKnown           bool
	UplinkMaxSize                     uint32
	UplinkMaxSizeKnown                bool
	QoSHeaderFormat                   WDAQoSHeaderFormat
	QoSHeaderFormatKnown              bool
	DownlinkMinimumPadding            uint32
	DownlinkMinimumPaddingKnown       bool
	TerminalEquipmentFlowControl      bool
	TerminalEquipmentFlowControlKnown bool
}

WDADataFormat contains data-format fields returned by the modem. A Known flag distinguishes an absent optional TLV from a zero value.

type WDADataFormatConfig

type WDADataFormatConfig struct {
	QoSEnabled                   *bool
	LinkLayerProtocol            *WDALinkLayerProtocol
	UplinkAggregation            *WDAAggregationProtocol
	DownlinkAggregation          *WDAAggregationProtocol
	NDPSignature                 *uint32
	DownlinkMaxDatagrams         *uint32
	DownlinkMaxSize              *uint32
	Endpoint                     *DataEndpoint
	QoSHeaderFormat              *WDAQoSHeaderFormat
	DownlinkMinimumPadding       *uint32
	TerminalEquipmentFlowControl *bool
}

WDADataFormatConfig selects fields for WDA Set Data Format. Nil fields are omitted because every WDA data-format TLV is optional.

type WDADataFormatResponse

type WDADataFormatResponse struct {
	Format WDADataFormat
}

WDADataFormatResponse is the parsed Set/Get Data Format response.

func (*WDADataFormatResponse) UnmarshalTLVs

func (r *WDADataFormatResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional data-format fields returned by WDA.

type WDADefaultFlowRebindVersion

type WDADefaultFlowRebindVersion uint32

WDADefaultFlowRebindVersion identifies the default-flow rebind capability.

const (
	WDADefaultFlowRebindUnsupported WDADefaultFlowRebindVersion = iota
	WDADefaultFlowRebindVersion1
)

type WDAEthernetConfigResponse

type WDAEthernetConfigResponse struct {
	Config      WDAEthernetHardwareConfig
	ConfigKnown bool
}

WDAEthernetConfigResponse contains the modem's Ethernet hardware layout.

func (*WDAEthernetConfigResponse) UnmarshalTLVs

func (r *WDAEthernetConfigResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI WDA Get Ethernet Config.

type WDAEthernetHardwareConfig

type WDAEthernetHardwareConfig uint32

WDAEthernetHardwareConfig identifies the modem's Ethernet PDU layout.

const (
	WDAEthernetHardwareDefault WDAEthernetHardwareConfig = iota
	WDAEthernetHardwareVLANIP
	WDAEthernetHardwareNonVLANIP
)

type WDAGetDataFormatRequest

type WDAGetDataFormatRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Endpoint      *DataEndpoint
}

WDAGetDataFormatRequest encodes QMI WDA Get Data Format.

func (WDAGetDataFormatRequest) Request

func (r WDAGetDataFormatRequest) Request() Request

Request queries the default data port unless Endpoint is provided.

type WDAGetEthernetConfigRequest

type WDAGetEthernetConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDAGetEthernetConfigRequest encodes QMI WDA Get Ethernet Config.

func (WDAGetEthernetConfigRequest) Request

Request converts the query into a WDA request.

type WDAGetLoopbackStateRequest

type WDAGetLoopbackStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDAGetLoopbackStateRequest encodes Get Loopback State.

func (WDAGetLoopbackStateRequest) Request

func (r WDAGetLoopbackStateRequest) Request() Request

Request returns the empty Get Loopback State request.

type WDAGetLoopbackStateResponse

type WDAGetLoopbackStateResponse struct {
	State WDALoopbackState
}

WDAGetLoopbackStateResponse contains the optional state returned by Get Loopback State.

func (*WDAGetLoopbackStateResponse) UnmarshalTLVs

func (r *WDAGetLoopbackStateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Get Loopback State response.

type WDAGetQMAPSettingsRequest

type WDAGetQMAPSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Endpoint      *DataEndpoint
}

WDAGetQMAPSettingsRequest encodes QMI WDA Get QMAP Settings.

func (WDAGetQMAPSettingsRequest) Request

func (r WDAGetQMAPSettingsRequest) Request() Request

Request queries the default data channel unless Endpoint is provided.

type WDALinkLayerProtocol

type WDALinkLayerProtocol uint32

WDALinkLayerProtocol identifies the frames exchanged on the modem data port.

const (
	WDALinkLayerEthernet WDALinkLayerProtocol = 0x01
	WDALinkLayerRawIP    WDALinkLayerProtocol = 0x02
)

type WDALoopbackConfigIndication

type WDALoopbackConfigIndication struct {
	State WDALoopbackState
}

WDALoopbackConfigIndication is the asynchronous result of Set Loopback Configuration.

func (*WDALoopbackConfigIndication) UnmarshalTLVs

func (i *WDALoopbackConfigIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Loopback Configuration indication.

type WDALoopbackState

type WDALoopbackState struct {
	Enabled                bool
	EnabledKnown           bool
	ReplicationFactor      uint32
	ReplicationFactorKnown bool
}

WDALoopbackState contains the modem's packet-loopback configuration.

type WDAQMAPSettings

type WDAQMAPSettings struct {
	InBandFlowControl      bool
	InBandFlowControlKnown bool
	DataFlowControl        bool
	DataFlowControlKnown   bool
}

WDAQMAPSettings contains QMAP flow-control state returned by the modem.

type WDAQMAPSettingsConfig

type WDAQMAPSettingsConfig struct {
	InBandFlowControl *bool
	Endpoint          *DataEndpoint
	DataFlowControl   *bool
}

WDAQMAPSettingsConfig contains optional QMAP settings to apply to an endpoint. A nil endpoint selects the data channel associated with the QMI control channel.

type WDAQMAPSettingsResponse

type WDAQMAPSettingsResponse struct {
	Settings WDAQMAPSettings
}

WDAQMAPSettingsResponse is shared by Set and Get QMAP Settings because both responses use the same TLV layout.

func (*WDAQMAPSettingsResponse) UnmarshalTLVs

func (r *WDAQMAPSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses QMI WDA QMAP settings.

type WDAQoSHeaderFormat

type WDAQoSHeaderFormat uint32

WDAQoSHeaderFormat identifies the optional uplink QoS header layout.

const (
	WDAQoSHeaderReserved WDAQoSHeaderFormat = iota
	WDAQoSHeader6Bytes
	WDAQoSHeader8Bytes
)

type WDASetCapabilityConfig

type WDASetCapabilityConfig struct {
	Endpoint              DataEndpoint
	DefaultFlowRebind     *WDADefaultFlowRebindVersion
	EthernetPDUCapability *bool
}

WDASetCapabilityConfig contains the endpoint capabilities negotiated with the modem. EthernetPDUCapability is supported by newer WDA revisions.

type WDASetCapabilityRequest

type WDASetCapabilityRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDASetCapabilityConfig
}

WDASetCapabilityRequest encodes Set Capability.

func (WDASetCapabilityRequest) Request

func (r WDASetCapabilityRequest) Request() (Request, error)

Request converts endpoint capabilities into QMI WDA TLVs.

type WDASetCapabilityResponse

type WDASetCapabilityResponse struct {
	DefaultFlowRebind          WDADefaultFlowRebindVersion
	DefaultFlowRebindKnown     bool
	EthernetPDUCapability      bool
	EthernetPDUCapabilityKnown bool
}

WDASetCapabilityResponse contains capabilities honored by the modem.

func (*WDASetCapabilityResponse) UnmarshalTLVs

func (r *WDASetCapabilityResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional capability fields.

type WDASetDataFormatRequest

type WDASetDataFormatRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDADataFormatConfig
}

WDASetDataFormatRequest encodes QMI WDA Set Data Format.

func (WDASetDataFormatRequest) Request

func (r WDASetDataFormatRequest) Request() Request

Request converts the requested fields into WDA TLVs.

type WDASetLoopbackConfig

type WDASetLoopbackConfig struct {
	Enabled           bool
	ReplicationFactor *uint32
}

WDASetLoopbackConfig contains the current loopback state and optional replication factor.

type WDASetLoopbackConfigRequest

type WDASetLoopbackConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDASetLoopbackConfig
}

WDASetLoopbackConfigRequest encodes Set Loopback Configuration.

func (WDASetLoopbackConfigRequest) Request

Request converts the loopback configuration into QMI WDA TLVs.

type WDASetLoopbackStateRequest

type WDASetLoopbackStateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

WDASetLoopbackStateRequest encodes the deprecated Set Loopback State operation. New code should prefer WDASetLoopbackConfigRequest.

func (WDASetLoopbackStateRequest) Request

func (r WDASetLoopbackStateRequest) Request() Request

Request converts the legacy loopback state into QMI WDA TLVs.

type WDASetPowersaveConfig

type WDASetPowersaveConfig struct {
	Endpoint      DataEndpoint
	RequestedMask *WDASetPowersaveConfigMask
}

WDASetPowersaveConfig contains the powersave settings for one endpoint.

type WDASetPowersaveConfigMask

type WDASetPowersaveConfigMask uint32

WDASetPowersaveConfigMask selects powersave notifications controlled by the modem.

const (
	WDAPowersaveConfigUnsupported    WDASetPowersaveConfigMask = 0
	WDAPowersaveConfigDownlinkMarker WDASetPowersaveConfigMask = 1 << 0
	WDAPowersaveConfigFlowControl    WDASetPowersaveConfigMask = 1 << 1
	WDAPowersaveConfigAll            WDASetPowersaveConfigMask = 0x7fffffff
)

type WDASetPowersaveConfigRequest

type WDASetPowersaveConfigRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDASetPowersaveConfig
}

WDASetPowersaveConfigRequest encodes Set Powersave Configuration.

func (WDASetPowersaveConfigRequest) Request

Request converts the endpoint powersave configuration into QMI WDA TLVs.

type WDASetPowersaveConfigResponse

type WDASetPowersaveConfigResponse struct {
	Mask      WDASetPowersaveConfigMask
	MaskKnown bool
}

WDASetPowersaveConfigResponse contains the powersave mask supported by the modem.

func (*WDASetPowersaveConfigResponse) UnmarshalTLVs

func (r *WDASetPowersaveConfigResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a Set Powersave Configuration response.

type WDASetPowersaveModeRequest

type WDASetPowersaveModeRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Enabled       bool
}

WDASetPowersaveModeRequest encodes Set Powersave Mode.

func (WDASetPowersaveModeRequest) Request

func (r WDASetPowersaveModeRequest) Request() Request

Request converts the powersave mode into QMI WDA TLVs.

type WDASetQMAPSettingsRequest

type WDASetQMAPSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDAQMAPSettingsConfig
}

WDASetQMAPSettingsRequest encodes QMI WDA Set QMAP Settings.

func (WDASetQMAPSettingsRequest) Request

func (r WDASetQMAPSettingsRequest) Request() Request

Request converts the requested QMAP settings into WDA TLVs.

type WDSAPNTypeMask

type WDSAPNTypeMask uint64

WDSAPNTypeMask identifies the standardized uses assigned to an APN.

const (
	WDSAPNTypeDefault WDSAPNTypeMask = 1 << iota
	WDSAPNTypeIMS
	WDSAPNTypeMMS
	WDSAPNTypeDUN
	WDSAPNTypeSUPL
	WDSAPNTypeHIPRI
	WDSAPNTypeFOTA
	WDSAPNTypeCBS
	WDSAPNTypeIA
	WDSAPNTypeEmergency
	WDSAPNTypeUT
	WDSAPNTypeMCX
)

type WDSAbortRequest

type WDSAbortRequest struct {
	ClientID            uint8
	TransactionID       uint16
	Timeout             time.Duration
	TargetTransactionID uint16
}

WDSAbortRequest encodes the library-level WDS Abort command. The target must use the same WDS client ID as the operation being aborted.

func (WDSAbortRequest) Request

func (r WDSAbortRequest) Request() Request

Request converts the abort operation into a QMI WDS request.

type WDSAddressAllocationPreference

type WDSAddressAllocationPreference uint8

WDSAddressAllocationPreference identifies how the modem should obtain an IP address for a profile.

const (
	WDSAddressAllocationNAS WDSAddressAllocationPreference = iota
	WDSAddressAllocationDHCP
)

type WDSAttachPDNListAction

type WDSAttachPDNListAction uint32

WDSAttachPDNListAction controls disruption after updating the attach list.

const (
	WDSAttachPDNListNoAction WDSAttachPDNListAction = iota + 1
	WDSAttachPDNListDetachOrDisconnect
)

type WDSAuthenticationMask

type WDSAuthenticationMask uint8

WDSAuthenticationMask selects the authentication protocols offered for a packet-data call or stored profile. The zero value omits the optional field.

const (
	WDSAuthenticationPAP WDSAuthenticationMask = 1 << iota
	WDSAuthenticationCHAP
)

type WDSAutoconnectRoaming

type WDSAutoconnectRoaming uint8

WDSAutoconnectRoaming controls whether autoconnect is allowed while roaming.

const (
	WDSAutoconnectRoamingAllowed WDSAutoconnectRoaming = iota
	WDSAutoconnectHomeOnly
)

type WDSAutoconnectSetting

type WDSAutoconnectSetting uint8

WDSAutoconnectSetting is the modem's automatic packet-data policy.

const (
	WDSAutoconnectDisabled WDSAutoconnectSetting = iota
	WDSAutoconnectEnabled
	WDSAutoconnectPaused
)

type WDSAutoconnectSettings

type WDSAutoconnectSettings struct {
	Status       WDSAutoconnectSetting
	Roaming      WDSAutoconnectRoaming
	RoamingKnown bool
}

WDSAutoconnectSettings contains the current autoconnect policy.

type WDSBearerNetwork

type WDSBearerNetwork uint32

WDSBearerNetwork identifies the network family in extended bearer data.

const (
	WDSBearerNetwork3GPP WDSBearerNetwork = iota
	WDSBearerNetwork3GPP2
)

type WDSBearerRAT

type WDSBearerRAT uint32

WDSBearerRAT identifies the RAT in extended bearer data.

const (
	WDSBearerRATNull      WDSBearerRAT = 0x00
	WDSBearerRATWCDMA     WDSBearerRAT = 0x01
	WDSBearerRATGERAN     WDSBearerRAT = 0x02
	WDSBearerRATLTE       WDSBearerRAT = 0x03
	WDSBearerRATTDSCDMA   WDSBearerRAT = 0x04
	WDSBearerRAT3GPPWLAN  WDSBearerRAT = 0x05
	WDSBearerRAT5G        WDSBearerRAT = 0x06
	WDSBearerRAT1X        WDSBearerRAT = 0x65
	WDSBearerRATHRPD      WDSBearerRAT = 0x66
	WDSBearerRATEHRPD     WDSBearerRAT = 0x67
	WDSBearerRAT3GPP2WLAN WDSBearerRAT = 0x68
)

type WDSBearerServiceOptionMask

type WDSBearerServiceOptionMask uint64

WDSBearerServiceOptionMask describes active bearer capabilities.

const (
	WDSBearerServiceOptionWCDMA         WDSBearerServiceOptionMask = 1 << 0
	WDSBearerServiceOptionHSDPA         WDSBearerServiceOptionMask = 1 << 1
	WDSBearerServiceOptionHSUPA         WDSBearerServiceOptionMask = 1 << 2
	WDSBearerServiceOptionHSDPAPlus     WDSBearerServiceOptionMask = 1 << 3
	WDSBearerServiceOptionGPRS          WDSBearerServiceOptionMask = 1 << 7
	WDSBearerServiceOptionEDGE          WDSBearerServiceOptionMask = 1 << 8
	WDSBearerServiceOptionGSM           WDSBearerServiceOptionMask = 1 << 9
	WDSBearerServiceOptionS2B           WDSBearerServiceOptionMask = 1 << 10
	WDSBearerServiceOptionLTEFDD        WDSBearerServiceOptionMask = 1 << 12
	WDSBearerServiceOptionLTETDD        WDSBearerServiceOptionMask = 1 << 13
	WDSBearerServiceOptionTDSCDMA       WDSBearerServiceOptionMask = 1 << 14
	WDSBearerServiceOptionLTECADownlink WDSBearerServiceOptionMask = 1 << 16
	WDSBearerServiceOptionLTECAUplink   WDSBearerServiceOptionMask = 1 << 17
	WDSBearerServiceOption5GTDD         WDSBearerServiceOptionMask = 1 << 40
	WDSBearerServiceOption5GSub6        WDSBearerServiceOptionMask = 1 << 41
	WDSBearerServiceOption5GMMWave      WDSBearerServiceOptionMask = 1 << 42
	WDSBearerServiceOption5GNSA         WDSBearerServiceOptionMask = 1 << 43
	WDSBearerServiceOption5GSA          WDSBearerServiceOptionMask = 1 << 44
)

type WDSBearerTechnology

type WDSBearerTechnology struct {
	Network        WDSBearerNetwork
	RAT            WDSBearerRAT
	ServiceOptions WDSBearerServiceOptionMask
}

WDSBearerTechnology contains 5G-capable extended bearer information.

func (WDSBearerTechnology) MarshalBinary

func (t WDSBearerTechnology) MarshalBinary() ([]byte, error)

func (*WDSBearerTechnology) UnmarshalBinary

func (t *WDSBearerTechnology) UnmarshalBinary(value []byte) error

type WDSBearerTechnologyInfo

type WDSBearerTechnologyInfo struct {
	Current      WDSBearerTechnology
	CurrentKnown bool
	Last         WDSBearerTechnology
	LastKnown    bool
}

WDSBearerTechnologyInfo contains current and optional last extended bearer.

type WDSBindMuxDataPortError

type WDSBindMuxDataPortError struct {
	Err error
}

WDSBindMuxDataPortError reports an error from the WDS mux binding command. Callers can use errors.As to distinguish bind compatibility failures from errors returned by later WDS operations.

func (*WDSBindMuxDataPortError) Error

func (e *WDSBindMuxDataPortError) Error() string

func (*WDSBindMuxDataPortError) Unwrap

func (e *WDSBindMuxDataPortError) Unwrap() error

type WDSBindMuxDataPortRequest

type WDSBindMuxDataPortRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	DataPort      WDSMuxDataPort
}

WDSBindMuxDataPortRequest encodes QMI WDS Bind Mux Data Port.

func (WDSBindMuxDataPortRequest) Request

func (r WDSBindMuxDataPortRequest) Request() Request

Request binds the WDS client to a logical data channel.

type WDSBindSubscriptionRequest

type WDSBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Subscription  WDSSubscription
}

WDSBindSubscriptionRequest encodes Bind Subscription.

func (WDSBindSubscriptionRequest) Request

func (r WDSBindSubscriptionRequest) Request() (Request, error)

Request validates the subscription and converts it into a QMI request.

type WDSCallEndReason

type WDSCallEndReason uint16

WDSCallEndReason is the basic WDS call end reason returned by start-network.

const (
	WDSCallEndReasonGenericUnspecified WDSCallEndReason = 1
)

func (WDSCallEndReason) String

func (r WDSCallEndReason) String() string

type WDSCallType

type WDSCallType uint8

WDSCallType identifies the origin of a WDS packet-data call.

const (
	WDSCallTypeLaptop WDSCallType = iota
	WDSCallTypeEmbedded
)

type WDSChannelRateUnit

type WDSChannelRateUnit uint32

WDSChannelRateUnit identifies the unit used by extended channel rates.

const (
	WDSChannelRateBitsPerSecond WDSChannelRateUnit = iota
	WDSChannelRateKilobitsPerSecond
	WDSChannelRateMegabitsPerSecond
	WDSChannelRateGigabitsPerSecond
)

type WDSChannelRates

type WDSChannelRates struct {
	Unit      WDSChannelRateUnit
	CurrentTx uint64
	CurrentRx uint64
	MaximumTx uint64
	MaximumRx uint64
	Extended  bool
}

WDSChannelRates contains instantaneous and maximum link rates.

type WDSClientType

type WDSClientType uint32
const (
	WDSClientTypeReserved WDSClientType = iota
	WDSClientTypeTethered
)

type WDSConfigureProfileEventListRequest

type WDSConfigureProfileEventListRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profiles      []WDSProfileID
}

WDSConfigureProfileEventListRequest encodes the profiles to monitor.

func (WDSConfigureProfileEventListRequest) Request

Request validates and encodes the profile registration list.

type WDSConnectionStatus

type WDSConnectionStatus uint8

WDSConnectionStatus is the current state of a WDS packet-data connection.

const (
	WDSConnectionStatusDisconnected   WDSConnectionStatus = 0x01
	WDSConnectionStatusConnected      WDSConnectionStatus = 0x02
	WDSConnectionStatusSuspended      WDSConnectionStatus = 0x03
	WDSConnectionStatusAuthenticating WDSConnectionStatus = 0x04
)

type WDSCreateProfileRequest

type WDSCreateProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDSProfileConfig
}

func (WDSCreateProfileRequest) Request

func (r WDSCreateProfileRequest) Request() (Request, error)

type WDSCurrentBearerNetwork

type WDSCurrentBearerNetwork uint8

WDSCurrentBearerNetwork identifies the network namespace of legacy masks.

const (
	WDSCurrentBearerNetworkUnknown WDSCurrentBearerNetwork = iota
	WDSCurrentBearerNetwork3GPP2
	WDSCurrentBearerNetwork3GPP
)

type WDSCurrentBearerTechnology

type WDSCurrentBearerTechnology struct {
	Network           WDSCurrentBearerNetwork
	RATMask           uint32
	ServiceOptionMask uint32
}

WDSCurrentBearerTechnology contains the legacy network, RAT, and SO masks.

func (WDSCurrentBearerTechnology) MarshalBinary

func (t WDSCurrentBearerTechnology) MarshalBinary() ([]byte, error)

func (*WDSCurrentBearerTechnology) UnmarshalBinary

func (t *WDSCurrentBearerTechnology) UnmarshalBinary(value []byte) error

type WDSCurrentBearerTechnologyInfo

type WDSCurrentBearerTechnologyInfo struct {
	Current   WDSCurrentBearerTechnology
	Last      WDSCurrentBearerTechnology
	LastKnown bool
}

WDSCurrentBearerTechnologyInfo contains current and optional last masks.

type WDSDataBearerTechnology

type WDSDataBearerTechnology int8

WDSDataBearerTechnology is the compact legacy bearer enumeration.

const (
	WDSDataBearer1X                  WDSDataBearerTechnology = 0x01
	WDSDataBearer1XEVDO              WDSDataBearerTechnology = 0x02
	WDSDataBearerGSM                 WDSDataBearerTechnology = 0x03
	WDSDataBearerUMTS                WDSDataBearerTechnology = 0x04
	WDSDataBearerEVDORevA            WDSDataBearerTechnology = 0x05
	WDSDataBearerEDGE                WDSDataBearerTechnology = 0x06
	WDSDataBearerHSDPAWCDMA          WDSDataBearerTechnology = 0x07
	WDSDataBearerWCDMAHSUPA          WDSDataBearerTechnology = 0x08
	WDSDataBearerHSDPAHSUPA          WDSDataBearerTechnology = 0x09
	WDSDataBearerLTE                 WDSDataBearerTechnology = 0x0A
	WDSDataBearerEHRPD               WDSDataBearerTechnology = 0x0B
	WDSDataBearerHSDPAPlusWCDMA      WDSDataBearerTechnology = 0x0C
	WDSDataBearerHSDPAPlusHSUPA      WDSDataBearerTechnology = 0x0D
	WDSDataBearerDCHSDPAPlusWCDMA    WDSDataBearerTechnology = 0x0E
	WDSDataBearerDCHSDPAPlusHSUPA    WDSDataBearerTechnology = 0x0F
	WDSDataBearerHSDPAPlus64QAM      WDSDataBearerTechnology = 0x10
	WDSDataBearerHSDPAPlus64QAMHSUPA WDSDataBearerTechnology = 0x11
	WDSDataBearerTDSCDMA             WDSDataBearerTechnology = 0x12
	WDSDataBearerTDSCDMAHSDPA        WDSDataBearerTechnology = 0x13
	WDSDataBearerTDSCDMAHSUPA        WDSDataBearerTechnology = 0x14
	WDSDataBearerIWLANS2B            WDSDataBearerTechnology = 0x15
	WDSDataBearerUnknown             WDSDataBearerTechnology = -1
)

type WDSDataBearerTechnologyInfo

type WDSDataBearerTechnologyInfo struct {
	Current   WDSDataBearerTechnology
	Last      WDSDataBearerTechnology
	LastKnown bool
}

WDSDataBearerTechnologyInfo contains the current and optional last bearer.

type WDSDataCallAddressFamily

type WDSDataCallAddressFamily uint32

WDSDataCallAddressFamily is the four-byte IP-family value used in WDS event reports.

const (
	WDSDataCallAddressFamilyUnknown WDSDataCallAddressFamily = 0
	WDSDataCallAddressFamilyIPv4    WDSDataCallAddressFamily = 4
	WDSDataCallAddressFamilyIPv6    WDSDataCallAddressFamily = 6
)

type WDSDataCallStatus

type WDSDataCallStatus uint8

WDSDataCallStatus identifies activation and termination events.

const (
	WDSDataCallStatusUnknown WDSDataCallStatus = iota
	WDSDataCallStatusActivated
	WDSDataCallStatusTerminated
)

type WDSDataEndpoint

type WDSDataEndpoint = DataEndpoint

WDSDataEndpoint is kept for source compatibility. Deprecated: use DataEndpoint.

type WDSDataEndpointType

type WDSDataEndpointType = DataEndpointType

WDSDataEndpointType is kept for source compatibility. Deprecated: use DataEndpointType.

type WDSDataSystemNetwork

type WDSDataSystemNetwork struct {
	Type              WDSDataSystemNetworkType
	RATMask           uint32
	ServiceOptionMask uint32
}

WDSDataSystemNetwork contains one legacy RAT and service-option mask pair.

type WDSDataSystemNetworkType

type WDSDataSystemNetworkType uint8

WDSDataSystemNetworkType identifies a 3GPP or 3GPP2 data-system family.

const (
	WDSDataSystem3GPP WDSDataSystemNetworkType = iota
	WDSDataSystem3GPP2
)

type WDSDataSystems

type WDSDataSystems struct {
	Preferred WDSDataSystemNetworkType
	Networks  []WDSDataSystemNetwork
}

WDSDataSystems contains the preferred family and currently available data systems.

func (WDSDataSystems) MarshalBinary

func (s WDSDataSystems) MarshalBinary() ([]byte, error)

func (*WDSDataSystems) UnmarshalBinary

func (s *WDSDataSystems) UnmarshalBinary(value []byte) error

type WDSDeleteProfileRequest

type WDSDeleteProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profile       WDSProfileID
}

func (WDSDeleteProfileRequest) Request

func (r WDSDeleteProfileRequest) Request() Request

type WDSDormancyStatus

type WDSDormancyStatus uint8

WDSDormancyStatus is the current traffic-channel state.

const (
	WDSDormancyDormant WDSDormancyStatus = 0x01
	WDSDormancyActive  WDSDormancyStatus = 0x02
)

type WDSEVDOPageMonitorChange

type WDSEVDOPageMonitorChange struct {
	Period         uint8
	ForceLongSleep bool
}

WDSEVDOPageMonitorChange contains the new EVDO slot cycle and sleep flag.

type WDSEventDataCall

type WDSEventDataCall struct {
	Type         WDSEventDataCallType
	TetheredType WDSEventTetheredCallType
}

WDSEventDataCall describes one data-call type indication.

type WDSEventDataCallType

type WDSEventDataCallType uint8

WDSEventDataCallType identifies the origin of a reported data call.

const (
	WDSEventDataCallNone WDSEventDataCallType = iota
	WDSEventDataCallEmbedded
	WDSEventDataCallTethered
	WDSEventDataCallModemEmbedded
)

type WDSEventReport

type WDSEventReport struct {
	Statistics WDSPacketStatistics

	ChannelRates              WDSChannelRates
	ChannelRatesKnown         bool
	DataBearer                WDSDataBearerTechnology
	DataBearerKnown           bool
	Dormancy                  WDSDormancyStatus
	DormancyKnown             bool
	MIPStatus                 uint8
	MIPStatusKnown            bool
	CurrentDataBearer         WDSCurrentBearerTechnology
	CurrentDataBearerKnown    bool
	DataCallStatus            WDSDataCallStatus
	DataCallStatusKnown       bool
	PreferredDataSystem       WDSPreferredDataSystem
	PreferredDataSystemKnown  bool
	DataCall                  WDSEventDataCall
	DataCallKnown             bool
	EVDOPageMonitor           WDSEVDOPageMonitorChange
	EVDOPageMonitorKnown      bool
	DataSystems               WDSDataSystems
	DataSystemsKnown          bool
	UplinkFlowControlled      bool
	UplinkFlowControlKnown    bool
	AddressFamily             WDSDataCallAddressFamily
	AddressFamilyKnown        bool
	RemovedFilterHandles      []uint32
	RemovedFilterHandlesKnown bool
	ExtendedDataBearer        WDSBearerTechnology
	ExtendedDataBearerKnown   bool
}

WDSEventReport contains all fields in the libqmi basic WDS Event Report.

func (*WDSEventReport) UnmarshalTLVs

func (e *WDSEventReport) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI WDS Event Report indication.

type WDSEventTetheredCallType

type WDSEventTetheredCallType uint8

WDSEventTetheredCallType identifies the tethering mechanism.

const (
	WDSEventTetheredCallNone WDSEventTetheredCallType = iota
	WDSEventTetheredCallRMNET
	WDSEventTetheredCallDUN
)

type WDSExtendedTechnologyPreference

type WDSExtendedTechnologyPreference uint16

WDSExtendedTechnologyPreference selects one specific packet-data technology.

const (
	WDSExtendedTechnologyCDMA           WDSExtendedTechnologyPreference = 32769
	WDSExtendedTechnologyUMTS           WDSExtendedTechnologyPreference = 32772
	WDSExtendedTechnologyEPC            WDSExtendedTechnologyPreference = 34944
	WDSExtendedTechnologyEMBMS          WDSExtendedTechnologyPreference = 34946
	WDSExtendedTechnologyModemLinkLocal WDSExtendedTechnologyPreference = 34952
)

type WDSGPRSGrantedQoS

type WDSGPRSGrantedQoS struct {
	PrecedenceClass     uint32
	DelayClass          uint32
	ReliabilityClass    uint32
	PeakThroughputClass uint32
	MeanThroughputClass uint32
}

WDSGPRSGrantedQoS contains the QoS classes granted to an active GPRS call.

func (WDSGPRSGrantedQoS) MarshalBinary

func (qos WDSGPRSGrantedQoS) MarshalBinary() ([]byte, error)

MarshalBinary encodes GPRS QoS parameters.

func (*WDSGPRSGrantedQoS) UnmarshalBinary

func (qos *WDSGPRSGrantedQoS) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes GPRS QoS parameters.

type WDSGetAutoconnectSettingsRequest

type WDSGetAutoconnectSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetAutoconnectSettingsRequest encodes Get Autoconnect Settings.

func (WDSGetAutoconnectSettingsRequest) Request

Request converts the query into a QMI request.

type WDSGetAutoconnectSettingsResponse

type WDSGetAutoconnectSettingsResponse struct {
	Settings WDSAutoconnectSettings
}

WDSGetAutoconnectSettingsResponse is the parsed autoconnect response.

func (*WDSGetAutoconnectSettingsResponse) UnmarshalTLVs

func (r *WDSGetAutoconnectSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory status and optional roaming policy.

type WDSGetBindSubscriptionRequest

type WDSGetBindSubscriptionRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetBindSubscriptionRequest encodes Get Bind Subscription.

func (WDSGetBindSubscriptionRequest) Request

Request converts the query into a QMI request.

type WDSGetBindSubscriptionResponse

type WDSGetBindSubscriptionResponse struct {
	Subscription      WDSSubscription
	SubscriptionKnown bool
}

WDSGetBindSubscriptionResponse is the parsed subscription response.

func (*WDSGetBindSubscriptionResponse) UnmarshalTLVs

func (r *WDSGetBindSubscriptionResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional bound subscription.

type WDSGetCurrentChannelRateRequest

type WDSGetCurrentChannelRateRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetCurrentChannelRateRequest encodes Get Current Channel Rate.

func (WDSGetCurrentChannelRateRequest) Request

Request converts the query into a QMI request.

type WDSGetCurrentChannelRateResponse

type WDSGetCurrentChannelRateResponse struct {
	Rates WDSChannelRates
}

WDSGetCurrentChannelRateResponse is the parsed channel-rate response.

func (*WDSGetCurrentChannelRateResponse) UnmarshalTLVs

func (r *WDSGetCurrentChannelRateResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses legacy rates and prefers extended rates when present.

type WDSGetCurrentDataBearerTechnologyRequest

type WDSGetCurrentDataBearerTechnologyRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetCurrentDataBearerTechnologyRequest encodes the legacy mask query.

func (WDSGetCurrentDataBearerTechnologyRequest) Request

Request converts the query into a QMI request.

type WDSGetCurrentDataBearerTechnologyResponse

type WDSGetCurrentDataBearerTechnologyResponse struct {
	Technology WDSCurrentBearerTechnologyInfo
}

WDSGetCurrentDataBearerTechnologyResponse is the parsed legacy mask response.

func (*WDSGetCurrentDataBearerTechnologyResponse) UnmarshalTLVs

UnmarshalTLVs parses current and optional last-call bearer masks.

type WDSGetDataBearerTechnologyExRequest

type WDSGetDataBearerTechnologyExRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetDataBearerTechnologyExRequest encodes the 5G-capable bearer query.

func (WDSGetDataBearerTechnologyExRequest) Request

Request converts the query into an empty QMI WDS request.

type WDSGetDataBearerTechnologyExResponse

type WDSGetDataBearerTechnologyExResponse struct {
	Technology WDSBearerTechnologyInfo
}

WDSGetDataBearerTechnologyExResponse is the parsed extended bearer response.

func (*WDSGetDataBearerTechnologyExResponse) UnmarshalTLVs

func (r *WDSGetDataBearerTechnologyExResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional current and last-call bearer aggregates.

type WDSGetDataBearerTechnologyRequest

type WDSGetDataBearerTechnologyRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetDataBearerTechnologyRequest encodes the compact legacy bearer query.

func (WDSGetDataBearerTechnologyRequest) Request

Request converts the query into a QMI request.

type WDSGetDataBearerTechnologyResponse

type WDSGetDataBearerTechnologyResponse struct {
	Technology WDSDataBearerTechnologyInfo
}

WDSGetDataBearerTechnologyResponse is the parsed compact bearer response.

func (*WDSGetDataBearerTechnologyResponse) UnmarshalTLVs

func (r *WDSGetDataBearerTechnologyResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses current and optional last-call bearer values.

type WDSGetDefaultProfileRequest

type WDSGetDefaultProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	ProfileType   WDSProfileType
	Family        WDSProfileFamily
}

WDSGetDefaultProfileRequest encodes Get Default Profile Number.

func (WDSGetDefaultProfileRequest) Request

Request converts the profile family into a QMI request.

type WDSGetDefaultProfileResponse

type WDSGetDefaultProfileResponse struct {
	Index uint8
}

WDSGetDefaultProfileResponse contains the selected profile index.

func (*WDSGetDefaultProfileResponse) UnmarshalTLVs

func (r *WDSGetDefaultProfileResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory default profile index.

type WDSGetDefaultSettingsRequest

type WDSGetDefaultSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	ProfileType   WDSProfileType
}

WDSGetDefaultSettingsRequest encodes Get Default Settings.

func (WDSGetDefaultSettingsRequest) Request

Request converts the profile selector into a QMI request.

type WDSGetDefaultSettingsResponse

type WDSGetDefaultSettingsResponse struct {
	Settings WDSProfileSettings
}

WDSGetDefaultSettingsResponse contains the practical profile fields exposed by WDSProfileSettings. ID.Type identifies the requested profile technology; ID.Index has no meaning for default settings.

func (*WDSGetDefaultSettingsResponse) UnmarshalTLVs

func (r *WDSGetDefaultSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the profile fields shared with Get Profile Settings.

type WDSGetDormancyStatusRequest

type WDSGetDormancyStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetDormancyStatusRequest encodes Get Dormancy Status.

func (WDSGetDormancyStatusRequest) Request

Request converts the query into a QMI request.

type WDSGetDormancyStatusResponse

type WDSGetDormancyStatusResponse struct {
	Status WDSDormancyStatus
}

WDSGetDormancyStatusResponse is the parsed dormancy response.

func (*WDSGetDormancyStatusResponse) UnmarshalTLVs

func (r *WDSGetDormancyStatusResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory dormancy state.

type WDSGetLTEAttachPDNListRequest

type WDSGetLTEAttachPDNListRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetLTEAttachPDNListRequest encodes Get LTE Attach PDN List.

func (WDSGetLTEAttachPDNListRequest) Request

Request converts the query into a QMI request.

type WDSGetLTEAttachPDNListResponse

type WDSGetLTEAttachPDNListResponse struct {
	List WDSLTEAttachPDNList
}

WDSGetLTEAttachPDNListResponse is the parsed attach-list response.

func (*WDSGetLTEAttachPDNListResponse) UnmarshalTLVs

func (r *WDSGetLTEAttachPDNListResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the current and pending profile lists.

type WDSGetLTEAttachParametersRequest

type WDSGetLTEAttachParametersRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetLTEAttachParametersRequest encodes Get LTE Attach Parameters.

func (WDSGetLTEAttachParametersRequest) Request

Request converts the query into a QMI request.

type WDSGetLTEAttachParametersResponse

type WDSGetLTEAttachParametersResponse struct {
	Parameters WDSLTEAttachParameters
}

WDSGetLTEAttachParametersResponse is the parsed LTE attach response.

func (*WDSGetLTEAttachParametersResponse) UnmarshalTLVs

func (r *WDSGetLTEAttachParametersResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the optional initial-attach fields.

type WDSGetMaxLTEAttachPDNNumberRequest

type WDSGetMaxLTEAttachPDNNumberRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGetMaxLTEAttachPDNNumberRequest encodes Get Max LTE Attach PDN Number.

func (WDSGetMaxLTEAttachPDNNumberRequest) Request

Request converts the query into a QMI request.

type WDSGetMaxLTEAttachPDNNumberResponse

type WDSGetMaxLTEAttachPDNNumberResponse struct {
	Maximum uint8
}

WDSGetMaxLTEAttachPDNNumberResponse contains the modem attach-list limit.

func (*WDSGetMaxLTEAttachPDNNumberResponse) UnmarshalTLVs

func (r *WDSGetMaxLTEAttachPDNNumberResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory attach-list limit.

type WDSGetPDNThrottleInfoRequest

type WDSGetPDNThrottleInfoRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	NetworkType   WDSDataSystemNetworkType
}

WDSGetPDNThrottleInfoRequest encodes Get PDN Throttle Info.

func (WDSGetPDNThrottleInfoRequest) Request

Request converts the technology selector into a QMI request.

type WDSGetPDNThrottleInfoResponse

type WDSGetPDNThrottleInfoResponse struct {
	Info WDSPDNThrottleInfo
}

WDSGetPDNThrottleInfoResponse contains the parsed throttle data.

func (*WDSGetPDNThrottleInfoResponse) UnmarshalTLVs

func (r *WDSGetPDNThrottleInfoResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the base, extended, and additional throttle arrays.

type WDSGetPacketServiceStatusRequest

type WDSGetPacketServiceStatusRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	IPConfigMask  WDSRuntimeSettingsMask
}

func (WDSGetPacketServiceStatusRequest) Request

type WDSGetPacketStatisticsRequest

type WDSGetPacketStatisticsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Mask          WDSStatisticsMask
}

WDSGetPacketStatisticsRequest encodes Get Packet Statistics.

func (WDSGetPacketStatisticsRequest) Request

Request converts the selected counters into a QMI request. A zero mask asks for every standard counter.

type WDSGetPacketStatisticsResponse

type WDSGetPacketStatisticsResponse struct {
	Statistics WDSPacketStatistics
}

WDSGetPacketStatisticsResponse is the parsed packet-statistics response.

func (*WDSGetPacketStatisticsResponse) UnmarshalTLVs

func (r *WDSGetPacketStatisticsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses every optional statistics counter.

type WDSGetProfileListRequest

type WDSGetProfileListRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	ProfileType   WDSProfileType
}

func (WDSGetProfileListRequest) Request

func (r WDSGetProfileListRequest) Request() Request

type WDSGetProfileListResponse

type WDSGetProfileListResponse struct{ Profiles []WDSProfile }

func (*WDSGetProfileListResponse) UnmarshalTLVs

func (r *WDSGetProfileListResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

type WDSGetProfileSettingsRequest

type WDSGetProfileSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profile       WDSProfileID
}

func (WDSGetProfileSettingsRequest) Request

type WDSGetProfileSettingsResponse

type WDSGetProfileSettingsResponse struct{ Settings WDSProfileSettings }

func (*WDSGetProfileSettingsResponse) UnmarshalTLVs

func (r *WDSGetProfileSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

type WDSGetRuntimeSettingsRequest

type WDSGetRuntimeSettingsRequest struct {
	ClientID          uint8
	TransactionID     uint16
	Timeout           time.Duration
	RequestedSettings WDSRuntimeSettingsMask
}

WDSGetRuntimeSettingsRequest encodes QMI WDS Get Runtime Settings.

func (WDSGetRuntimeSettingsRequest) Request

Request converts the runtime-settings selector into a QMI WDS request.

type WDSGetRuntimeSettingsResponse

type WDSGetRuntimeSettingsResponse struct {
	Settings WDSRuntimeSettings
}

WDSGetRuntimeSettingsResponse is the parsed WDS runtime settings response.

func (*WDSGetRuntimeSettingsResponse) UnmarshalTLVs

func (r *WDSGetRuntimeSettingsResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses IMS PDN addressing and P-CSCF data.

type WDSGoActiveRequest

type WDSGoActiveRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSGoActiveRequest encodes Go Active.

func (WDSGoActiveRequest) Request

func (r WDSGoActiveRequest) Request() Request

Request converts the command into a QMI request.

type WDSGoDormantConfig

type WDSGoDormantConfig struct {
	Delay    *time.Duration
	SendSCRI *bool
}

WDSGoDormantConfig controls an optional delayed dormancy request.

type WDSGoDormantRequest

type WDSGoDormantRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDSGoDormantConfig
}

WDSGoDormantRequest encodes Go Dormant.

func (WDSGoDormantRequest) Request

func (r WDSGoDormantRequest) Request() (Request, error)

Request validates the optional delay and converts it into QMI TLVs.

type WDSIPFamily

type WDSIPFamily uint8

WDSIPFamily identifies the address family negotiated for an active WDS call.

const (
	WDSIPFamilyIPv4 WDSIPFamily = 4
	WDSIPFamilyIPv6 WDSIPFamily = 6
)

type WDSIPFamilyPreference

type WDSIPFamilyPreference uint8

WDSIPFamilyPreference is the IP family reported for a packet-data call.

const (
	WDSIPFamilyPreferenceNonIP       WDSIPFamilyPreference = 0x02
	WDSIPFamilyPreferenceIPv4        WDSIPFamilyPreference = 0x04
	WDSIPFamilyPreferenceIPv6        WDSIPFamilyPreference = 0x06
	WDSIPFamilyPreferenceUnspecified WDSIPFamilyPreference = 0x08
)

type WDSIPPreference

type WDSIPPreference uint8

WDSIPPreference selects the address family requested when starting a WDS call. The zero value omits the optional QMI TLV and lets the modem use its default. QMI value 8 means unspecified; it is not an active dual-stack family value.

const (
	WDSIPPreferenceDefault     WDSIPPreference = 0
	WDSIPPreferenceIPv4        WDSIPPreference = 4
	WDSIPPreferenceIPv6        WDSIPPreference = 6
	WDSIPPreferenceUnspecified WDSIPPreference = 8
)

func (WDSIPPreference) String

func (p WDSIPPreference) String() string

type WDSIPSupportType

type WDSIPSupportType uint8

WDSIPSupportType identifies the IP family negotiated for LTE attach.

const (
	WDSIPSupportIPv4 WDSIPSupportType = iota
	WDSIPSupportIPv6
	WDSIPSupportIPv4v6
)

type WDSIndicationRegisterConfig

type WDSIndicationRegisterConfig struct {
	SuppressPacketService *bool
	ExtendedIPConfig      *bool
	ProfileChanges        *bool
}

type WDSIndicationRegisterRequest

type WDSIndicationRegisterRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDSIndicationRegisterConfig
}

func (WDSIndicationRegisterRequest) Request

type WDSLTEAttachPDNList

type WDSLTEAttachPDNList struct {
	Current      []uint16
	CurrentKnown bool
	Pending      []uint16
	PendingKnown bool
}

WDSLTEAttachPDNList contains active and pending ordered profile IDs.

type WDSLTEAttachParameters

type WDSLTEAttachParameters struct {
	APN                string
	APNKnown           bool
	IPSupport          WDSIPSupportType
	IPSupportKnown     bool
	OTAAttachPerformed bool
	OTAAttachKnown     bool
}

WDSLTEAttachParameters contains the network-selected initial attach APN.

type WDSLTEQoS

type WDSLTEQoS struct {
	ClassIdentifier           WDSQoSClassIdentifier
	GuaranteedDownlinkBitrate uint32
	MaximumDownlinkBitrate    uint32
	GuaranteedUplinkBitrate   uint32
	MaximumUplinkBitrate      uint32
}

WDSLTEQoS contains LTE profile QoS parameters in bits per second.

func (WDSLTEQoS) MarshalBinary

func (qos WDSLTEQoS) MarshalBinary() ([]byte, error)

MarshalBinary encodes LTE QoS parameters.

func (*WDSLTEQoS) UnmarshalBinary

func (qos *WDSLTEQoS) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes LTE QoS parameters.

type WDSLegacyBindMuxDataPortRequest

type WDSLegacyBindMuxDataPortRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	DataPort      WDSSIOPort
}

WDSLegacyBindMuxDataPortRequest encodes legacy QMI WDS Bind Data Port.

func (WDSLegacyBindMuxDataPortRequest) Request

Request binds the WDS client to a legacy SIO data port.

type WDSModifyProfileRequest

type WDSModifyProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profile       WDSProfileID
	PCSCFUsingPCO bool
}

func (WDSModifyProfileRequest) Request

func (r WDSModifyProfileRequest) Request() Request

type WDSMuxDataPort

type WDSMuxDataPort struct {
	Endpoint   *DataEndpoint
	MuxID      uint8
	Reversed   bool
	ClientType WDSClientType
}

WDSMuxDataPort describes the logical data channel assigned to a WDS client.

type WDSOperatorReservedPCO

type WDSOperatorReservedPCO struct {
	MCC                 uint16
	MNC                 uint16
	MNCIncludesPCSDigit bool
	AppSpecificInfo     []byte
	ContainerID         uint16
}

WDSOperatorReservedPCO contains one operator-provided protocol configuration option returned for an active packet-data call.

func (WDSOperatorReservedPCO) MarshalBinary

func (p WDSOperatorReservedPCO) MarshalBinary() ([]byte, error)

func (*WDSOperatorReservedPCO) UnmarshalBinary

func (p *WDSOperatorReservedPCO) UnmarshalBinary(value []byte) error

type WDSPDNThrottleAdditionalEntry

type WDSPDNThrottleAdditionalEntry struct {
	APN               string
	Emergency         bool
	BlockedOnAllPLMNs bool
	ThrottledPLMN     [3]byte
}

WDSPDNThrottleAdditionalEntry contains network context for a throttled APN.

type WDSPDNThrottleEntry

type WDSPDNThrottleEntry struct {
	APN                       string
	IPv4Throttled             bool
	IPv6Throttled             bool
	IPv4RemainingMilliseconds uint32
	IPv6RemainingMilliseconds uint32
}

WDSPDNThrottleEntry describes IPv4 and IPv6 throttling for one APN.

type WDSPDNThrottleExtendedEntry

type WDSPDNThrottleExtendedEntry struct {
	WDSPDNThrottleEntry
	NonIPThrottled             bool
	NonIPRemainingMilliseconds uint32
}

WDSPDNThrottleExtendedEntry adds non-IP throttling for one APN.

type WDSPDNThrottleInfo

type WDSPDNThrottleInfo struct {
	Entries            []WDSPDNThrottleEntry
	EntriesKnown       bool
	Extended           []WDSPDNThrottleExtendedEntry
	ExtendedKnown      bool
	Additional         []WDSPDNThrottleAdditionalEntry
	AdditionalKnown    bool
	TransactionID      uint16
	TransactionIDKnown bool
}

WDSPDNThrottleInfo contains each optional generation of throttle data.

type WDSPDPAccessControl

type WDSPDPAccessControl uint8

WDSPDPAccessControl identifies the access-control policy for a PDP context.

const (
	WDSPDPAccessControlNone WDSPDPAccessControl = iota
	WDSPDPAccessControlReject
	WDSPDPAccessControlPermission
)

type WDSPDPDataCompression

type WDSPDPDataCompression uint8

WDSPDPDataCompression identifies the data-compression mode stored in a WDS profile.

const (
	WDSPDPDataCompressionOff WDSPDPDataCompression = iota
	WDSPDPDataCompressionManufacturerPreferred
	WDSPDPDataCompressionV42bis
	WDSPDPDataCompressionV44
)

type WDSPDPHeaderCompression

type WDSPDPHeaderCompression uint8

WDSPDPHeaderCompression identifies the header-compression mode stored in a WDS profile.

const (
	WDSPDPHeaderCompressionOff WDSPDPHeaderCompression = iota
	WDSPDPHeaderCompressionManufacturerPreferred
	WDSPDPHeaderCompressionRFC1144
	WDSPDPHeaderCompressionRFC2507
	WDSPDPHeaderCompressionRFC3095
)

type WDSPDPType

type WDSPDPType uint8

WDSPDPType identifies the packet data protocol stored in a 3GPP profile.

const (
	WDSPDPTypeIPv4 WDSPDPType = iota
	WDSPDPTypePPP
	WDSPDPTypeIPv6
	WDSPDPTypeIPv4v6
	WDSPDPTypeNonIP
)

type WDSPacketServiceEvent

type WDSPacketServiceEvent struct {
	Status       WDSPacketServiceStatus
	RefreshError error
}

WDSPacketServiceEvent is one connection update. RefreshError reports a follow-up status/runtime-settings query error without hiding the indication.

type WDSPacketServiceStatus

type WDSPacketServiceStatus struct {
	ConnectionStatus          WDSConnectionStatus
	ReconfigurationRequired   bool
	IPFamily                  WDSIPFamilyPreference
	IPFamilyKnown             bool
	Technology                WDSTechnologyName
	TechnologyKnown           bool
	BearerID                  uint8
	BearerIDKnown             bool
	XLATCapable               bool
	XLATCapableKnown          bool
	ChangedIPConfiguration    WDSRuntimeSettingsMask
	CallEndReason             WDSCallEndReason
	CallEndReasonKnown        bool
	VerboseCallEndReason      WDSVerboseCallEndReason
	VerboseCallEndReasonKnown bool
	Runtime                   WDSRuntimeSettings
}

WDSPacketServiceStatus contains connection state and optional addressing information returned by Get Packet Service Status or its indication.

type WDSPacketStatistics

type WDSPacketStatistics struct {
	TxPackets            uint32
	TxPacketsKnown       bool
	RxPackets            uint32
	RxPacketsKnown       bool
	TxErrors             uint32
	TxErrorsKnown        bool
	RxErrors             uint32
	RxErrorsKnown        bool
	TxOverflows          uint32
	TxOverflowsKnown     bool
	RxOverflows          uint32
	RxOverflowsKnown     bool
	TxBytes              uint64
	TxBytesKnown         bool
	RxBytes              uint64
	RxBytesKnown         bool
	LastCallTxBytes      uint64
	LastCallTxBytesKnown bool
	LastCallRxBytes      uint64
	LastCallRxBytesKnown bool
	TxDropped            uint32
	TxDroppedKnown       bool
	RxDropped            uint32
	RxDroppedKnown       bool
}

WDSPacketStatistics contains counters accumulated by a WDS control point.

type WDSPreferredDataSystem

type WDSPreferredDataSystem uint32

WDSPreferredDataSystem identifies the modem's preferred legacy data system.

const (
	WDSPreferredDataSystemUnknown WDSPreferredDataSystem = iota
	WDSPreferredDataSystemCDMA1X
	WDSPreferredDataSystemEVDO
	WDSPreferredDataSystemGPRS
	WDSPreferredDataSystemWCDMA
	WDSPreferredDataSystemLTE
	WDSPreferredDataSystemTDSCDMA
)

type WDSProfile

type WDSProfile struct {
	ID   WDSProfileID
	Name string
}

WDSProfile is one entry returned by WDS Get Profile List.

type WDSProfileChangeEvent

type WDSProfileChangeEvent uint8

WDSProfileChangeEvent identifies the operation that changed a profile.

const (
	WDSProfileCreated WDSProfileChangeEvent = iota + 1
	WDSProfileDeleted
	WDSProfileModified
	WDSProfileSubscriptionChanged
)

type WDSProfileChangedIndication

type WDSProfileChangedIndication struct {
	Event WDSProfileEvent
}

WDSProfileChangedIndication is the raw profile-change indication payload.

func (*WDSProfileChangedIndication) UnmarshalTLVs

func (i *WDSProfileChangedIndication) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a QMI WDS Profile Changed indication.

type WDSProfileConfig

type WDSProfileConfig struct {
	Type           WDSProfileType
	Name           string
	APN            string
	PDPType        WDSPDPType
	Username       string
	Password       string
	Authentication WDSAuthenticationMask

	HeaderCompression *WDSPDPHeaderCompression
	DataCompression   *WDSPDPDataCompression
	PrimaryIPv4DNS    netip.Addr
	SecondaryIPv4DNS  netip.Addr
	UMTSRequestedQoS  *WDSUMTSGrantedQoS
	UMTSMinimumQoS    *WDSUMTSGrantedQoS
	GPRSRequestedQoS  *WDSGPRSGrantedQoS
	GPRSMinimumQoS    *WDSGPRSGrantedQoS

	IPv4AddressPreference netip.Addr
	PCSCFUsingPCO         *bool
	PDPAccessControl      *WDSPDPAccessControl
	PCSCFUsingDHCP        *bool
	IMCN                  *bool
	PDPContextNumber      *uint8
	PDPContextSecondary   *bool
	PDPContextPrimaryID   *uint8
	IPv6AddressPreference netip.Addr

	UMTSRequestedQoSWithSignaling *WDSUMTSQoSWithSignaling
	UMTSMinimumQoSWithSignaling   *WDSUMTSQoSWithSignaling
	PrimaryIPv6DNS                netip.Addr
	SecondaryIPv6DNS              netip.Addr
	AddressAllocationPreference   *WDSAddressAllocationPreference
	LTEQoS                        *WDSLTEQoS
	APNDisabled                   *bool
	RoamingDisallowed             *bool
	VLAN                          *WDSVLANRange
	APNType                       *WDSAPNTypeMask
}

WDSProfileConfig contains fields used when creating a persistent packet-data profile. Invalid IP addresses and nil pointer fields are omitted.

func (WDSProfileConfig) MarshalTLVs

func (cfg WDSProfileConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes a complete WDS profile configuration.

type WDSProfileEvent

type WDSProfileEvent struct {
	Profile WDSProfileID
	Change  WDSProfileChangeEvent
}

WDSProfileEvent describes one profile change indication.

type WDSProfileFamily

type WDSProfileFamily uint8

WDSProfileFamily identifies the profile family used by WDS default-profile operations.

const (
	WDSProfileFamilyEmbedded WDSProfileFamily = iota
	WDSProfileFamilyTethered
)

type WDSProfileID

type WDSProfileID struct {
	Type  WDSProfileType
	Index uint8
}

WDSProfileID identifies a stored modem data profile.

type WDSProfileSettings

type WDSProfileSettings struct {
	ID WDSProfileID

	Name          string
	NameKnown     bool
	APN           string
	APNKnown      bool
	PDPType       WDSPDPType
	PDPKnown      bool
	Username      string
	UsernameKnown bool
	Password      string
	PasswordKnown bool

	Authentication      WDSAuthenticationMask
	AuthenticationKnown bool

	HeaderCompression      WDSPDPHeaderCompression
	HeaderCompressionKnown bool
	DataCompression        WDSPDPDataCompression
	DataCompressionKnown   bool
	PrimaryIPv4DNS         netip.Addr
	PrimaryIPv4DNSKnown    bool
	SecondaryIPv4DNS       netip.Addr
	SecondaryIPv4DNSKnown  bool
	UMTSRequestedQoS       WDSUMTSGrantedQoS
	UMTSRequestedQoSKnown  bool
	UMTSMinimumQoS         WDSUMTSGrantedQoS
	UMTSMinimumQoSKnown    bool
	GPRSRequestedQoS       WDSGPRSGrantedQoS
	GPRSRequestedQoSKnown  bool
	GPRSMinimumQoS         WDSGPRSGrantedQoS
	GPRSMinimumQoSKnown    bool

	IPv4AddressPreference      netip.Addr
	IPv4AddressPreferenceKnown bool
	PCSCFUsingPCO              bool
	PCSCFUsingPCOKnown         bool
	PDPAccessControl           WDSPDPAccessControl
	PDPAccessControlKnown      bool
	PCSCFUsingDHCP             bool
	PCSCFUsingDHCPKnown        bool
	IMCN                       bool
	IMCNKnown                  bool
	PDPContextNumber           uint8
	PDPContextNumberKnown      bool
	PDPContextSecondary        bool
	PDPContextSecondaryKnown   bool
	PDPContextPrimaryID        uint8
	PDPContextPrimaryIDKnown   bool
	IPv6AddressPreference      netip.Addr
	IPv6AddressPreferenceKnown bool

	UMTSRequestedQoSWithSignaling      WDSUMTSQoSWithSignaling
	UMTSRequestedQoSWithSignalingKnown bool
	UMTSMinimumQoSWithSignaling        WDSUMTSQoSWithSignaling
	UMTSMinimumQoSWithSignalingKnown   bool
	PrimaryIPv6DNS                     netip.Addr
	PrimaryIPv6DNSKnown                bool
	SecondaryIPv6DNS                   netip.Addr
	SecondaryIPv6DNSKnown              bool
	AddressAllocationPreference        WDSAddressAllocationPreference
	AddressAllocationPreferenceKnown   bool
	LTEQoS                             WDSLTEQoS
	LTEQoSKnown                        bool
	APNDisabled                        bool
	APNDisabledKnown                   bool
	RoamingDisallowed                  bool
	RoamingDisallowedKnown             bool
	VLAN                               WDSVLANRange
	VLANKnown                          bool
	APNType                            WDSAPNTypeMask
	APNTypeKnown                       bool
	CLATEnabled                        bool
	CLATEnabledKnown                   bool
	IPv6PrefixDelegation               bool
	IPv6PrefixDelegationKnown          bool
}

WDSProfileSettings contains optional WDS profile fields. Each Known flag distinguishes an absent TLV from its type's zero value.

type WDSProfileType

type WDSProfileType uint8

WDSProfileType identifies a modem data-profile technology family.

const (
	WDSProfileType3GPP WDSProfileType = iota
	WDSProfileType3GPP2
	WDSProfileTypeEPC
)

type WDSProfileUpdate

type WDSProfileUpdate struct {
	Name           *string
	APN            *string
	PDPType        *WDSPDPType
	Username       *string
	Password       *string
	Authentication *WDSAuthenticationMask

	HeaderCompression *WDSPDPHeaderCompression
	DataCompression   *WDSPDPDataCompression
	PrimaryIPv4DNS    *netip.Addr
	SecondaryIPv4DNS  *netip.Addr
	UMTSRequestedQoS  *WDSUMTSGrantedQoS
	UMTSMinimumQoS    *WDSUMTSGrantedQoS
	GPRSRequestedQoS  *WDSGPRSGrantedQoS
	GPRSMinimumQoS    *WDSGPRSGrantedQoS

	IPv4AddressPreference *netip.Addr
	PCSCFUsingPCO         *bool
	PDPAccessControl      *WDSPDPAccessControl
	PCSCFUsingDHCP        *bool
	IMCN                  *bool
	PDPContextNumber      *uint8
	PDPContextSecondary   *bool
	PDPContextPrimaryID   *uint8
	IPv6AddressPreference *netip.Addr

	UMTSRequestedQoSWithSignaling *WDSUMTSQoSWithSignaling
	UMTSMinimumQoSWithSignaling   *WDSUMTSQoSWithSignaling
	PrimaryIPv6DNS                *netip.Addr
	SecondaryIPv6DNS              *netip.Addr
	AddressAllocationPreference   *WDSAddressAllocationPreference
	LTEQoS                        *WDSLTEQoS
	APNDisabled                   *bool
	RoamingDisallowed             *bool
	VLAN                          *WDSVLANRange
	APNType                       *WDSAPNTypeMask
	CLATEnabled                   *bool
	IPv6PrefixDelegation          *bool
}

WDSProfileUpdate contains optional changes for a stored profile. A nil field is left unchanged; a non-nil string may be empty to clear that field.

func (WDSProfileUpdate) MarshalTLVs

func (u WDSProfileUpdate) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes the selected WDS profile fields.

type WDSQoSClassIdentifier

type WDSQoSClassIdentifier uint8

WDSQoSClassIdentifier identifies an LTE QoS class.

const (
	WDSQoSClassNetworkAssigned WDSQoSClassIdentifier = iota
	WDSQoSClassGuaranteedBitrate1
	WDSQoSClassGuaranteedBitrate2
	WDSQoSClassGuaranteedBitrate3
	WDSQoSClassGuaranteedBitrate4
	WDSQoSClassNonGuaranteedBitrate5
	WDSQoSClassNonGuaranteedBitrate6
	WDSQoSClassNonGuaranteedBitrate7
	WDSQoSClassNonGuaranteedBitrate8
)

type WDSResetRequest

type WDSResetRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
}

WDSResetRequest encodes QMI WDS Reset.

func (WDSResetRequest) Request

func (r WDSResetRequest) Request() Request

Request converts the reset into a QMI request.

type WDSRuntimeSettings

type WDSRuntimeSettings struct {
	ProfileID           WDSProfileID
	ProfileIDKnown      bool
	ProfileName         string
	ProfileNameKnown    bool
	PDPType             WDSPDPType
	PDPTypeKnown        bool
	APN                 string
	APNKnown            bool
	Username            string
	UsernameKnown       bool
	Authentication      WDSAuthenticationMask
	AuthenticationKnown bool
	UMTSGrantedQoS      WDSUMTSGrantedQoS
	UMTSGrantedQoSKnown bool
	GPRSGrantedQoS      WDSGPRSGrantedQoS
	GPRSGrantedQoSKnown bool

	LocalIPv4                net.IP
	LocalIPv6                net.IP
	IPv4Gateway              net.IP
	IPv4SubnetMask           net.IP
	IPv6Gateway              net.IP
	IPv6PrefixLength         uint8
	DNS                      []net.IP
	MTU                      uint32
	PCSCFIPs                 []net.IP
	PCSCFUsingPCO            bool
	PCSCFUsingPCOKnown       bool
	PCSCFDomains             []string
	DomainNames              []string
	IPFamily                 WDSIPFamily
	IMCN                     bool
	ExtendedTechnology       WDSExtendedTechnologyPreference
	ExtendedTechnologyKnown  bool
	OperatorReservedPCO      WDSOperatorReservedPCO
	OperatorReservedPCOKnown bool
}

WDSRuntimeSettings holds active packet-data profile and network settings.

type WDSRuntimeSettingsMask

type WDSRuntimeSettingsMask uint32

WDSRuntimeSettingsMask selects fields returned by WDS Get Runtime Settings.

const (
	WDSRuntimeMaskProfileID WDSRuntimeSettingsMask = 1 << iota
	WDSRuntimeMaskProfileName
	WDSRuntimeMaskPDPType
	WDSRuntimeMaskAPN
	WDSRuntimeMaskDNSAddress
	WDSRuntimeMaskGrantedQoS
	WDSRuntimeMaskUsername
	WDSRuntimeMaskAuthentication
	WDSRuntimeMaskIPAddress
	WDSRuntimeMaskGatewayInfo
	WDSRuntimeMaskPCSCFUsingPCO
	WDSRuntimeMaskPCSCFServer
	WDSRuntimeMaskPCSCFDomainName
	WDSRuntimeMaskMTU
	WDSRuntimeMaskDomainName
	WDSRuntimeMaskIPFamily
	WDSRuntimeMaskIMCNFlag
	WDSRuntimeMaskExtendedTechnology
	WDSRuntimeMaskOperatorReservedPCO

	WDSRuntimeRequestedIMSSettings = WDSRuntimeMaskIPAddress |
		WDSRuntimeMaskPCSCFUsingPCO |
		WDSRuntimeMaskPCSCFServer |
		WDSRuntimeMaskIPFamily |
		WDSRuntimeMaskIMCNFlag

	WDSRuntimeRequestedNetworkSettings = WDSRuntimeMaskDNSAddress |
		WDSRuntimeMaskIPAddress |
		WDSRuntimeMaskGatewayInfo |
		WDSRuntimeMaskMTU |
		WDSRuntimeMaskIPFamily

	WDSRuntimeRequestedProfileSettings = WDSRuntimeMaskProfileID |
		WDSRuntimeMaskProfileName |
		WDSRuntimeMaskPDPType |
		WDSRuntimeMaskAPN |
		WDSRuntimeMaskUsername |
		WDSRuntimeMaskAuthentication |
		WDSRuntimeMaskExtendedTechnology
)

type WDSSIOPort

type WDSSIOPort uint16

WDSSIOPort identifies a legacy modem SIO data port.

const (
	WDSSIOPortA2MuxRMNET0 WDSSIOPort = 0x0E04 + iota
	WDSSIOPortA2MuxRMNET1
	WDSSIOPortA2MuxRMNET2
	WDSSIOPortA2MuxRMNET3
	WDSSIOPortA2MuxRMNET4
	WDSSIOPortA2MuxRMNET5
	WDSSIOPortA2MuxRMNET6
	WDSSIOPortA2MuxRMNET7
)

type WDSSetAutoconnectSettingsRequest

type WDSSetAutoconnectSettingsRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Settings      WDSAutoconnectSettings
}

WDSSetAutoconnectSettingsRequest encodes Set Autoconnect Settings.

func (WDSSetAutoconnectSettingsRequest) Request

Request validates and encodes the selected autoconnect policy.

type WDSSetDefaultProfileRequest

type WDSSetDefaultProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profile       WDSProfileID
	Family        WDSProfileFamily
}

func (WDSSetDefaultProfileRequest) Request

type WDSSetEventReportConfig

type WDSSetEventReportConfig struct {
	ChannelRate                 *bool
	TransferStatistics          *WDSTransferStatisticsConfig
	DataBearerTechnology        *bool
	DormancyStatus              *bool
	MIPStatus                   *uint8
	CurrentDataBearerTechnology *bool
	DataCallStatus              *bool
	PreferredDataSystem         *bool
	EVDOPageMonitorChange       *bool
	DataSystems                 *bool
	UplinkFlowControl           *bool
	LimitedDataSystems          *bool
	PDNFilterRemovals           *bool
	ExtendedDataBearer          *bool
}

WDSSetEventReportConfig selects legacy WDS event-report indications. Nil fields are omitted so callers do not overwrite settings they do not own.

func (WDSSetEventReportConfig) MarshalTLVs

func (c WDSSetEventReportConfig) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes WDS event-report fields.

type WDSSetEventReportRequest

type WDSSetEventReportRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Config        WDSSetEventReportConfig
}

WDSSetEventReportRequest encodes Set Event Report.

func (WDSSetEventReportRequest) Request

func (r WDSSetEventReportRequest) Request() (Request, error)

Request validates and converts the WDS event configuration to QMI TLVs.

type WDSSetLTEAttachPDNListRequest

type WDSSetLTEAttachPDNListRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profiles      []uint16
	Action        *WDSAttachPDNListAction
}

WDSSetLTEAttachPDNListRequest encodes Set LTE Attach PDN List.

func (WDSSetLTEAttachPDNListRequest) Request

Request validates and encodes the ordered profile list.

type WDSStartNetworkError

type WDSStartNetworkError struct {
	Err                     error
	CallEndReason           WDSCallEndReason
	HasCallEndReason        bool
	VerboseCallEndReason    WDSVerboseCallEndReason
	HasVerboseCallEndReason bool
}

WDSStartNetworkError keeps modem call-end details attached to a QMI failure.

func (*WDSStartNetworkError) Error

func (e *WDSStartNetworkError) Error() string

func (*WDSStartNetworkError) Is

func (e *WDSStartNetworkError) Is(target error) bool

Is reports network address-family restrictions while preserving Err through Unwrap.

func (*WDSStartNetworkError) Unwrap

func (e *WDSStartNetworkError) Unwrap() error

type WDSStartNetworkInterfaceRequest

type WDSStartNetworkInterfaceRequest struct {
	ClientID                       uint8
	TransactionID                  uint16
	Timeout                        time.Duration
	PrimaryDNSAddressPreference    *uint32
	SecondaryDNSAddressPreference  *uint32
	PrimaryNBNSAddressPreference   *uint32
	SecondaryNBNSAddressPreference *uint32
	APN                            string
	IPv4AddressPreference          *uint32
	Authentication                 WDSAuthenticationMask
	Username                       string
	Password                       string
	IPPreference                   WDSIPPreference
	TechnologyPreference           WDSTechnologyPreference
	ProfileIndex3GPP               uint8
	ProfileIndex3GPP2              uint8
	EnableAutoconnect              *bool
	ExtendedTechnologyPreference   *WDSExtendedTechnologyPreference
	CallType                       *WDSCallType
}

WDSStartNetworkInterfaceRequest encodes QMI WDS Start Network Interface.

func (WDSStartNetworkInterfaceRequest) Request

Request converts the high-level request fields into a QMI WDS request.

type WDSStartNetworkInterfaceResponse

type WDSStartNetworkInterfaceResponse struct {
	PacketDataHandle        uint32
	CallEndReason           WDSCallEndReason
	HasCallEndReason        bool
	VerboseCallEndReason    WDSVerboseCallEndReason
	HasVerboseCallEndReason bool
}

WDSStartNetworkInterfaceResponse is the parsed WDS start network response.

func (*WDSStartNetworkInterfaceResponse) UnmarshalTLVs

func (r *WDSStartNetworkInterfaceResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs reads the packet data handle returned by the modem.

type WDSStatisticsMask

type WDSStatisticsMask uint32

WDSStatisticsMask selects counters returned by Get Packet Statistics.

const (
	WDSStatisticsTxPackets   WDSStatisticsMask = 1 << 0
	WDSStatisticsRxPackets   WDSStatisticsMask = 1 << 1
	WDSStatisticsTxErrors    WDSStatisticsMask = 1 << 2
	WDSStatisticsRxErrors    WDSStatisticsMask = 1 << 3
	WDSStatisticsTxOverflows WDSStatisticsMask = 1 << 4
	WDSStatisticsRxOverflows WDSStatisticsMask = 1 << 5
	WDSStatisticsTxBytes     WDSStatisticsMask = 1 << 6
	WDSStatisticsRxBytes     WDSStatisticsMask = 1 << 7
	WDSStatisticsTxDropped   WDSStatisticsMask = 1 << 8
	WDSStatisticsRxDropped   WDSStatisticsMask = 1 << 9

	WDSStatisticsAll = WDSStatisticsTxPackets |
		WDSStatisticsRxPackets |
		WDSStatisticsTxErrors |
		WDSStatisticsRxErrors |
		WDSStatisticsTxOverflows |
		WDSStatisticsRxOverflows |
		WDSStatisticsTxBytes |
		WDSStatisticsRxBytes |
		WDSStatisticsTxDropped |
		WDSStatisticsRxDropped
)

type WDSStopNetworkInterfaceRequest

type WDSStopNetworkInterfaceRequest struct {
	ClientID         uint8
	TransactionID    uint16
	Timeout          time.Duration
	PacketDataHandle uint32
}

WDSStopNetworkInterfaceRequest encodes QMI WDS Stop Network Interface.

func (WDSStopNetworkInterfaceRequest) Request

Request converts the stop request into a QMI WDS request.

type WDSSubscription

type WDSSubscription uint32

WDSSubscription identifies the subscription bound to a WDS control point.

const (
	WDSSubscriptionDefault   WDSSubscription = 0x0000
	WDSSubscriptionPrimary   WDSSubscription = 0x0001
	WDSSubscriptionSecondary WDSSubscription = 0x0002
	WDSSubscriptionTertiary  WDSSubscription = 0x0003
	WDSSubscriptionDontCare  WDSSubscription = 0x00FF
)

type WDSTechnologyName

type WDSTechnologyName int16

WDSTechnologyName identifies the logical WDS technology carrying a call.

const (
	WDSTechnologyNameCDMA              WDSTechnologyName = -32767
	WDSTechnologyNameUMTS              WDSTechnologyName = -32764
	WDSTechnologyNameWLANLocalBreakout WDSTechnologyName = -32736
	WDSTechnologyNameIWLANS2B          WDSTechnologyName = -32735
	WDSTechnologyNameEPC               WDSTechnologyName = -30592
	WDSTechnologyNameEMBMS             WDSTechnologyName = -30590
	WDSTechnologyNameNonIP             WDSTechnologyName = -30588
	WDSTechnologyNameModemLinkLocal    WDSTechnologyName = -30584
)

type WDSTechnologyPreference

type WDSTechnologyPreference uint8

WDSTechnologyPreference is the WDS technology preference bit mask.

const (
	WDSTechnologyPreference3GPP WDSTechnologyPreference = 1 << iota
	WDSTechnologyPreference3GPP2
)

type WDSTransferStatisticsConfig

type WDSTransferStatisticsConfig struct {
	IntervalSeconds uint8
	Indicators      WDSStatisticsMask
}

WDSTransferStatisticsConfig controls periodic packet-counter indications.

type WDSUMTSGrantedQoS

type WDSUMTSGrantedQoS struct {
	TrafficClass              uint8
	MaximumUplinkBitrate      uint32
	MaximumDownlinkBitrate    uint32
	GuaranteedUplinkBitrate   uint32
	GuaranteedDownlinkBitrate uint32
	DeliveryOrder             uint8
	MaximumSDUSize            uint32
	SDUErrorRatio             uint8
	ResidualBitErrorRatio     uint8
	ErroneousSDUDelivery      uint8
	TransferDelay             uint32
	TrafficHandlingPriority   uint32
}

WDSUMTSGrantedQoS contains the QoS values granted to an active UMTS call.

func (WDSUMTSGrantedQoS) MarshalBinary

func (qos WDSUMTSGrantedQoS) MarshalBinary() ([]byte, error)

MarshalBinary encodes UMTS QoS parameters.

func (*WDSUMTSGrantedQoS) UnmarshalBinary

func (qos *WDSUMTSGrantedQoS) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes UMTS QoS parameters.

type WDSUMTSQoSWithSignaling

type WDSUMTSQoSWithSignaling struct {
	QoS                 WDSUMTSGrantedQoS
	SignalingIndication int8
}

WDSUMTSQoSWithSignaling combines UMTS QoS parameters with the signed signaling-indication value used by the QMI profile messages.

func (WDSUMTSQoSWithSignaling) MarshalBinary

func (qos WDSUMTSQoSWithSignaling) MarshalBinary() ([]byte, error)

MarshalBinary encodes UMTS QoS parameters with signaling indication.

func (*WDSUMTSQoSWithSignaling) UnmarshalBinary

func (qos *WDSUMTSQoSWithSignaling) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes UMTS QoS parameters with signaling indication.

type WDSUpdateProfileRequest

type WDSUpdateProfileRequest struct {
	ClientID      uint8
	TransactionID uint16
	Timeout       time.Duration
	Profile       WDSProfileID
	Update        WDSProfileUpdate
}

WDSUpdateProfileRequest encodes optional changes for a stored WDS profile.

func (WDSUpdateProfileRequest) Request

func (r WDSUpdateProfileRequest) Request() (Request, error)

type WDSVLANRange

type WDSVLANRange struct {
	Start uint16
	End   uint16
}

WDSVLANRange is the inclusive VLAN ID range assigned to a profile.

func (WDSVLANRange) MarshalBinary

func (v WDSVLANRange) MarshalBinary() ([]byte, error)

MarshalBinary encodes an inclusive VLAN range.

func (*WDSVLANRange) UnmarshalBinary

func (v *WDSVLANRange) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes an inclusive VLAN range.

type WDSVerboseCallEndReason

type WDSVerboseCallEndReason struct {
	Type   WDSVerboseCallEndReasonType
	Reason int16
}

WDSVerboseCallEndReason is the structured WDS call failure reason.

func (WDSVerboseCallEndReason) String

func (r WDSVerboseCallEndReason) String() string

type WDSVerboseCallEndReasonType

type WDSVerboseCallEndReasonType uint16

WDSVerboseCallEndReasonType selects the namespace for a verbose WDS call end reason.

const (
	WDSVerboseCallEndReasonTypeMIP      WDSVerboseCallEndReasonType = 1
	WDSVerboseCallEndReasonTypeInternal WDSVerboseCallEndReasonType = 2
	WDSVerboseCallEndReasonTypeCM       WDSVerboseCallEndReasonType = 3
	WDSVerboseCallEndReasonType3GPP     WDSVerboseCallEndReasonType = 6
	WDSVerboseCallEndReasonTypePPP      WDSVerboseCallEndReasonType = 7
	WDSVerboseCallEndReasonTypeEHRPD    WDSVerboseCallEndReasonType = 8
	WDSVerboseCallEndReasonTypeIPv6     WDSVerboseCallEndReasonType = 9
)

func (WDSVerboseCallEndReasonType) String

type WMS3GPP2BroadcastChannel

type WMS3GPP2BroadcastChannel struct {
	ServiceCategory WMSServiceCategory
	Language        WMSLanguage
	Selected        bool
}

WMS3GPP2BroadcastChannel selects one 3GPP2 category and language pair.

func (WMS3GPP2BroadcastChannel) MarshalBinary

func (c WMS3GPP2BroadcastChannel) MarshalBinary() ([]byte, error)

MarshalBinary encodes one 3GPP2 broadcast category.

func (*WMS3GPP2BroadcastChannel) UnmarshalBinary

func (c *WMS3GPP2BroadcastChannel) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes one 3GPP2 broadcast category.

type WMS3GPPBroadcastChannel

type WMS3GPPBroadcastChannel struct {
	Start    uint16
	End      uint16
	Selected bool
}

WMS3GPPBroadcastChannel selects a range of 3GPP cell-broadcast message IDs.

func (WMS3GPPBroadcastChannel) MarshalBinary

func (c WMS3GPPBroadcastChannel) MarshalBinary() ([]byte, error)

MarshalBinary encodes one 3GPP broadcast channel range.

func (*WMS3GPPBroadcastChannel) UnmarshalBinary

func (c *WMS3GPPBroadcastChannel) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes one 3GPP broadcast channel range.

type WMSACK3GPP2Failure

type WMSACK3GPP2Failure struct {
	ErrorClass uint8
	CauseCode  uint8
}

WMSACK3GPP2Failure contains the CDMA failure information sent in a negative ACK.

func (WMSACK3GPP2Failure) MarshalBinary

func (f WMSACK3GPP2Failure) MarshalBinary() ([]byte, error)

MarshalBinary encodes a CDMA negative-ACK failure.

func (*WMSACK3GPP2Failure) UnmarshalBinary

func (f *WMSACK3GPP2Failure) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a CDMA negative-ACK failure.

type WMSACK3GPPFailure

type WMSACK3GPPFailure struct {
	RPCause uint8
	TPCause uint8
}

WMSACK3GPPFailure contains the GSM/UMTS failure information sent in a negative ACK.

func (WMSACK3GPPFailure) MarshalBinary

func (f WMSACK3GPPFailure) MarshalBinary() ([]byte, error)

MarshalBinary encodes a 3GPP negative-ACK failure.

func (*WMSACK3GPPFailure) UnmarshalBinary

func (f *WMSACK3GPPFailure) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a 3GPP negative-ACK failure.

type WMSACKError

type WMSACKError struct {
	Err               error
	FailureCause      WMSACKFailureCause
	FailureCauseKnown bool
}

WMSACKError preserves the QMI error and the optional modem ACK failure cause.

func (*WMSACKError) Error

func (e *WMSACKError) Error() string

func (*WMSACKError) Unwrap

func (e *WMSACKError) Unwrap() error

type WMSACKFailureCause

type WMSACKFailureCause uint8

WMSACKFailureCause explains why the modem could not deliver a network ACK.

const (
	WMSACKFailureNoNetworkResponse WMSACKFailureCause = iota
	WMSACKFailureNetworkReleasedLink
	WMSACKFailureNotSent
)

type WMSACKIndicator

type WMSACKIndicator uint8

WMSACKIndicator reports whether a transfer-route SMS requires an ACK.

const (
	WMSACKRequired WMSACKIndicator = iota
	WMSACKNotRequired
)

type WMSACKRequest

type WMSACKRequest struct {
	TransactionID uint32
	Protocol      WMSMessageProtocol
	Success       bool
	Failure3GPP2  *WMSACK3GPP2Failure
	Failure3GPP   *WMSACK3GPPFailure
	SMSOnIMS      *bool
}

WMSACKRequest acknowledges a transfer-route SMS.

type WMSBroadcastActivation

type WMSBroadcastActivation struct {
	Mode        WMSMessageMode
	Active      bool
	ActivateAll *bool
}

WMSBroadcastActivation controls reception of broadcast SMS messages.

type WMSBroadcastChannelConfig

type WMSBroadcastChannelConfig struct {
	Mode          WMSMessageMode
	Channels3GPP  []WMS3GPPBroadcastChannel
	Channels3GPP2 []WMS3GPP2BroadcastChannel
}

WMSBroadcastChannelConfig contains the channel filters for one message mode. A GW configuration uses Channels3GPP; a CDMA configuration uses Channels3GPP2.

type WMSBroadcastConfig

type WMSBroadcastConfig struct {
	Active        bool
	Mode          WMSMessageMode
	Channels3GPP  []WMS3GPPBroadcastChannel
	Channels3GPP2 []WMS3GPP2BroadcastChannel
	ConfigKnown   bool
}

WMSBroadcastConfig contains the current activation and channel filters.

func (*WMSBroadcastConfig) UnmarshalTLVs

func (c *WMSBroadcastConfig) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a broadcast-configuration indication.

type WMSCDMAForceOnDC

type WMSCDMAForceOnDC struct {
	Force         bool
	ServiceOption WMSCDMAServiceOption
}

WMSCDMAForceOnDC controls forced CDMA SMS delivery on a dedicated channel.

func (WMSCDMAForceOnDC) MarshalBinary

func (f WMSCDMAForceOnDC) MarshalBinary() ([]byte, error)

MarshalBinary encodes the force-on-dedicated-channel aggregate.

func (*WMSCDMAForceOnDC) UnmarshalBinary

func (f *WMSCDMAForceOnDC) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes the force-on-dedicated-channel aggregate.

type WMSCDMAServiceOption

type WMSCDMAServiceOption uint8

WMSCDMAServiceOption selects the CDMA service option used for SMS delivery.

const (
	WMSCDMAServiceOptionAuto WMSCDMAServiceOption = 0x00
	WMSCDMAServiceOption6    WMSCDMAServiceOption = 0x06
	WMSCDMAServiceOption14   WMSCDMAServiceOption = 0x0E
)

type WMSCallStatus

type WMSCallStatus uint8

WMSCallStatus identifies the current SMS call state.

const (
	WMSCallIncoming WMSCallStatus = iota
	WMSCallConnected
	WMSCallAborted
	WMSCallDisconnected
	WMSCallConnecting
)

func (*WMSCallStatus) UnmarshalTLVs

func (s *WMSCallStatus) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a call-status indication.

type WMSDeleteRequest

type WMSDeleteRequest struct {
	Storage     WMSStorage
	Index       *uint32
	Tag         *WMSTag
	MessageMode *WMSMessageMode
}

WMSDeleteRequest deletes one or more stored messages. A nil Index deletes every message matching the remaining selectors.

type WMSDeliveryFailureCause

type WMSDeliveryFailureCause uint8

WMSDeliveryFailureCause identifies the condition that blocked SMS delivery.

const (
	WMSDeliveryBlockedByCallControl WMSDeliveryFailureCause = iota
	WMSDeliveryBlockedByVoiceOrDataCall
)

type WMSDeliveryFailureType

type WMSDeliveryFailureType uint8

WMSDeliveryFailureType classifies a temporary or permanent send failure.

const (
	WMSDeliveryFailureTemporary WMSDeliveryFailureType = iota
	WMSDeliveryFailurePermanent
)

type WMSDomainPreference

type WMSDomainPreference uint8

WMSDomainPreference selects the circuit-switched or packet-switched domain used for 3GPP SMS.

const (
	WMSDomainPreferenceCS WMSDomainPreference = iota
	WMSDomainPreferencePS
	WMSDomainPreferenceCSOnly
	WMSDomainPreferencePSOnly
)

type WMSETWSNotificationType

type WMSETWSNotificationType uint8

WMSETWSNotificationType identifies an ETWS primary or secondary notification.

const (
	WMSETWSNotificationPrimary WMSETWSNotificationType = iota
	WMSETWSNotificationSecondaryGSM
	WMSETWSNotificationSecondaryUMTS
)

type WMSEventReportConfig

type WMSEventReportConfig struct {
	MTMessages       *bool
	CallControlInfo  *bool
	MessageWaiting   *bool
	LowerLayerErrors *bool
}

WMSEventReportConfig selects WMS event-report indications. Nil fields are omitted so callers can update only the settings they own.

type WMSGSMCauseInfo

type WMSGSMCauseInfo struct {
	RPCause uint16
	TPCause uint8
}

WMSGSMCauseInfo contains the RP and TP causes returned by a 3GPP network.

func (WMSGSMCauseInfo) MarshalBinary

func (c WMSGSMCauseInfo) MarshalBinary() ([]byte, error)

func (*WMSGSMCauseInfo) UnmarshalBinary

func (c *WMSGSMCauseInfo) UnmarshalBinary(value []byte) error

type WMSIncomingMessage

type WMSIncomingMessage struct {
	Stored            bool
	Reference         WMSMessageReference
	Tag               WMSTag
	Format            WMSMessageFormat
	Data              []byte
	ACKIndicator      WMSACKIndicator
	ACKIndicatorKnown bool
	TransactionID     uint32
	SMSOnIMS          bool
	SMSOnIMSKnown     bool
	MessageMode       WMSMessageMode
	MessageModeKnown  bool
	ETWSNotification  WMSETWSNotificationType
	ETWSData          []byte
	ETWSKnown         bool
	ETWSPLMN          WMSPLMN
	ETWSPLMNKnown     bool
	SMSCAddress       string
	SMSCAddressKnown  bool
	ReadError         error
}

WMSIncomingMessage is delivered for WMS Event Report MT-message events. Stored messages are read before delivery; ReadError preserves the original storage reference when the follow-up read fails.

func (*WMSIncomingMessage) UnmarshalTLVs

func (m *WMSIncomingMessage) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a WMS event-report MT or ETWS message.

type WMSIndicationConfig

type WMSIndicationConfig struct {
	TransportLayer   *bool
	TransportNetwork *bool
	CallStatus       *bool
	ServiceReady     *bool
	BroadcastConfig  *bool
	TransportMWI     *bool
	SMSCAddress      *bool
	MemoryFull       *bool
}

WMSIndicationConfig selects WMS status indications. Nil fields are omitted, allowing callers to change only the registrations they own.

type WMSIndicationState

type WMSIndicationState struct {
	TransportLayer        bool
	TransportLayerKnown   bool
	TransportNetwork      bool
	TransportNetworkKnown bool
	CallStatus            bool
	CallStatusKnown       bool
	ServiceReady          bool
	ServiceReadyKnown     bool
	BroadcastConfig       bool
	BroadcastConfigKnown  bool
	TransportMWI          bool
	TransportMWIKnown     bool
	SIMReady              bool
	SIMReadyKnown         bool
	SMSCAddress           bool
	SMSCAddressKnown      bool
	MemoryFull            bool
	MemoryFullKnown       bool
}

WMSIndicationState contains the optional registration state returned by the modem for each general WMS indication.

func (*WMSIndicationState) UnmarshalTLVs

func (s *WMSIndicationState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the WMS indication-registration response.

type WMSLanguage

type WMSLanguage uint16

WMSLanguage identifies the language of a 3GPP2 broadcast category.

const (
	WMSLanguageUnknown WMSLanguage = iota
	WMSLanguageEnglish
	WMSLanguageFrench
	WMSLanguageSpanish
	WMSLanguageJapanese
	WMSLanguageKorean
	WMSLanguageChinese
	WMSLanguageHebrew
)

type WMSListRequest

type WMSListRequest struct {
	Storage     WMSStorage
	Tag         *WMSTag
	MessageMode *WMSMessageMode
}

WMSListRequest selects messages in one modem store.

type WMSListedMessage

type WMSListedMessage struct {
	Reference WMSMessageReference
	Tag       WMSTag
}

WMSListedMessage is one entry returned by WMS List Messages.

type WMSMemoryFullState

type WMSMemoryFullState struct {
	Storage     WMSStorage
	MessageMode WMSMessageMode
}

WMSMemoryFullState identifies the store and message family that is full.

func (*WMSMemoryFullState) UnmarshalTLVs

func (s *WMSMemoryFullState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a memory-full indication.

type WMSMessageClass

type WMSMessageClass uint8

WMSMessageClass identifies an SMS message class.

const (
	WMSMessageClass0 WMSMessageClass = iota
	WMSMessageClass1
	WMSMessageClass2
	WMSMessageClass3
	WMSMessageClassNone
	WMSMessageClassCDMA
)

type WMSMessageFormat

type WMSMessageFormat uint8

WMSMessageFormat identifies the over-the-air representation of an SMS.

const (
	WMSMessageFormatCDMA           WMSMessageFormat = 0x00
	WMSMessageFormatGWPointToPoint WMSMessageFormat = 0x06
	WMSMessageFormatGWBroadcast    WMSMessageFormat = 0x07
	WMSMessageFormatMWI            WMSMessageFormat = 0x08
)

type WMSMessageMode

type WMSMessageMode uint8

WMSMessageMode selects the CDMA or 3GPP messaging domain.

const (
	WMSMessageModeCDMA WMSMessageMode = iota
	WMSMessageModeGW
)

type WMSMessageProtocol

type WMSMessageProtocol uint8

WMSMessageProtocol identifies the network protocol used for an SMS ACK.

const (
	WMSMessageProtocolCDMA WMSMessageProtocol = iota
	WMSMessageProtocolWCDMA
)

type WMSMessageReference

type WMSMessageReference struct {
	Storage WMSStorage
	Index   uint32
}

WMSMessageReference identifies one SMS stored by the modem.

func (WMSMessageReference) MarshalBinary

func (r WMSMessageReference) MarshalBinary() ([]byte, error)

MarshalBinary encodes a modem SMS storage reference.

func (*WMSMessageReference) UnmarshalBinary

func (r *WMSMessageReference) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes a modem SMS storage reference.

type WMSMessageType

type WMSMessageType uint8

WMSMessageType identifies the message type matched by an incoming route.

const WMSMessageTypePointToPoint WMSMessageType = 0

type WMSModifyTagRequest

type WMSModifyTagRequest struct {
	Reference   WMSMessageReference
	Tag         WMSTag
	MessageMode *WMSMessageMode
}

WMSModifyTagRequest changes the state tag on a stored message.

type WMSPLMN

type WMSPLMN struct {
	MCC uint16
	MNC uint16
}

WMSPLMN identifies the network associated with an ETWS notification.

type WMSRawMessage

type WMSRawMessage struct {
	Tag    WMSTag
	Format WMSMessageFormat
	Data   []byte
}

WMSRawMessage contains a raw CDMA or 3GPP SMS PDU.

func (WMSRawMessage) MarshalBinary

func (m WMSRawMessage) MarshalBinary() ([]byte, error)

MarshalBinary encodes the raw-message aggregate returned by QMI WMS.

func (*WMSRawMessage) UnmarshalBinary

func (m *WMSRawMessage) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes the raw-message aggregate returned by QMI WMS.

type WMSReadRequest

type WMSReadRequest struct {
	Reference   WMSMessageReference
	MessageMode *WMSMessageMode
	SMSOnIMS    *bool
}

WMSReadRequest selects one stored raw SMS.

type WMSReadyStatus

type WMSReadyStatus uint32

WMSReadyStatus identifies which SMS families are ready.

const (
	WMSReadyNone WMSReadyStatus = iota
	WMSReady3GPP
	WMSReady3GPP2
	WMSReady3GPPAnd3GPP2
	WMSReady3GPPLimited
	WMSReady3GPP2Limited
	WMSReady3GPPLimitedAnd3GPP2Limited
	WMSReady3GPPLimitedAnd3GPP2
	WMSReady3GPPAnd3GPP2Limited
)

type WMSReceiptAction

type WMSReceiptAction uint8

WMSReceiptAction selects how the modem handles a matching incoming SMS.

const (
	WMSReceiptDiscard WMSReceiptAction = iota
	WMSReceiptStoreAndNotify
	WMSReceiptTransferOnly
	WMSReceiptTransferAndACK
)

type WMSRejectCause

type WMSRejectCause struct {
	Type  uint32
	Value uint8
}

WMSRejectCause contains a lower-layer reject type and cause value.

func (WMSRejectCause) MarshalBinary

func (c WMSRejectCause) MarshalBinary() ([]byte, error)

func (*WMSRejectCause) UnmarshalBinary

func (c *WMSRejectCause) UnmarshalBinary(value []byte) error

type WMSRoute

type WMSRoute struct {
	MessageType  WMSMessageType
	MessageClass WMSMessageClass
	Storage      WMSStorage
	Action       WMSReceiptAction
}

WMSRoute describes one incoming SMS routing rule.

func (WMSRoute) MarshalBinary

func (r WMSRoute) MarshalBinary() ([]byte, error)

MarshalBinary encodes one incoming SMS routing rule.

func (*WMSRoute) UnmarshalBinary

func (r *WMSRoute) UnmarshalBinary(value []byte) error

UnmarshalBinary decodes one incoming SMS routing rule.

type WMSRoutes

type WMSRoutes struct {
	Routes               []WMSRoute
	StatusReportTransfer WMSStatusReportTransfer
	StatusReportKnown    bool
}

WMSRoutes contains the modem's incoming SMS routing configuration.

func (WMSRoutes) MarshalTLVs

func (r WMSRoutes) MarshalTLVs() (tlv.TLVs, error)

MarshalTLVs encodes the WMS incoming-message routing configuration.

func (*WMSRoutes) UnmarshalTLVs

func (r *WMSRoutes) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the WMS incoming-message routing configuration.

type WMSSIMReadyStatus

type WMSSIMReadyStatus uint64

WMSSIMReadyStatus is a bitmask of SIM-backed messaging families that are ready.

const (
	WMSSIMReady3GPP  WMSSIMReadyStatus = 1 << 0
	WMSSIMReady3GPP2 WMSSIMReadyStatus = 1 << 1
)

type WMSSMSCAddress

type WMSSMSCAddress struct {
	Type   string
	Digits string
}

WMSSMSCAddress is the SMS service-center address configured in EF-SMSP.

func (WMSSMSCAddress) MarshalBinary

func (a WMSSMSCAddress) MarshalBinary() ([]byte, error)

func (*WMSSMSCAddress) UnmarshalBinary

func (a *WMSSMSCAddress) UnmarshalBinary(value []byte) error

func (*WMSSMSCAddress) UnmarshalTLVs

func (a *WMSSMSCAddress) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses an SMSC-address indication.

type WMSSendFromStoreRequest

type WMSSendFromStoreRequest struct {
	Reference   WMSMessageReference
	MessageMode WMSMessageMode
	SMSOnIMS    *bool
}

WMSSendFromStoreRequest selects a stored message for transmission.

type WMSSendOptions

type WMSSendOptions struct {
	ForceOnDC      *WMSCDMAForceOnDC
	SMSOnIMS       *bool
	FollowOnDC     bool
	LinkTimer      *uint8
	RetryMessageID *uint32
	CommandTPDU    *bool
}

WMSSendOptions controls optional WMS Raw Send fields.

type WMSSendResult

type WMSSendResult struct {
	MessageID            uint16
	MessageIDKnown       bool
	CauseCode            uint16
	CauseCodeKnown       bool
	ErrorClass           uint8
	ErrorClassKnown      bool
	GSMCause             WMSGSMCauseInfo
	GSMCauseKnown        bool
	DeliveryFailure      WMSDeliveryFailureType
	DeliveryFailureKnown bool
	DeliveryCause        WMSDeliveryFailureCause
	DeliveryCauseKnown   bool
	CallControlAlphaID   []byte
	CallControlKnown     bool
	RejectCause          WMSRejectCause
	RejectCauseKnown     bool
	IMSRejectCause       uint16
	IMSRejectCauseKnown  bool
}

WMSSendResult contains the modem-assigned message ID and optional rejection details returned by WMS Raw Send.

type WMSServiceCategory

type WMSServiceCategory uint16

WMSServiceCategory identifies a 3GPP2 broadcast service category.

const (
	WMSServiceCategoryUnknown WMSServiceCategory = iota
	WMSServiceCategoryEmergencyBroadcast
	WMSServiceCategoryAdministrative
	WMSServiceCategoryMaintenance
	WMSServiceCategoryGeneralNewsLocal
	WMSServiceCategoryGeneralNewsRegional
	WMSServiceCategoryGeneralNewsNational
	WMSServiceCategoryGeneralNewsInternational
	WMSServiceCategoryBusinessNewsLocal
	WMSServiceCategoryBusinessNewsRegional
	WMSServiceCategoryBusinessNewsNational
	WMSServiceCategoryBusinessNewsInternational
	WMSServiceCategorySportsNewsLocal
	WMSServiceCategorySportsNewsRegional
	WMSServiceCategorySportsNewsNational
	WMSServiceCategorySportsNewsInternational
	WMSServiceCategoryEntertainmentNewsLocal
	WMSServiceCategoryEntertainmentNewsRegional
	WMSServiceCategoryEntertainmentNewsNational
	WMSServiceCategoryEntertainmentNewsInternational
	WMSServiceCategoryLocalWeather
	WMSServiceCategoryTrafficReports
	WMSServiceCategoryLocalFlightSchedules
	WMSServiceCategoryRestaurants
	WMSServiceCategoryLodgings
	WMSServiceCategoryRetailDirectory
	WMSServiceCategoryAdvertisements
	WMSServiceCategoryStockQuotes
	WMSServiceCategoryEmploymentOpportunities
	WMSServiceCategoryMedical
	WMSServiceCategoryTechnologyNews
	WMSServiceCategoryMultiple
	WMSServiceCategoryCATPT
)
const (
	WMSServiceCategoryPresidentialAlert WMSServiceCategory = 0x1000 + iota
	WMSServiceCategoryExtremeThreat
	WMSServiceCategorySevereThreat
	WMSServiceCategoryAMBERAlert
	WMSServiceCategoryTestMessage
)

type WMSServiceReadyState

type WMSServiceReadyState struct {
	EventsRegistered      bool
	EventsRegisteredKnown bool
	Status                WMSReadyStatus
	StatusKnown           bool
	SIMEventsRegistered   bool
	SIMEventsKnown        bool
	SIMStatus             WMSSIMReadyStatus
	SIMStatusKnown        bool
}

WMSServiceReadyState contains service-ready registration and status fields.

func (*WMSServiceReadyState) UnmarshalTLVs

func (s *WMSServiceReadyState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a service-ready indication.

type WMSStatusReportTransfer

type WMSStatusReportTransfer uint8

WMSStatusReportTransfer selects where SMS status reports are delivered.

const (
	WMSStatusReportToSIM WMSStatusReportTransfer = iota
	WMSStatusReportToClient
)

type WMSStorage

type WMSStorage uint8

WMSStorage identifies a modem SMS store.

const (
	WMSStorageUIM WMSStorage = iota
	WMSStorageNV
)

type WMSStoreCapacityInfo

type WMSStoreCapacityInfo struct {
	Maximum   uint32
	Free      uint32
	FreeKnown bool
}

WMSStoreCapacityInfo contains the maximum and optional free slot counts.

type WMSStoreCapacityRequest

type WMSStoreCapacityRequest struct {
	Storage     WMSStorage
	MessageMode *WMSMessageMode
}

WMSStoreCapacityRequest selects the SMS store whose capacity is queried.

type WMSStoreCapacityResponse

type WMSStoreCapacityResponse struct {
	Capacity WMSStoreCapacityInfo
}

WMSStoreCapacityResponse is the parsed Get Store Max Size response.

func (*WMSStoreCapacityResponse) UnmarshalTLVs

func (r *WMSStoreCapacityResponse) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses the mandatory maximum and optional free slot counts.

type WMSSubscription

type WMSSubscription uint8

WMSSubscription identifies the subscription bound to a WMS control point.

const (
	WMSSubscriptionPrimary WMSSubscription = iota
	WMSSubscriptionSecondary
	WMSSubscriptionTertiary
)

type WMSTag

type WMSTag uint8

WMSTag describes the read and delivery state of a stored SMS.

const (
	WMSTagMTRead WMSTag = iota
	WMSTagMTNotRead
	WMSTagMOSent
	WMSTagMONotSent
)

type WMSTransportCapability

type WMSTransportCapability uint8

WMSTransportCapability identifies the SMS family supported by a transport.

const (
	WMSTransportCapabilityCDMA WMSTransportCapability = iota
	WMSTransportCapabilityGW
)

type WMSTransportLayerState

type WMSTransportLayerState struct {
	Registered      bool
	RegisteredKnown bool
	Type            WMSTransportType
	Capability      WMSTransportCapability
	InfoKnown       bool
}

WMSTransportLayerState contains optional IMS transport registration and capability information.

func (*WMSTransportLayerState) UnmarshalTLVs

func (s *WMSTransportLayerState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a transport-layer indication.

type WMSTransportNetworkState

type WMSTransportNetworkState struct {
	Status WMSTransportNetworkStatus
	Known  bool
}

WMSTransportNetworkState contains an optional network registration status.

func (*WMSTransportNetworkState) UnmarshalTLVs

func (s *WMSTransportNetworkState) UnmarshalTLVs(tlvs tlv.TLVs) error

UnmarshalTLVs parses a transport-network indication.

type WMSTransportNetworkStatus

type WMSTransportNetworkStatus uint8

WMSTransportNetworkStatus describes SMS transport network registration.

const (
	WMSTransportNetworkNoService WMSTransportNetworkStatus = iota
	WMSTransportNetworkInProgress
	WMSTransportNetworkFailed
	WMSTransportNetworkLimitedService
	WMSTransportNetworkFullService
)

type WMSTransportType

type WMSTransportType uint8

WMSTransportType identifies the SMS transport implementation.

const (
	WMSTransportIMS WMSTransportType = iota
)

type WMSWriteRequest

type WMSWriteRequest struct {
	Storage WMSStorage
	Format  WMSMessageFormat
	Data    []byte
	Tag     *WMSTag
}

WMSWriteRequest stores one raw SMS on the UIM or in modem NV storage.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL