The present application for patent claims priority to Chinese Patent Application No. 201010126141.X, filed Mar. 2, 2010, which is hereby expressly incorporated by reference herein.
1. Field
The present application relates generally to wireless communication, and more specifically to systems and methods for incrementally updating a preferred roaming list (PRL).
2. Background
Wireless communication systems are widely deployed to provide various types of communication (e.g., voice, data, multimedia services, etc.) to multiple users. As the demand for high-rate and multimedia data services rapidly grows, there lies a challenge to implement efficient and robust communication systems with enhanced performance.
Within wireless communication systems, mobile devices typically are associated with a particular wireless carrier (a home carrier). The home carrier may provide access nodes in a home area to allow the mobile devices to communicate within a communication network. In some instances, however, the mobile device may move outside the home area where the home carrier provides wireless access. In such areas, another carrier may provide wireless access through access nodes controlled by the other carrier. Accordingly, the mobile device may “roam” or attempt to connect to the access nodes controlled by the other carrier. In order to aid the mobile device in finding such access points controlled by the other carrier, the wireless device may access a preferred roaming list (PRL). The PRL may be a database that resides on a removable user identity module (RUIM) card on the mobile device. The PRL indicates which bands, sub bands and service provider identifiers will be scanned and in what priority order to find access nodes controlled by carriers other than the home carrier.
The PRL may be updated regularly such as depending on the area the mobile device is in, and changes to the wireless networks of different carriers. Therefore, it is desirable to have systems and methods that allow for efficient updating of the PRL on a mobile device.
The systems, methods, and devices of the invention each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention as expressed by the claims which follow, some features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description” one will understand how the features of this invention provide advantages that include allowing for incremental update of a preferred roaming list (PRL) on a mobile device.
One embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises a processor. The processor is configured to identify a data location in the preferred roaming list. The processor is further configured to identify a type of operation to perform with respect to the identified data location. The processor is further configured to generate data indicative of an updated portion of the preferred roaming list. The apparatus further comprises a transmitter configured to transmit a message indicative of the data location, the type of operation, and the data to a mobile device.
Another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises a receiver configured to receive a data structure. The data structure comprises an indicator of a data location to modify the preferred roaming list. The data structure further comprises an indicator of a type of operation to perform. The data structure further comprises an updated portion of the preferred roaming list. The apparatus further comprises a processor configured to modify the preferred roaming list based on the data structure.
Yet another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises a processor configured to generate a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The apparatus further comprises a transmitter configured to transmit the message to a mobile device.
Another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises a receiver configured to receive a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The apparatus further comprises a processor configured to modify the preferred roaming list based on the one or more operators.
Yet another embodiment of the disclosure provides a method for updating a preferred roaming list in a mobile device. The method comprises identifying a data location in the preferred roaming list. The method further comprises identifying a type of operation to perform with respect to the identified data location. The method further comprises generating data indicative of an updated portion of the preferred roaming list. The method further comprises transmitting a message indicative of the data location, the type of operation, and the data to a mobile device.
Another embodiment of the disclosure provides a method for updating a preferred roaming list in a mobile device. The method comprises receiving a data structure. The data structure comprises an indicator of a data location to modify the preferred roaming list. The data structure further comprises an indicator of a type of operation to perform. The data structure further comprises an updated portion of the preferred roaming list. The method further comprises modifying the preferred roaming list based on the data structure.
Yet another embodiment of the disclosure provides a method for updating a preferred roaming list in a mobile device. The method comprises generating a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The method further comprises transmitting the message to a mobile device.
Another embodiment of the disclosure provides a method for updating a preferred roaming list in a mobile device. The method comprises receiving a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The method further comprises modifying the preferred roaming list based on the one or more operators.
Yet another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises means for identifying a data location in the preferred roaming list. The apparatus further comprises means for identifying a type of operation to perform with respect to the identified data location. The apparatus further comprises means for generating data indicative of an updated portion of the preferred roaming list. The apparatus further comprises means for transmitting a message indicative of the data location, the type of operation, and the data to a mobile device.
Another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises means for receiving a data structure. The data structure comprises an indicator of a data location to modify the preferred roaming list. The data structure further comprises an indicator of a type of operation to perform. The data structure further comprises an updated portion of the preferred roaming list. The apparatus further comprises means for modifying the preferred roaming list based on the data structure.
Yet another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises means for generating a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The apparatus further comprises means for transmitting the message to a mobile device.
Another embodiment of the disclosure provides a communication apparatus configured to update a preferred roaming list in a mobile device. The apparatus comprises means for receiving a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The apparatus further comprises means for modifying the preferred roaming list based on the one or more operators.
Yet another embodiment of the disclosure provides a non-transitory computer program product, comprising a computer-readable medium. The computer-readable medium comprises code for causing a computer to identify a data location in the preferred roaming list. The computer-readable medium further comprises code for causing a computer to identify a type of operation to perform with respect to the identified data location. The computer-readable medium further comprises code for causing a computer to generate data indicative of an updated portion of the preferred roaming list. The computer-readable medium further comprises code for causing a computer to transmit a message indicative of the data location, the type of operation, and the data to a mobile device.
Another embodiment of the disclosure provides a non-transitory computer program product, comprising a computer-readable medium. The computer-readable medium comprises code for causing a computer to receive a data structure. The data structure comprises an indicator of a data location to modify the preferred roaming list. The data structure further comprises an indicator of a type of operation to perform. The data structure further comprises an updated portion of the preferred roaming list. The computer-readable medium further comprises code for causing a computer to modify the preferred roaming list based on the data structure.
Yet another embodiment of the disclosure provides a non-transitory computer program product, comprising a computer-readable medium. The computer-readable medium comprises code for causing a computer to generate a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The computer-readable medium further comprises code for causing a computer to transmit the message to a mobile device.
Another embodiment of the disclosure provides a non-transitory computer program product, comprising a computer-readable medium. The computer-readable medium comprises code for causing a computer to receive a message comprising one or more indicators of one or more operators executable by a removable user identity module (RUIM) card, wherein the one or more operators are configured to modify a preferred roaming list. The computer-readable medium further comprises code for causing a computer to modify the preferred roaming list based on the one or more operators.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. The techniques described herein may be used for various wireless communication networks such as Code Division Multiple Access (CDMA) networks, Time Division Multiple Access (TDMA) networks, Frequency Division Multiple Access (FDMA) networks, Orthogonal FDMA (OFDMA) networks, Single-Carrier FDMA (SC-FDMA) networks, etc. The terms “networks” and “systems” are often used interchangeably. A CDMA network may implement a radio technology such as Universal Terrestrial Radio Access (UTRA), cdma2000, etc. UTRA includes Wideband-CDMA (W-CDMA) and Low Chip Rate (LCR). cdma2000 covers IS-2000, IS-95 and IS-856 standards. A TDMA network may implement a radio technology such as Global System for Mobile Communications (GSM). An OFDMA network may implement a radio technology such as Evolved UTRA (E-UTRA), IEEE 802.11, IEEE 802.16, IEEE 802.20, Flash-OFDMA, etc. UTRA, E-UTRA, and GSM are part of Universal Mobile Telecommunication System (UMTS). Long Term Evolution (LTE) is an upcoming release of UMTS that uses E-UTRA. UTRA, E-UTRA, GSM, UMTS and LTE are described in documents from an organization named “3rd Generation Partnership Project” (3GPP). cdma2000 is described in documents from an organization named “3rd Generation Partnership Project 2” (3GPP2). These various radio technologies and standards are known in the art.
In some aspects the teachings herein may be employed in a network that includes macro scale coverage (e.g., a large area cellular network such as a 3rd Generation (3G) networks, typically referred to as a macro cell network) and smaller scale coverage (e.g., a residence-based or building-based network environment). As an access terminal (“AT”) moves through such a network, the access terminal may be served in certain locations by access nodes (“ANs”) that provide macro coverage while the access terminal may be served at other locations by access nodes that provide smaller scale coverage. In some aspects, the smaller coverage nodes may be used to provide incremental capacity growth, in-building coverage, and different services (e.g., for a more robust user experience). In the discussion herein, a node that provides coverage over a relatively large area may be referred to as a macro node. A node that provides coverage over a relatively small area (e.g., a residence) may be referred to as a femto node. A node that provides coverage over an area that is smaller than a macro area and larger than a femto area may be referred to as a pico node (e.g., providing coverage within a commercial building).
A cell associated with a macro node, a femto node, or a pico node may be referred to as a macro cell, a femto cell, or a pico cell, respectively. In some implementations, each cell may be further associated with (e.g., divided into) one or more sectors.
In various applications, other terminology may be used to reference a macro node, a femto node, or a pico node. For example, a macro node may be configured or referred to as an access node, base station, access point, eNodeB, macro cell, and so on. Also, a femto node may be configured or referred to as a Home NodeB, Home eNodeB, access point base station, femto cell, and so on.
Each AT 106 may communicate with one or more nodes 104 on a forward link (FL) and/or a reverse link (RL) at a given moment. A FL is a communication link from a node to an AT. A RL is a communication link from an AT to a node. The FL may also be referred to as the downlink. Further, the RL may also be referred to as the uplink. The nodes 104 may be interconnected, for example, by appropriate wired or wireless interfaces and may be able to communicate with each other. Accordingly, each AT 106 may communicate with another AT 106 through one or more nodes 104. For example, the AT 106j may communicate with the AT 106h as follows. The AT 106j may communicate with the node 104d. The node 104d may then communicate with the node 104b. The node 104b may then communicate with the AT 106h. Accordingly, a communication is established between the AT 106j and the AT 106h.
The wireless communication network 100 may provide service over a large geographic region. For example, the cells 102a-102g may cover only a few blocks within a neighborhood or several square miles in a rural environment. In one embodiment, each cell may be further divided into one or more sectors (not shown).
As described above, a node 104 may provide an access terminal (AT) 106 access within its coverage area to a communications network, such as, for example the internet or a cellular network. Each node 104 may be controlled by a given wireless carrier. An AT 106 may be associated with a particular wireless carrier, such as a home carrier, that provides wireless coverage to the AT 106 through nodes 104 controlled by the home carrier. For example, a user of the AT 106 may sign an agreement with the home carrier and in turn the home carrier may allow the AT 106 to access its wireless network via nodes 104 the home carrier controls. In some instances, the AT 106 may enter an area where the home carrier does not provide coverage as the home carrier has no nodes 104 in the area to provide service to the AT 106. There may, however, be nodes 104 controlled by other carriers. The home carrier have agreements with the other carriers to allow AT 106 to “roam” or access nodes 104 controlled by the other carriers. The AT 106 may utilize a PRL to locate and connect to such access nodes 104 controlled by the other carriers. As used herein, PRL may refer to an extended PRL (ePRL), a PRL, and/or a concatenated PRL (CPRL). The home carrier may further periodically send updates via a node 104 to the AT 106 updating the PRL as discussed below.
An AT 106 may be a wireless communication device (e.g., a mobile phone, router, personal computer, server, etc.) used by a user to send and receive voice or data over a communications network. An access terminal (AT) may also be referred to herein as a user equipment (UE), as a mobile station (MS), or as a terminal device. As shown, ATs 106a, 106h, and 106j comprise routers. ATs 106b-106g, 106i, 106k, and 106l comprise mobile phones. However, each of ATs 106a-1061 may comprise any suitable communication device.
A wireless multiple-access communication system may simultaneously support communication for multiple wireless access terminals. As mentioned above, each access terminal may communicate with one or more nodes via transmissions on the forward and reverse links. The forward link (or downlink) refers to the communication link from the node to the access terminal, and the reverse link (or uplink) refers to the communication link from the access terminal to the node. This communication link may be established via a single-in-single-out system, a multiple-in-multiple-out (“MIMO”) system, or some other type of system.
A MIMO system employs multiple (NT) transmit antennas and multiple (NR) receive antennas for data transmission. A MIMO channel formed by the NT transmit and NR receive antennas may comprise NS independent channels, which are also referred to as spatial channels, where NS≦min{NT, NR}. Each of the NS independent channels corresponds to a dimension. The MIMO system may provide improved performance (e.g., higher throughput and/or greater reliability) if the additional dimensionalities created by the multiple transmit and receive antennas are utilized.
A MIMO system may support time division duplex (“TDD”) and frequency division duplex (“FDD”). In a TDD system, the forward and reverse link transmissions are on the same frequency region so that the reciprocity principle allows the estimation of the forward link channel from the reverse link channel. This enables a device (e.g., a node, an access terminal, etc.) to extract a transmit beam-forming gain on the forward link when multiple antennas are available at the device.
The teachings herein may be incorporated into a device (e.g., a node, an access terminal, etc.) employing various components for communicating with at least one other device.
In one embodiment, each data stream is transmitted over a respective transmit antenna. The TX data processor 214 formats, codes, and interleaves the traffic data for each data stream based on a particular coding scheme selected for that data stream to provide coded data.
The coded data for each data stream may be multiplexed with pilot data using OFDM techniques. The pilot data is typically a known data pattern that is processed in a known manner and may be used at the receiver system to estimate the channel response. The multiplexed pilot and coded data for each data stream is then modulated (i.e., symbol mapped) based on a particular modulation scheme (e.g., BPSK, QSPK, M-PSK, or M-QAM) selected for that data stream to provide modulation symbols. The data rate, coding, and modulation for each data stream may be determined by instructions performed by a processor 230. A data memory 232 may store program code, data, and other information used by the processor 230 or other components of the node 104a.
The modulation symbols for all data streams are then provided to a TX MIMO processor 220, which may further process the modulation symbols (e.g., for OFDM). The TX MIMO processor 220 then provides NT modulation symbol streams to NT transceivers (“XCVR”) 222A through 222T. In some aspects, the TX MIMO processor 220 applies beam-forming weights to the symbols of the data streams and to the antenna from which the symbol is being transmitted.
Each transceiver 222 receives and processes a respective symbol stream to provide one or more analog signals, and further conditions (e.g., amplifies, filters, and upconverts) the analog signals to provide a modulated signal suitable for transmission over the MIMO channel. NT modulated signals from transceivers 222A through 222T are then transmitted from NT antennas 224A through 224T, respectively.
At the AT 106a, the transmitted modulated signals are received by NR antennas 252A through 252R and the received signal from each antenna 252 is provided to a respective transceiver (“XCVR”) 254A through 254R. Each transceiver 254 conditions (e.g., filters, amplifies, and downconverts) a respective received signal, digitizes the conditioned signal to provide samples, and further processes the samples to provide a corresponding “received” symbol stream.
A receive (“RX”) data processor 260 then receives and processes the NR received symbol streams from NR transceivers 254 based on a particular receiver processing technique to provide NT “detected” symbol streams. The RX data processor 260 then demodulates, deinterleaves, and decodes each detected symbol stream to recover the traffic data for the data stream. The processing performed by the RX data processor 260 is complementary to that performed by the TX MIMO processor 220 and the TX data processor 214 at the node 104a.
A processor 270 periodically determines which pre-coding matrix to use (discussed below). The processor 270 formulates a reverse link message comprising a matrix index portion and a rank value portion. A data memory 272 may store program code, data, and other information used by the processor 270 or other components of the AT 106a.
The AT 106a may further include a removable user identity Module (RUIM) card 273. The RUIM card 273 may be in data communication with the processor 270. The RUIM card 273, as is known in the art, act as a storage for particular information, and further may include a processor to execute commands that change or utilize the information stored on the RUIM card 273. For example, the RUIM card 273 stores a preferred roaming list (PRL) for the AT 106a. Further, the RUIM card 273 is configured to execute instructions to read/write/update/delete information stored on the RUIM card 273, such as the PRL data.
The reverse link message may comprise various types of information regarding the communication link and/or the received data stream. The reverse link message is then processed by a TX data processor 238. The TX data processor 238 also receives traffic data for a number of data streams from a data source 236. The modulator 280 modulates the data streams. Further, the transceivers 254A through 254R condition the data streams and transmit the data streams back to the node 104a.
At the node 104a, the modulated signals from the AT 106a are received by the antennas 224. Further, the transceivers 222 condition the modulated signals. A demodulator (“DEMOD”) 240 demodulates the modulated signals. A RX data processor 242 processes the demodulated signals and extracts the reverse link message (e.g., information) transmitted by the AT 106a. The processor 230 then determines which pre-coding matrix to use for determining the beam-forming weights. Further, the processor 230 processes the extracted message. It should be appreciated that for each node 104a and AT 106a the functionality of two or more of the described components may be provided by a single component.
It should be understood that
As discussed above with respect to
The AT 106a may store the PRL, for example, on an RUIM card 273 and/or memory 272. The AT 106a may further update the PRL per messages received from a home carrier. Traditionally a PRL may be 1 kilobyte (KB) in size. Accordingly, in one embodiment, the home carrier may transmit to the AT 106a via the node 104a four short message service (SMS) messages to update the entire PRL stored at the AT 106a. The SMS messages may include the entire PRL, and accordingly the AT 106a may replace the previously stored PRL with the received PRL.
In other embodiments, the PRL may be larger than 1 KB. For example, the PRL may be 8 KB or even 16 KB or longer. Transmission of the entire PRL via SMS for such larger PRLs may be problematic. This is because, though the probability of receiving a single SMS message successfully is relatively high, the probability of receiving several SMS messages required for an update decreases exponentially with respect to the number of SMS messages needed. For example as required for a 1 KB PRL, the success rate of receiving 4 transmitted SMS messages is 90%-95%. However, for larger PRLs, additional SMS messages may be sent to transmit the entire PRL. For example as required for a 8 KB PRL, the success rate of receiving 32 transmitted SMS messages is 43%-66%. As required for a 16 KB PRL, the success rate of receiving 64 transmitted SMS messages is 18.5%-44%.
In many instances, the entire PRL does not change in each update, but rather only a portion of the PRL changes. Accordingly, redundant data is sent in each update requiring the entire PRL to be sent. By eliminating transmission of such redundant data and only transmitting the incrementally changed portions of the PRL, fewer SMS messages can be used to transmit the PRL, which leads to higher success rates.
Below are described several methods for incrementally updating a PRL that may be performed by the AT 106a. It should be noted that these methods also apply to updating an extended PRL (ePRL). In one embodiment, the methods are performed by modifying the RUIM card 273 of the AT 106a. In other embodiments, other components of the AT 106a may be modified as understood by one of skill in the art. Therefore, though the examples below are specifically described with respect to modifying an RUIM card 273, it should be noted that the methods also apply to modification of other components of the AT 106a. One advantage of modifying the RUIM card 273, however, is that the RUIM card 273 is typically a cheap user-replaceable component of the AT 106a. By replacing the RUIM card 273 the methods described below can be implemented in existing mobile devices without further modifying the existing mobile devices. This provides a cost effective solution for changing how PRLs are updated.
One method of incrementally updating a PRL includes sending modified PRL data structures to the AT 106a via the node 104. The RUIM card 273 is designed to recognize the modified data structure and change the PRL accordingly. The data structure indicates whether the RUIM card 273 should replace data in the PRL, add data to the PRL, or remove data from the PRL. In one embodiment, the modified structure further includes an identification of which records to update of an acquisition table and a system information table and the updated information itself. In another embodiment, the modified structure indicates a data offset that indicates in the number of bits where from the start of the PRL data to begin modifying the data, the size of the data update, and the update data itself. In some embodiments, the data structure includes a standard PRL header. These methods are described in further detail below with respect to
In yet another embodiment, the RUIM card 273 is modified to understand one or more operators such as add data, delete data, update data, a loop command, a bit shift command, a move command, etc. The home carrier then sends the operators and the data to be updated to the AT 106a via the node 104. The RUIM card 273 executes the operators. By executing the operators, the PRL is updated with the transmitted data according to the order of the operators and can be done so incrementally. These methods are described in further detail below.
The data structure further includes a second portion 304, which includes the incremental update information for the PRL. The first field (“NUM_INCRE_ACQ_RECS”) field 340 of the second portion 304 identifies the number of acquisition records of the acquisition table that are to be updated according to the data structure. The second field (“NUM_INCRE_SYS_RECS”) field 345 of the second portion 304 identifies the number of system records of the system table that are to be updated according to the data structure. The third field (“INCRE_ACQ_TABLE”) field 350 includes the actual data for updating the acquisition table of the PRL as well as an indication of how to update the PRL as discussed with respect to
The data structure further includes a third portion 306, which includes a first field (“RESERVED (for NEW PRL)”) field 360 including reserved bits for byte alignment and a second field (“PR_LIST_CRC”) field 365 including data for performing a cyclic redundancy checks (CRC). The third portion 306 also includes a third field (“RESERVED (for Incremental PRL)”) field 370 including a second set of reserved bits to make the entire data structure equal to an integer number of octets.
In some instances, the AT 106a may store both a PRL and an ePRL. Accordingly, the AT 106a may store the PRL concatenated with the ePRL to form a concatenated PRL (CPRL). To update the PRL and the ePRL the carrier may send to the AT 106a a data structure, an incremental CPRL, concatenating a structure for updating the PRL with a structure for updating the ePRL, along with a set of bits used for performing a CRC (e.g., 16 bits for performing a CRC). Further, the home carrier may need to break up an incremental PRL, ePRL, or CPRL into multiple SMS messages for transmission to the AT 106a via a node 104.
The data structure further includes a second portion 1104, which includes the incremental update information for the PRL. The first field (“NUM_INCRE_RECS”) field 1140 of the second portion 1104 identifies the number of records (of any type) of the PRL that are to be updated according to the data structure. The second field (“INCRE_TABLE”) field 1145 includes the actual data for updating the records of the PRL as well as an indication of how to update the PRL as discussed with respect to
The data structure further includes a third portion 1106, which includes a first field (“RESERVED (for NEW PRL)”) field 1150 including reserved bits for byte alignment and a second field (“PR_LIST_CRC”) field 1155 including data for performing a cyclic redundancy checks (CRC). The third portion 1106 also includes a third field (“RESERVED (for Incremental PRL)”) field 1160 including a second set of reserved bits to make the entire data structure equal to an integer number of octets.
In some instances, the AT 106a may store both a PRL and an ePRL. Accordingly, the AT 106a may store the PRL concatenated with the ePRL to form a concatenated PRL (CPRL). To update the PRL and the ePRL the carrier may send to the AT 106a a data structure, an incremental CPRL, concatenating a structure for updating the PRL with a structure for updating the ePRL, along with a set of bits used for performing a CRC (e.g., 16 bits for performing a CRC). Further, the home carrier may need to break up an incremental PRL, ePRL, or CPRL into multiple SMS messages for transmission to the AT 106a via a node 104. The incremental CPRL may be transmitted and used at the AT 106a similar to as described above with respect to
The data structure includes a first portion 1404, which includes the incremental update information for the PRL, ePRL, or CPRL. The first field (“NUM_INCRE_RECS”) field 1410 of the first portion 1404 identifies the number of incremental records in the INCRE_TABLE field 1415 that are to be used to update the data in the PRL, ePRL, or CPRL according to the data structure. The second field (“INCRE_TABLE”) field 1415 includes the actual data for updating the records of the PRL, ePRL, or CPRL as well as an indication of how to update the PRL, ePRL, or CPRL as discussed with respect to
The data structure further includes a second portion 1406, which includes a first field (“RESERVED”) field 1420 including reserved bits to make the entire data structure equal to an integer number of octets and a second field (“PR_LIST_CRC”) field 1425 including data for performing a cyclic redundancy checks (CRC) on the generated PRL, ePRL, or CPRL to make sure it is corresponds to the stored PRL, ePRL, or CPRL. The second portion 1406 also includes a third field (“CRC”) field 1430 including data for performing a cyclic redundancy checks (CRC) on the received data structure to make sure it is received correctly.
The home carrier may need to break up an incremental PRL, ePRL, or CPRL into multiple SMS messages for transmission to the AT 106a via a node 104. The incremental PRL, ePRL, or CPRL may be transmitted and used at the AT 106a similar to as described above with respect to
As compared with the methods described with respect to
Continuing at a step 1625, the AT 106a receives the generated data. Further, at a step 1630, the AT 106a modifies the PRL, ePRL, and/or CPRL based on the received generated data. For example, the AT 106a may utilize received data structures and modify the PRL, ePRL, and/or CPRL as discussed above with respect to
As discussed above, another embodiment for incrementally updating a PRL, ePRL, and/or CPRL may be implemented by configuring the RUIM card 273 to understand one or more operators such as a store operator, a move operator, a bit shift operator, a commit operator, a loop operator etc. By utilizing these operators, data can be modified (e.g., added, deleted, updated, etc.) at the RUIM card 273.
The home carrier may send the operators to the AT 106a via the node 104. The home carrier may also send data along with the operator, such as where the operator is a store operator that stores the data sent with the operator. The RUIM card 273 executes the operators. By executing the operators, the memory in the RUIM card 273 that stores the PRL, ePRL, and/or CPR is updated according to the order of the operators and can be done so incrementally.
Further, at a step 2215, the home carrier server may then compare the old PRL, ePRL, and/or CPRL of the AT 106a which is stored in the server, to a new PRL, ePRL, and/or CPRL using a diff, merge, and/or compare tool (e.g., Araxis Merge, IDM UltaCompare, etc.). Continuing at a step 2220, the home carrier server determines a set of operators that when executed modify the old PRL, ePRL, and/or CPRL to have the same information as the new PRL, ePRL, and/or CPRL. For example, the home carrier server may form a sequence of operators such as those discussed herein. The home carrier server may optimize the selection of operators so as to reduce the number of operators sent to update the PRL, ePRL, and/or CPRL at the AT 106a. For example, the home carrier server may comprise a PRL analyzer. The PRL analyzer may identify the source address of data in the in the old PRL, ePRL, and/or CPRL that is located in a new destination address in the new PRL, ePRL, and/or CPRL. The PRL analyzer may further generate operators (e.g., memory move, bit shift, long move, etc.) to copy data from the source address to the destination address. Further, the PRL analyzer may further generate operators (e.g., store) to insert new data from the new PRL, ePRL, and/or CPRL into the old PRL, ePRL, and/or CPRL. The PRL analyzer may further calculate the size of the new PRL and generate a commit operator with the indicated size.
Further, at a step 2225, the home carrier server may split the generated operators into a sequence of SMS messages, each message including one or more operators. For example, each SMS message may include a header of 7 bytes, followed by one or more operators in sequence. The header may include a first byte that indicates the sequence number of the SMS message. The header may include a second byte that indicates the protocol version of the operators. The header may further include a third byte that indicates the length of the operators. The header may also include a fourth byte that includes the fingerprint of the PRL, ePRL, and/or CPRL of the AT 106a to be updated.
Continuing at a step 2230, the home carrier server transmits the SMS messages to the AT 106a via the node 104. The AT 106a receives the SMS messages at a step 2235. At a step 2240, the AT 106a determines whether the fingerprint in each SMS message matches the fingerprint of the PRL, ePRL, and/or CPRL stored at the AT 106a. If at the step 2240, the AT 106a determines the fingerprint does not match, the process ends. If at the step 2240, the AT 106a determines the fingerprint does match, the process continues to a step 2245.
At the step 2245, the AT 106a arranges the operators in sequence based on the sequence number of each SMS message. Further at a step 2250, the RUIM card 237 on the AT 106a executes the operators in sequence, thus updating the PRL, ePRL, and/or CPRL.
One or ordinary skill in the art should recognize that various steps may by added or omitted from the processes described with respect to
It should be understood that any reference to an element herein using a designation such as “first,” “second,” and so forth does not generally limit the quantity or order of those elements. Rather, these designations may be used herein as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements may be employed there or that the first element must precede the second element in some manner. Also, unless stated otherwise a set of elements may comprise one or more elements. In addition, terminology of the form “at least one of: A, B, or C” used in the description or the claims means “A or B or C or any combination of these elements.”
Those skilled in the art will understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those skilled in the art will further appreciate that the various illustrative logical blocks, modules, circuits, methods and algorithms described in connection with the examples disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, methods and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP communication, or any other such configuration.
The steps of a method or algorithm described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module (e.g., including executable instructions and related data) and other data may reside in a data memory such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable storage medium known in the art. A sample storage medium may be coupled to a machine such as, for example, a computer/processor (which may be referred to herein, for convenience, as a “processor”) such the processor can read information (e.g., code) from and write information to the storage medium. A sample storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in user equipment. In the alternative, the processor and the storage medium may reside as discrete components in user equipment. Moreover, in some aspects any suitable computer-program product may comprise a computer-readable medium comprising codes (e.g., executable by at least one computer) relating to one or more of the aspects of the disclosure. In some aspects a computer program product may comprise packaging materials.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Thus, in some aspects computer readable medium may comprise non-transitory computer readable medium (e.g., tangible media). In addition, in some aspects computer readable medium may comprise transitory computer readable medium (e.g., a signal). Combinations of the above should also be included within the scope of computer-readable media.
The previous description of the disclosed examples is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these examples will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other examples without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the examples shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Number | Date | Country | Kind |
---|---|---|---|
201010126141.X | Mar 2010 | CN | national |