The present disclosure relates to radio bearers for mobile devices and in particular, to high-speed radio access bearers.
A mobile device requires the establishment of a radio access bearer in order to communicate with the wireless network infrastructure. Furthermore, some devices allow the establishment of a multiple radio access bearers for communication. In one instance, multiple radio access bearers can be dependent on the device requiring multiple packet data protocol (PDP) contexts. Thus, for example, a device may have a proprietary PDP context for the manufacturer of the device, a general wireless application protocol (WAP) context for browsing, a multi-media messaging service (MMS) PDP context for MMS applications, a streaming media PDP context for streaming media applications, among others. As will be appreciated, a PDP context is a term that is generally referred to in the third generation partnership project (3GPP) and more generally the term “tunnel” is used herein to refer to a data connection to a particular network.
The opening of multiple tunnels to a network can have disadvantages. For example, in the third generation partnership project high-speed downlink access (HSPDA), tunnels can be opened which have higher data transfer speeds and capacities. Current HSPDA deployments support downlink speeds of, for example, 1.8, 3.6, 7.2 or 14.4 Mbps.
While HSPDA networks and other high-speed networks may allow the establishment of multiple tunnels, in some instances only the first tunnel established is granted a high-speed radio access bearer. Any subsequent tunnel activation causes a downgrade of the radio access bearers to low-speed radio access bearers. This means that the high-speed radio access bearer is dropped for multiple low-speed radio access bearers. The dropping of a high-speed radio access bearer could result in degraded user experience.
The present disclosure will be better understood with reference to the drawings in which:
As used herein, the following definitions apply:
The present disclosure provides a method for establishing and maintaining a high speed tunnel between a mobile device and a network, the method comprising: determining whether a foreground application on the mobile device requires the high speed tunnel, and if the foreground application requires the high speed tunnel, closing all tunnels from the mobile device to a network except the tunnel for the foreground application.
The present disclosure further provides a mobile device configured to establish and maintain a high speed tunnel is open to a network, the mobile device comprising: a communications subsystem; and a processor, the processor configured to determine whether a foreground application on the mobile device requires the high speed tunnel, and if the foreground application requires the high speed tunnel, close all tunnels using the communications subsystem from the mobile device to a network except the tunnel for the high speed radio access bearer.
In high-speed networks, the first radio access bearer guarantees that the first data connection is granted as a high-speed data connection. However, some networks implement further data connections to a mobile device in a way that causes the network to downgrade all active data connections for the device to a slower speed.
Aside from watermarking, which is a way to determine how many simultaneous data connections are allowed on a particular network, it would be useful for a mobile to know whether a particular data connection is high-speed. Unfortunately, there is no way for the mobile to know whether a network allows simultaneous high-speed data connections and only that the network is capable of high-speed data connections.
The present disclosure therefore provides for a way to ensure that an application in the foreground, which requires a high-speed tunnel, obtains the high speed tunnel by causing other tunnels to be deactivated to ensure the high-speed data tunnel is granted.
Reference is now made to
If the foreground application has not changed, as determined in block 112, the process continues to loop until the foreground application changes.
When the foreground application changes, as determined in block 112, the process proceeds to block 120 in which a check is made to determine whether the foreground application has a flag to indicate an application solo mode. As indicated above, an application solo mode is a mode of operation that attempts to ensure that the requesting application obtains a high-speed tunnel. The application solo mode is controlled, in one embodiment, by a flag set by the application using the tunnel. The ultimate decision on which applications should be allowed have a flag for the application solo mode is, in one embodiment, the responsibility of the application executive. For example, this could be the operating system or virtual machine that is running the application.
In the present disclosure, when a tunnel is associated with an application requiring an application solo mode, the tunnel is marked as an application solo mode tunnel. In one embodiment it is required that the tunnel is also a focused tunnel for the application solo mode behavior to take effect. Here, the rationale is that if an application has a requirement for an application solo mode tunnel, then the application is displayed in the foreground. If the user is not using that application and the application is in the background then the requirement for high-speed is less and other tunnels may be opened to provide the services required on the mobile device.
The check in block 120 determines whether or not the foreground application has a flag to indicate an application solo mode. If yes, the process proceeds to block 122 in which a tunnel priority process is run indicating that an application solo mode should be active. Conversely, if the application does not indicate application solo mode, the process proceeds to block 124 in which a tunnel prioritization process is run with a standard mode of operation.
From blocks 122 and 124, the process proceeds back to block 112 to check whether or not the foreground application has changed.
The tunnel prioritization process, and variants thereof, are described herein with reference to
Reference is now made to
A second input provided to the process of
A third input is the watermark or maximum tunnel count (MTC), which provides an indication as to how many tunnels can be opened on the particular network that the mobile device is registered with.
The process proceeds to block 220 in which the required tunnel count (RTC) is set. As will be appreciated by those in the art, the number of tunnels that should be opened should be no greater then the number of tunnels registered or the watermark amount. In other words, the required tunnel count is the minimum of the number of registered tunnels and the watermark count. As used in block 220, and in the remainder of the figures, the operator pair “|” as used in |REG| defines the size of the set “REG” or the number of elements in the set “REG”.
From block 220, the process then proceeds to block 230, in which a check is made to determine whether the focused tunnel is in application solo mode. As used herein, the focused tunnel is the tunnel for the foreground application and the application solo mode is determined in block 120 of
If the focused tunnel is in application solo mode, the process proceeds to block 232 in which the required tunnel count is set to have the maximum number of one, thus ensuring that only one tunnel can be opened.
If the focused tunnel is not in application solo mode, or after block 232, the process proceeds to block 234. In block 234, the highest priority tunnel denoted as P1 in
From block 234 the process proceeds to block 236 in which the second highest priority tunnel is set. In one embodiment, the second highest priority tunnel denoted as P2 can be set to include the device tunnel. However, in other embodiments different tunnels can be set to the second highest priority.
The process then proceeds to entry point 250 of
From entry point 250, the process proceeds to block 252 where, in the first pass through the tunnel prioritization process, the “should be active” set of tunnels (SBA) is set to be an empty set. As used in block 252, SBA is a set and the operator “{ }” indicates an empty set.
The process then proceeds to block 254 in which the number of tunnels that should be active is checked against the required tunnel count. If the number of tunnels that should be active is less then the required tunnel count the process proceeds to block 256 in which a check is determine whether the highest priority tunnel is within the group of tunnels that should be active. If no, the process proceeds to block 258 in which the highest priority tunnel is added to the group of tunnels that should be active and the process proceeds back to block 254.
If the check in block 256 determines that the highest priority tunnel is within the group of tunnels that should be active, the process proceeds to block 260 in which a check is made to determine whether the second highest priority tunnel is within the group of tunnels that should be active. If no, the process proceeds to block 262 and adds the second highest priority tunnel to the group of tunnels that should be active and the process proceeds back to block 254. Conversely, from block 260 if the second highest priority tunnel is within the group of tunnels that should be active, the process proceeds to block 264 in which the most recently used tunnel is added to the set of tunnels that should be active and the process proceeds back to block 254.
From block 254, if the number of tunnels within the set of tunnels that should be active is not less then the required tunnel count, the process then proceeds to block 270, in block 270 a determination is made to determine the set of tunnels which require deactivation (RD). In particular, the tunnels that require deactivation are the currently active tunnels that are not part of the SBA set. As used in block 270 and 272, the “-” operator indicates the elements in the set preceding the operator but not in the set following the operator. Thus, in block 270, the expression “CA-SBA” indicates the elements in the set CA but not in the set SBA.
The process then proceeds to block 272 in which the set of tunnels that require activation (RA) are determined. In particular, the tunnels that require activation are those within the SBA set that are not currently active.
The process then proceeds to block 274 in which it is determined whether or not the set of tunnels requiring deactivation is greater then zero. If yes, then process proceeds to block 276 and deactivates the least recently used tunnel from the recently used tunnels that require deactivation and the process then proceeds to block 278 and ends. As will be appreciated, the deactivation of the tunnel causes the tunnel prioritization process to be restarted, in effect ensuring that all tunnels requiring activation and deactivation are processed. In an alternative embodiment the process could loop from block 276 back to block 274.
If the check in block 274 determines that there are no tunnels to be deactivated, the process proceeds to block 280 in which a determination is made to identify whether there are any tunnels that require activation. If not, the process proceeds to block 282 and ends.
Conversely, if it is determined in block 280 that tunnels require activation the process proceeds to block 284 in which a check is made to determine whether or not the highest priority tunnel is within the set of tunnels that need activation. If yes, the process proceeds to block 286 where the highest priority tunnel is activated and the process then proceeds to block 278 and ends. Again, the activation of a tunnel causes the tunnel prioritization process to be started again. Alternatively, the process could loop from block 286 to block 280.
From block 284, if the highest priority tunnel is already activated the process then proceeds to block 290 in which a check is made to determine whether the second highest priority tunnel is activated (i.e. P2 is not in the set of tunnels that require activation). If not the process proceeds to block 292 in which the second highest priority tunnel is activated and the process proceeds to block 278 and ends.
Conversely, if from block 290 it is determined that the second highest priority tunnel is not in the set of tunnels requiring activation then the process proceeds to block 296 in which the most recently used tunnel in the tunnels requiring activation is activated and the process proceeds to block 278 and ends.
The use of
In order to ensure optimal performance for a user that is browsing the Internet over a carrier's wireless application protocol (WAP) browser, the WAP browser may be provided with a flag indicating that it prefers application solo mode.
At the outset, the mobile may be operating with a tunnel for the device services and with no other tunnel open. Thereafter, the user opens the WAP browser in the foreground, and the process starts in
Referring to
In block 220 the required tunnel count is set to the minimum of size of the set of registered tunnels and the watermark. In this case, the required tunnel count could be set to three which is the watermark number, assuming the number of registered tunnels in the set of registered tunnels is equal to or greater than three.
The process then proceeds to block 230 in which a check is made to determine whether the mobile device is in application solo mode. In present example, the application on the mobile device is in application solo mode and the process then proceeds to block 232 in which the required tunnel count RTC is forced to one.
The process then proceeds to block 234 in which the highest priority tunnel is set is set to the WAP tunnel and to block 236 in which the second highest priority tunnel is set to the device tunnel.
The process then proceeds to block 252 in which the set of tunnels that should be active is initialized to an empty set and the process then proceeds to block 254 in which the number of tunnels in the set of tunnels that should be active is compared to the required tunnel count. In this case, since the SBA set was initialized, the count is zero, which is less than the RTC of one. In this regard, the process proceeds to block 256 in which a check is made to determine whether the highest priority tunnel is within the set of tunnels that should be active. Since it is not, the process proceeds to block 258 in which the highest priority tunnel is added to the set of tunnels that should be active and the process proceeds back to block 254.
At block 254 a check is again made to determine whether the number of tunnels within the set of tunnels that should be active is less then the required tunnel count. In this case, both are one and therefore the check at block 254 is false and the process proceeds to block 270 in which required deactivation indicates that the currently active device tunnel should be deactivated. Further, the process proceeds to block 272 in which the set of tunnels that require activation is incremented to include the highest priority tunnel.
The process then proceeds to block 274 in which it is determined that there are tunnels that need deactivation and the process proceeds to block 276 in which the recently used tunnel is deactivated. In this case, the process deactivates the device tunnel.
The process ends at block 278. However, the deactivation of a tunnel causes the process to start again at block 210. In this case the input includes set CA having no active tunnels. The process steps though as above, and in block 270 the set of tunnels requiring deactivation is now empty. The set of tunnels requiring activation in block 272 is set to the highest priority tunnel.
The process then proceeds to block 280 in which it determines whether or not a tunnel needs to be activated. Since the highest priority tunnel needs to be activated the process proceeds to block 284 in which the highest priority tunnel is found not to be activated. The process then proceeds to block 286 and the highest priority tunnel is activated. The process then ends at block 278. The activation causes the tunnel prioritization process to run again, but this time both RD in block 270 and RA in block 272 are empty, causing the process to end at block 282.
As seen from the above, only the high priority tunnel is activated and the remainder deactivated tunnels are closed on starting a WAP browser or bring the WAP browser to the foreground.
If the WAP browser is closed or put into the background, this will cause the tunnel prioritization process to run again.
In a further example, the WAP browser that is started has been flagged to be a non-application solo mode application. Again, the preconditions in this case are that a devices services tunnel is already opened and no other tunnel is opened.
Referring to
Referring to
The process then proceeds to block 220 in which the required tunnel count is set to the minimum of the number of registered tunnels with the set of registered tunnels and the watermark; in this case the required tunnel count is set to three.
The process then proceeds to block 230 in which a check is made to determine whether the focused tunnel is in application solo mode. Since it is not, the process proceeds to block 234 in which the focused tunnel is set to be the highest priority tunnel and the device tunnel is set to be the second highest priority tunnel in block 236.
The process then proceeds to block 252 in which the set of tunnels that should be active is initialized and the process proceeds to block 254 in which a determination is made to determine whether the set of tunnels that should be active is less then the required tunnel count. In this case, the required tunnel count is three and therefore the check at block 254 is true and the process proceeds to block 256. From block 256 the highest priority tunnel needs to be added to the set of tunnels that should be active and the process proceeds to block 258 in which the highest priority tunnel is added and the process then loops back to block 254.
In this case, the check at block 254 determines that there is one tunnel within the set of tunnels that should be active which is still less then the required tunnel count and the process proceeds to block 256. Here, the highest priority tunnel is already in the set of tunnels that should be active and the process then proceeds to block 260 in which a determination is made to determine whether the second highest priority tunnel is within the set of tunnels that should be active. Since it is not, the process proceeds to block 262 and adds the second priority tunnel to the set of tunnels that should be active and the process loops back to block 254.
A check is made to determine whether the number of tunnels within the set that should be active is less then the required tunnel count. In this case, there are two tunnels within the set that should be active which is still less then the required tunnel count and the process then proceeds to block 256, block 260 and block 262 in which the most recently used tunnel is added to the set of tunnels that should be active.
The process then proceeds back to block 254, where there are now three tunnels in the set that should be active, which is not less then the required tunnel count. The process then proceeds to block 270 in which the set of tunnels which require deactivation are found to have no tunnels. The process then proceeds to block 272 in which the set of tunnels that require activation are found to be the highest priority tunnel and the most recently used tunnel.
The process then proceeds to block 274 in which the determination is made that there are no tunnels that need deactivation. The process then proceeds to block 280 in which it is determined there are tunnels that need activation. The process then proceeds to block 284 in which the highest priority tunnel is determined to require activation. In this case, the process proceeds to block 286 in which the highest priority tunnel is activated and the process ends at block 278. The activation of a tunnel causes the tunnel prioritization process to run again, at which point the most recently used tunnel is next started.
The embodiment of
Reference is now made to
In order to facilitate protection modes, the process diagram of
Referring to
Instead of proceeding from block 220 to block 230 as in
Conversely, if it is determined in block 340 that the device is in protection mode, the process proceeds to block 342 in which the highest priority tunnel is set to be the device tunnel.
The process then proceeds to block 344 in which the second highest priority tunnel is set to be the focused tunnel.
From block 344, the process proceeds to connection point 250 in
As will be appreciated, by setting the highest priority to the data services tunnel the data services tunnel is then established first.
In a further alternative embodiment, preferences maybe designated for the tunnels that should be enabled during a circuit switched call. Reference is now made to
The process of
In block 220 the required tunnel count is set to be the minimum of number of registered tunnels in the set of registered tunnels and the watermark.
From block 220 the process proceeds to block 410 instead of block 340, as in
If the phone experience is not active, as found in block 410 the process proceeds to block 340 and proceeds in accordance with
Conversely, if it is found in block 410 that the phone experience is active, the process proceeds to block 420 in which a check is made to determine whether a device tunnel is required for circuit switched calls. If yes, the process proceeds to block 430 in which the set of tunnels that should be active is initialized to have the device tunnel as part of the tunnels that should be active.
Conversely, if a device tunnel is not required then the process proceeds to block 440 in which the set of tunnels that should be active is initialized to include the focused tunnel as part of the set.
From block 430 or block 440 the process proceeds to entry point 450 of
As will be appreciated, the checking of radio access bearers and establishing radio access bearers is done utilizing the processor on a mobile device, in combination with a communications subsystem of the mobile device. One such exemplary mobile device is illustrated below with reference to
Mobile device 500 is preferably a two-way wireless communication device having at least voice and data communication capabilities. Mobile device 500 preferably has the capability to communicate with other computer systems on the Internet. Depending on the exact functionality provided, the wireless device may be referred to as a data messaging device, a two-way pager, a wireless e-mail device, a cellular telephone with data messaging capabilities, a wireless Internet appliance, or a data communication device, as examples.
Where mobile device 500 is enabled for two-way communication, it will incorporate a communication subsystem 511, including both a receiver 512 and a transmitter 514, as well as associated components such as one or more, preferably embedded or internal, antenna elements 516 and 518, local oscillators (LOs) 513, and a processing module such as a digital signal processor (DSP) 520. As will be apparent to those skilled in the field of communications, the particular design of the communication subsystem 511 will be dependent upon the communication network in which the device is intended to operate.
Network access requirements will also vary depending upon the type of network 519. In some CDMA networks network access is associated with a subscriber or user of mobile device 500. A CDMA mobile device may require a removable user identity module (RUIM) or a subscriber identity module (SIM) card in order to operate on a CDMA network. The SIM/RUIM interface 544 is normally similar to a card-slot into which a SIM/RUIM card can be inserted and ejected like a diskette or PCMCIA card. The SIM/RUIM card can have memory and hold many key configuration 551, and other information 553 such as identification, and subscriber related information.
When required network registration or activation procedures have been completed, mobile device 500 may send and receive communication signals over the network 519. As illustrated in
Signals received by antenna 516 through communication network 519 are input to receiver 512, which may perform such common receiver functions as signal amplification, frequency down conversion, filtering, channel selection and the like, and in the example system shown in
Mobile device 500 preferably includes a microprocessor 538 which controls the overall operation of the device. Communication functions, including at least data and voice communications, are performed through communication subsystem 511. Microprocessor 538 also interacts with further device subsystems such as the display 522, flash memory 524, random access memory (RAM) 526, auxiliary input/output (I/O) subsystems 528, serial port 530, one or more keyboards or keypads 532, speaker 534, microphone 536, other communication subsystem 540 such as a short-range communications subsystem and any other device subsystems generally designated as 542. Serial port 530 could include a USB port or other port known to those in the art.
Some of the subsystems shown in
Operating system software used by the microprocessor 538 is preferably stored in a persistent store such as flash memory 524, which may instead be a read-only memory (ROM) or similar storage element (not shown). Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may be temporarily loaded into a volatile memory such as RAM 526. Received communication signals may also be stored in RAM 526.
As shown, flash memory 524 can be segregated into different areas for both computer programs 558 and program data storage 550, 552, 554 and 556. These different storage types indicate that each program can allocate a portion of flash memory 524 for their own data storage requirements. Microprocessor 538, in addition to its operating system functions, preferably enables execution of software applications on the mobile device. A predetermined set of applications that control basic operations, including at least data and voice communication applications for example, will normally be installed on mobile device 500 during manufacturing. Other applications could be installed subsequently or dynamically.
One software application may be a personal information manager (PIM) application having the ability to organize and manage data items relating to the user of the mobile device such as, but not limited to, e-mail, calendar events, voice mails, appointments, and task items. Naturally, one or more memory stores would be available on the mobile device to facilitate storage of PIM data items. Such PIM application would preferably have the ability to send and receive data items, via the wireless network 519. In a preferred embodiment, the PIM data items are seamlessly integrated, synchronized and updated, via the wireless network 519, with the mobile device user's corresponding data items stored or associated with a host computer system. Further applications may also be loaded onto the mobile device 500 through the network 519, an auxiliary I/O subsystem 528, serial port 530, short-range communications subsystem 540 or any other suitable subsystem 542, and installed by a user in the RAM 526 or preferably a non-volatile store (not shown) for execution by the microprocessor 538. Such flexibility in application installation increases the functionality of the device and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using the mobile device 500.
In a data communication mode, a received signal such as a text message or web page download will be processed by the communication subsystem 511 and input to the microprocessor 538, which preferably further processes the received signal for output to the display 522, or alternatively to an auxiliary I/O device 528.
A user of mobile device 500 may also compose data items such as email messages for example, using the keyboard 532, which is preferably a complete alphanumeric keyboard or telephone-type keypad, in conjunction with the display 522 and possibly an auxiliary I/O device 528. Such composed items may then be transmitted over a communication network through the communication subsystem 511.
For voice communications, overall operation of mobile device 500 is similar, except that received signals would preferably be output to a speaker 534 and signals for transmission would be generated by a microphone 536. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on mobile device 500. Although voice or audio signal output is preferably accomplished primarily through the speaker 534, display 522 may also be used to provide an indication of the identity of a calling party, the duration of a voice call, or other voice call related information for example.
Serial port 530 in
Other communications subsystems 540, such as a short-range communications subsystem, is a further optional component which may provide for communication between mobile device 500 and different systems or devices, which need not necessarily be similar devices. For example, the subsystem 540 may include an infrared device and associated circuits and components or a Bluetooth™ communication module to provide for communication with similarly enabled systems and devices.
While the above examples utilize HSDPA networks, the solution is equally applicable to other networks, which include but are not limited to Universal Mobile Telecommunications System (UMTS) networks, Global System for Mobile telephony (GSM) networks, Long Term Evolution (LTE) networks, among others. For example, in UMTS, the channels are cumulative and the data must therefore be shared between the channels.
The embodiments described herein are examples of structures, systems or methods having elements corresponding to elements of the techniques of this application. This written description may enable those skilled in the art to make and use embodiments having alternative elements that likewise correspond to the elements of the techniques of this application. The intended scope of the techniques of this application thus includes other structures, systems or methods that do not differ from the techniques of this application as described herein, and further includes other structures, systems or methods with insubstantial differences from the techniques of this application as described herein.