Method and system for flow control between a base station controller and a base transceiver station
Claim Score by NHIP
Abstract
According to a disclosed embodiment, a flow indication counter is incremented each time a data packet is transmitted from a buffer. When the number of data packets transmitted equals or exceeds a threshold number, a flow indication message comprising the buffer window size is generated and transmitted to the base station controller. Further, flow indication messages can be generated and transmitted every threshold time interval, independently of the number of data packets transmitted to ensure that flow indication messages are sent at least every preset time interval. Moreover, a system for flow control can be constructed comprising a flow indication counter module configured to provide an updated number of data packets transmitted. The system further comprises a window size monitoring module which determines the buffer window size and a message generating module which generates a flow indication message comprising the buffer window size.

Term
Term ended
Projected expiry passed 21 June 2024, 2.3 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
37 claims: 5 independent, 32 dependent
- 1A method comprising steps of:incrementing a flow indication counter indicating an updated number of data packets transmitted from a buffer;determining a window size of said buffer when said updated number of data packets transmitted from said buffer is equal to or greater than a threshold number;generating a flow indication message, said flow indication message indicating said window size.
- 10Broadest claimClaim Score 78, broad(NHIP)A system comprising:means for incrementing a flow indication counter indicating an updated number of data packets transmitted from a buffer;means for determining a window size of said buffer when said updated number of data packets transmitted from said buffer is equal to or greater than a threshold number;means for generating a flow indication message, said flow indication message comprising said window size.
- 19A method comprising steps of:incrementing a flow indication counter indicating an updated number of data packets transmitted from a buffer;determining a window size of said buffer when said updated number of data packets transmitted from said buffer is equal to or greater than a threshold number;determining a packet ID of a data packet received by said buffer;generating a flow indication message, said flow indication message comprising said window size;transmitting said flow indication message.
- 25A method comprising steps of:receiving a plurality of data packets from a base station controller;placing said plurality of data packets in a buffer;transmitting a number of said plurality of data packets from said buffer;determining a window size of said buffer when said number of said plurality of data packets transmitted from said buffer is equal to or greater than a threshold number;determining a packet ID of one of said plurality of data packets;generating a flow indication message, said flow indication message comprising said window size and said packet ID;transmitting said flow indication message to said base station controller.
- 30A computer readable medium including a computer program, said computer program comprising:a first code segment for incrementing a flow indication counter indicating an updated number of data packets transmitted from a buffer;a second code segment for determining a window size of said buffer when said updated number of data packets transmitted from said buffer is equal to or greater than a threshold number;a third code segment for generating a flow indication message, said flow indication message comprising said window size.
Independent claims5
54 paragraphs in 4 sections, as filed
BACKGROUND
[0001] 1. Field
[0002] The present invention generally relates to the field of wireless communication systems, and more specifically to flow control between a base station controller and a base transceiver station.
[0003] 2. Background
[0004] High Data Rate (“HDR”) technology is a high-speed, high-capacity wireless technology optimized for packet data services. Using a single, data-dedicated 1.25 MHz channel for operation, HDR can deliver data at a peak data rate of 2.4 Mbps, which is significantly faster than many accesses provided over landline networks. Thus, the advantages of HDR include, among others, high-speed data transmission and high spectral efficiency.
[0005] HDR is the basis for the 1x Evolution Data Only (1xEV-DO) standard, which has been standardized by the Telecommunications Industry Association as TIA/EIA/IS-856. HDR is designed to be interoperable with existing wireless communication systems, for example a code division multiple access (“CDMA”) system. In CDMA systems, each signal is separated from those of other users by coding the signal. Each user uniquely encodes its information signal into a transmission signal, which is then transmitted over a 1.25 MHz channel. The intended receiver, knowing the code sequences of the user, can decode the transmission signal to receive the information. The fact that a CDMA channel is 1.25 MHz simplifies the integration of HDR technology into the present CDMA framework.
[0006] Using CDMA for illustrative purposes, HDR technology can utilize existing CDMA infrastructure and architecture, including CDMA base station controllers (“BSC”) and base transceiver stations (“BTS”). For example, in a CDMA system configured to be interoperable with HDR technology, data downloaded from the Internet by a user is routed through the BSC to the BTS, which transmits the data to the user via a data-dedicated 1.25 MHz channel or air-link. The BSC packetizes the stream of data it receives into individual 128 byte HDR packets (or “data packets”) before transmitting the data packets to the BTS. The data packets are received by the BTS and placed in a buffer (or “queue”) of fixed size to be transmitted to the user using an HDR protocol.
[0007] To reduce the possibility of overflowing or overrunning the buffer at the BTS, i.e. the BTS receiving more data from the BSC than the buffer can accommodate and/or transmit to the user, as well as the possibility of “starving” the buffer, i.e. the BTS not receiving data from the BSC when the buffer is empty, mechanisms to control the data flow between the BSC and the BTS are commonly employed. Generally, flow control mechanisms are based on the BTS advertising to the BSC the amount of space, or “window”, available at the buffer for receiving more data in order for the BSC to determine how much data to transmit to the BTS.
[0008] One conventional method for flow control between the BSC and the BTS involves the BTS advertising its window size to the BSC at certain, preset, buffer capacity threshold points. For example, when the buffer nears capacity and reaches a preset high watermark threshold, the flow control mechanism is triggered, and the BTS sends a signal informing the BSC to stop transmitting additional data packets so as not to overrun the buffer. Overrunning the buffer can lead to problems such as data packets being dropped and lost at the buffer and having to be retransmitted, leading to less reliable data transmission. Further, having to retransmit dropped or lost data means incurring more overhead and slowing of communication. In the other instance when the buffer is nearing empty and hits a preset low watermark threshold, the flow control mechanism is triggered, and the BTS sends a signal telling the BSC to send more data packets. An empty buffer translates to wasted system resources, because it can result in frames of unused air-link that could be utilized to transmit data from the buffer.
[0009] A drawback to the conventional flow control mechanism described above is that feedback signals may not be received by the BSC in time to prevent overrunning and/or starving the buffer. For instance, by the time the BSC receives a signal from the BTS to stop sending more data, the BSC may have already put too much data “in flight” to avoid overrunning the buffer, leading to data packets being dropped at the buffer. In the case of an emptying buffer, a signal to send more data may not be received by the BSC in time for it to get data to the buffer before the buffer is completely empty, resulting in wasted air-link frames. Further, a flow control mechanism which is triggered by buffer capacity threshold points may result in the transmission of a high number of feedback signals which puts more strain on the system and increases system overhead.
[0010] There is thus a need in the art for an improved method for flow control between BSC and BTS. More particularly, there is a need for a method to reduce the likelihood of data overrun at a buffer, as well as the possibility of a starving buffer.
SUMMARY
[0011] Embodiments disclosed herein address the above stated needs by tying the flow of data between a base station controller and a base transceiver station directly to the rate of data transmitted from the base transceiver station to a wireless receiving unit such as a mobile unit.
[0012] In one aspect of the invention, a flow indication counter responsible for tracking the rate of data flowing out of a buffer at a base transceiver station is incremented each time a data packet is transmitted from the buffer. For example, the updated number of data packets transmitted from the buffer is compared to a threshold number which can be fifty. When the updated number of packets transmitted equals or exceeds the threshold number, the buffer window size is determined, and a flow indication message comprising the buffer window size is generated and transmitted to the base station controller. The buffer window size, which represents the amount of buffer space available for receiving more data, is used by the base station controller to determine the amount of data to transmit to the base transceiver station. Additionally, the flow indication message can further comprise a data packet ID of the last data packet received by the buffer, and this data packet ID is used by the base station controller to determine the proper order of data packets to transmit next.
[0013] In another aspect of the invention, a timer keeps track of an elapsed time since the transmission of the last message and triggers the generation and transmission of a flow indication message when the elapsed time equals or exceeds a threshold time interval. The threshold time interval can be, for example, 0.5 seconds. In this manner, the timer ensures that a flow indication message is sent at least every threshold time interval independently of the number of data packets transmitted from the buffer.
[0014] In another aspect of the invention, a system for flow control can be constructed comprising a flow indication counter module configured to provide an updated number of data packets transmitted from a buffer at a base station. The system can further comprise a window size monitoring module which determines the buffer window size when the updated number of data packets transmitted from the buffer equals or exceeds a threshold number. As an example, the threshold number can be set at fifty. The buffer window size is used by a message generating module which generates a flow indication message comprising the window size. Subsequently, the flow indication message is transmitted to a base station controller which uses the buffer window size to determine the amount of data to transmit to the base transceiver station.
BRIEF DESCRIPTION OF THE DRAWINGS
P-0015[0015]FIG. 1 is a block diagram of an exemplary wireless communication system in accordance with one embodiment of the invention.
P-0016[0016]FIG. 2 is an illustrative representation of a buffer used to illustrate example implementations of the invention.
P-0017[0017]FIG. 3 is a block diagram of a flow control module in accordance with one embodiment of the invention.
P-0018[0018]FIG. 4 is a flowchart of a process for flow control between a base station controller and a base transceiver station in accordance with one embodiment of the invention.
DETAILED DESCRIPTION
P-0019[0019] The present invention is directed to method and system for flow control between a base station controller and a base transceiver station. Although the invention is described with respect to specific embodiments, the principles of the invention, as defined by the claims appended herein, can obviously be applied beyond the embodiments of the description described specifically herein. Moreover, certain details have been left out in order to not obscure the inventive aspects of the invention. The specific details not described in the present application are within the knowledge of a person of ordinary skill in the art.
P-0020[0020] The drawings in the present application and their accompanying detailed description are directed to merely example embodiments of the invention. To maintain brevity, other embodiments of the invention that use the principles of the present invention are not specifically described in the present application and are not specifically illustrated by the present drawings. The word “exemplary” is used exclusively 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.
P-0021[0021]FIG. 1 illustrates an exemplary wireless communication system in accordance with one embodiment. Exemplary wireless communication system <b>100</b> shown in FIG. 1 can comprise, for example, part of a code division multiple access (“CDMA”) communication system configured to be interoperable with High Data Rate (“HDR”) technology. The general principles of CDMA communication systems, and in particular the general principles for generation of spread spectrum signals for transmission over a communication channel is described in U.S. Pat. No. 4,901,307 entitled “Spread Spectrum Multiple Access Communication System Using Satellite or Terrestrial Repeaters” and assigned to the assignee of the present invention. The disclosure in that patent, i.e. U.S. Pat. No. 4,901,307, is hereby fully incorporated by reference into the present application. Moreover, U.S. Pat. No. 5,103,459 entitled “System and Method for Generating Signal Waveforms in a CDMA Cellular Telephone System” and assigned to the assignee of the present invention, discloses principles related to PN spreading, Walsh covering, and techniques to generate CDMA spread spectrum communication signals. The disclosure in that patent, i.e. U.S. Pat. No. 5,103,459, is also hereby fully incorporated by reference into the present application. Further, the present invention utilizes time multiplexing of data and various principles related to “high data rate” communication systems, and the present invention can be used in “high data rate” communication systems, such as that disclosed in U.S. patent application entitled “Method and Apparatus for High Rate Packet Data Transmission” Ser. No. 08/963,386 filed on Nov. 3, 1997, and assigned to the assignee of the present invention. The disclosure in that patent application is also hereby fully incorporated by reference into the present application.
P-0022[0022] Continuing with FIG. 1, exemplary wireless communication system <b>100</b> comprises components generally found in wireless communication systems, including a wireless receiving unit such as mobile unit <b>110</b>, base transceiver station (“BTS”) <b>116</b>, base station controller (“BSC”) <b>122</b>, “Internet” <b>124</b>, and data server <b>126</b>. Mobile unit <b>110</b> and BTS <b>116</b> further comprise, respectively, antenna <b>112</b> and antenna <b>114</b>. In wireless communication system <b>100</b>, BTS <b>116</b> serves as a radio link between mobile unit <b>110</b> and the rest of the system. It is noted that wireless communication systems may comprise other components such as a mobile switching center and a public switched telephone network which are not shown in any of the FIG.s in order to not obscure the invention.
P-0023[0023] Exemplary wireless communication system <b>100</b> illustrates how Internet data can be communicated to mobile unit <b>110</b> by being routed from data server <b>126</b> through Internet <b>124</b> and BSC <b>122</b>, and to BTS <b>116</b> which transmits the data to mobile unit <b>110</b> via, for example, a 1.25 MHz air-link channel. Data server <b>126</b> can be, for example, an HTTP or FTP server. The Internet data can be transmitted from BTS <b>116</b> to mobile unit <b>110</b> using an HDR protocol.
P-0024[0024] Continuing with FIG. 1, BTS <b>116</b> further comprises buffer <b>118</b> and flow control module <b>120</b>. In exemplary wireless communication system <b>100</b>, data received at BSC <b>122</b> is packetized into discrete 128-byte HDR data packets before being sent to BTS <b>116</b>. BTS <b>116</b> receives the 128-byte data packets and places the data packets in buffer <b>118</b>. Buffer <b>118</b>, which is of a fixed-size, is used for temporarily storing the data for processing, or, in a streaming media application, to compensate for any delays in the arrival of related data packets, prior to transmission of the data packets to mobile unit <b>110</b>. It is noted that a base transceiver station such as BTS <b>116</b> can include several buffers, for example transmit, retransmit and signaling buffers, and that each type of buffer is configured to receive and process different types of data for transmission to various wireless receiver units.
P-0025[0025] Continuing with FIG. 1, flow control module <b>120</b> monitors the rate of data “flowing out” of buffer <b>118</b>. For example, flow control module <b>120</b> can count the number of data packets transmitted from buffer <b>118</b> to mobile unit <b>110</b>. At the same time, flow control module <b>120</b> also monitors the window size of buffer <b>118</b>, which is the amount of unoccupied space available at buffer <b>118</b> for receiving more data from BSC <b>122</b>.
P-0026[0026] According to one embodiment, flow control module <b>120</b> utilizes the number of data packets transmitted from buffer <b>118</b> to determine an appropriate time to send feedback to BSC <b>122</b>. It is noted that the feedback sent from flow control module <b>120</b> to BSC <b>122</b> is also referred to as a “flow indication message” in the present application. As an example, flow control module <b>120</b> can be configured to send a flow indication message after the transmission of every fifty data packets from buffer <b>118</b>. However, it is apparent to a person of ordinary skill in the art that the threshold number of data packets transmitted from buffer <b>118</b> needed to trigger the transmission of a flow indication message can be set to some number other than fifty, depending on the requirements and resources of the system. The flow indication message advertises to BSC <b>122</b> how much data should be transmitted to buffer <b>118</b>, based on the window size of buffer <b>118</b>. In this manner, the control of how much data BSC <b>122</b> transmits to BTS <b>116</b> is based on how quickly data is transmitted from buffer <b>118</b>. Thus, FIG. 1 illustrates a wireless communication system wherein the flow control between the BSC and the BTS is directly tied to how fast data is being transmitted from the buffer.
P-0027[0027]FIG. 2 shows an exemplary buffer used to illustrate one embodiment. Exemplary buffer <b>200</b> shown in FIG. 2 constitutes part of a base transceiver station in a wireless communication system such as a CDMA system configured to be interoperable with HDR technology, as described in FIG. 1. Buffer <b>200</b> can correspond, for example, to buffer <b>118</b> of base transceiver station <b>116</b> of wireless communication system <b>100</b> in FIG. 1. Buffer <b>200</b> can be a transmit buffer, for example, configured to queue bulk Internet data prior to transmission of the data to a wireless mobile unit, such as mobile unit <b>110</b> in FIG. 1.
P-0028[0028] Continuing with FIG. 2, buffer <b>200</b> has a fixed size or data capacity (i.e. buffer size <b>206</b>), which can be, for example, approximately 50 Kbytes for a typical transmit buffer. Further, buffer <b>200</b> comprises data <b>208</b> with data size <b>210</b>, which represents the amount of data queued at buffer <b>200</b> for transmission to wireless mobile units, and window <b>212</b> with window size <b>214</b>, which represents the unused space available for receiving more data at buffer <b>200</b>. The relative sizes of data <b>208</b> and window <b>212</b> are a function of the rate of data flow through buffer <b>200</b>.
P-0029[0029] Continuing with FIG. 2, data flows into buffer <b>200</b> from a base station controller as shown by arrow <b>202</b>, and flows out of buffer <b>200</b> to a wireless access terminal, such as a mobile unit, as shown by arrow <b>204</b>. As discussed above, in HDR systems, data is received at the base transceiver station and placed in the buffer in discrete 128-byte data packets such as data packet <b>216</b>. Thus, a typical 50 Kbyte transmit buffer can queue approximately 400 data packets, and a wireless communication system utilizing HDR technology operating at a peak data rate of 2.4 Megabits/second can transmit approximately 2,400 data packets each second.
P-0030[0030] Referring again to FIG. 2, data packet <b>216</b> constitutes one of a plurality of similarly packetized data packets of data <b>208</b> queued in buffer <b>200</b>. Data packet <b>216</b> is enlarged in FIG. 2 to facilitate further discussion. As with other similarly packetized data packets in buffer <b>200</b>, data packet <b>216</b> comprises data, i.e. data <b>218</b> and a packet ID, i.e. packet ID <b>220</b>. Packet ID <b>220</b> is an identification tag “stamped” on data <b>218</b> by the base station controller and is unique to data packet <b>216</b>. Packet ID <b>220</b> can be used, for example, to track the movement of data packet <b>216</b> as it moves through the communication system in a manner known in the art.
P-0031[0031] In one embodiment, the unique packet ID of the last data packet received by the buffer, i.e. the data packet received most recently, is included in the flow indication message transmitted to the base station controller. The packet ID of the data packet received most recently is also referred to as a “last packet ID” in the present application. As discussed above, the flow indication message is transmitted after a threshold number of data packets have been transmitted from the buffer. In the present embodiment, the flow indication message can also comprise the buffer window size in addition to the last packet ID.
P-0032[0032] The base station controller can utilize the information in such a flow indication message to determine not only how much data to send to the base transceiver station based on the buffer window size, but also the correct sequence of data packets to send next based on the last packet ID. In this manner, the flow of data from the base station controller to the base transceiver station is regulated by both the buffer window size and the identification of the last data packet received by the buffer. Thus, FIG. 2 shows an exemplary buffer used to illustrate one embodiment wherein the buffer window size and the packet ID of the last data packet received by the buffer are included in a flow indication message to refine the flow control between the BSC and the BTS.
P-0033[0033]FIG. 3 illustrates an exemplary flow control module in accordance with one embodiment. Flow control module <b>300</b> shown in FIG. 3 constitutes part of a base transceiver station in a wireless communication system, for example a CDMA system configured to be interoperable with HDR technology. Flow control module <b>300</b> can correspond, for example, to flow control module <b>120</b> in base transceiver station <b>116</b> of wireless communication system <b>100</b> in FIG. 1. Flow control module <b>300</b> comprises flow indication counter module <b>302</b>, data packet ID monitoring module <b>304</b>, window size monitoring module <b>306</b>, timer <b>308</b>, and message generating module <b>310</b>. The flow of information into, between, and from the modules is indicated in the block diagram of FIG. 3 by arrows which also indicate the direction of information flow.
P-0034[0034] Continuing with FIG. 3, flow indication counter module <b>302</b> monitors the flow of data transmitted from a buffer which can be, for example, a transmit buffer such as buffer <b>200</b> in FIG. 2, which in turn corresponds to buffer <b>118</b> in FIG. 1. In one embodiment, flow indication counter module <b>302</b> keeps an updated count of the number of data packets transmitted from the buffer and compares the updated count to a threshold number. As an example, the threshold number can be fifty, but can alternatively be some other value, depending on the requirements and resources of the system. When the updated number of data packets transmitted from the buffer is equal to or greater than the threshold number, flow indication counter module <b>302</b> sends a signal to message generating module <b>310</b>, triggering message generating module <b>310</b> to generate a flow indication message. Thus, flow indication counter module <b>302</b> is responsible for keeping track of the flow of data out of the buffer and for triggering the flow control mechanism when the number of data packets transmitted from the buffer equals or exceeds a threshold number.
P-0035[0035] Continuing with FIG. 3, data packet ID monitoring module <b>304</b> also receives information from the buffer. Data packet ID monitoring module <b>304</b> monitors the reception of each data packet by the buffer and reads the packet ID of the data packets. Using FIG. 2 for illustrative purposes, data packet ID monitoring module <b>304</b> can read packet ID <b>220</b> corresponding to data packet <b>216</b> as data packet <b>216</b> is received by buffer <b>200</b>. The packet ID of each subsequent data packet received by the buffer is similarly read by packet ID monitoring module <b>304</b>. Data packet ID monitoring module <b>304</b> provides message generating module <b>310</b> with the packet ID of the data packet received most recently by the buffer. Message generating module <b>310</b> can store the packet ID of the data packet received most recently for subsequent processing.
P-0036[0036] Continuing with FIG. 3, window size monitoring module <b>306</b> is configured to monitor the window size of the buffer. The window size, which represents the amount of buffer space available for receiving additional data, is directly proportional to the rate of data flowing into and out of the buffer. An example of a window size in a buffer was shown as window size <b>214</b> in buffer <b>200</b> in FIG. 2. Straightforwardly, the window size, such as window size <b>214</b>, is reduced as the buffer receives more data packets from the base station controller, and conversely, the window size is increased as data packets are transmitted from the buffer to wireless access terminals or wireless mobile units. Window size monitoring module <b>306</b> monitors the buffer window size and provides message generating module <b>310</b> with the window size.
P-0037[0037] The information received by message generating module <b>310</b> from flow indication counter module <b>302</b>, data packet ID monitoring module <b>304</b> and window size monitoring module <b>306</b>, is utilized by message generating module <b>310</b> to generate a flow indication message. Message generating module <b>310</b> is triggered by flow indication counter module <b>302</b> when a threshold number of data packets has been transmitted from the buffer. Once triggered, message generating module <b>310</b> generates a flow indication message comprising the buffer window size and the packet ID of the data packet received most recently by the buffer.
P-0038[0038] The flow indication message is then transmitted to the base station controller which utilizes the information, i.e. the buffer window size and the packet ID, to determine how much data it can transmit to the buffer and which data packet should be transmitted next. Transmission of the flow indication message can be performed, for example, by a transmit module at the base station. It is noted that the base station transmit module is not shown in any of the FIG.s. Further, message generating module <b>310</b> notifies flow indication counter module <b>302</b> each time a flow indication message is transmitted so that flow indication counter module <b>302</b> can reset the updated number of data packets transmitted from the buffer to zero. By tying the flow control mechanism directly to the rate of data flowing out of the buffer, the present embodiment provides a more reliable method for flow control than conventional flow control methods. Further, the possibility of overrunning the buffer is reduced because the base station controller receives information on the rate of data leaving the buffer and can adjust the amount of data it sends to the buffer accordingly.
P-0039[0039] In another instance, message generating module <b>310</b> is triggered to generate and transmit a flow indication message after a threshold time interval has elapsed since the transmission of a last flow indication message, even if the threshold number of data packets transmitted from the buffer has not been reached, i.e. even if flow indication counter module <b>302</b> does not trigger message generating module <b>310</b>. Timer <b>308</b> in flow control module <b>300</b> keeps track of the elapsed time between flow indication messages sent from message generating module <b>310</b>. If a threshold time interval elapses without a flow indication message being sent, timer <b>308</b> triggers message generating module <b>310</b> to generate and transmit a flow indication message. As an example, the threshold time interval can be 0.5 seconds. The flow indication message can comprise information message generating module <b>310</b> receives from data packet ID monitoring module <b>304</b>, i.e. the last packet ID, and window size monitoring module <b>306</b>, i.e. the buffer window size. Thus, timer <b>308</b> triggers message generating module <b>310</b> to send a flow indication message independently of the number of data packets transmitted from the buffer.
P-0040[0040] Continuing with FIG. 3, timer <b>308</b> is important in situations where the buffer has space available for receiving more data but the base station controller is not transmitting any data. This situation can occur, for instance, when flow indication messages notifying the base station controller of available buffer space are lost or dropped at the base station controller—the base station controller is, in effect, not aware that the buffer can receive more data. Consequently, once the buffer is emptied of data and additional data packets are not received form the base station controller, the flow control mechanism could become “gridlocked” since no data packet is being transmitted from the buffer to trigger the flow control mechanism. In other words, flow indication counter module <b>302</b> would not trigger message generating module <b>310</b> since the threshold number of data packets transmitted needed would not be reached. However, because timer <b>308</b> triggers message generating module <b>310</b> independently of the number of data packets transmitted from the buffer, timer <b>308</b> ensures that flow indication messages are sent even if the buffer is empty and no data packet is being transmitted from the buffer. In this manner, gridlock of the flow control mechanism is prevented. Further, because a flow indication message is sent at least every preset time interval, the possibility of starving the buffer is greatly reduced.
P-0041[0041] Thus, FIG. 3 illustrates an exemplary flow control module which generates and transmits flow indication messages after a threshold number of data packets has been transmitted from a buffer in accordance with one embodiment. Further, FIG. 3 illustrates a safeguard component that triggers the generation and transmission of flow indication messages independently of the number of data packets transmitted from the buffer.
P-0042[0042]FIG. 4 shows flowchart <b>400</b> describing an exemplary process for flow control between a base station controller and a base transceiver in accordance with one embodiment. Flowchart <b>400</b> shown in FIG. 4 describes a process which can be performed at a base transceiver station in a wireless communication system, for example a CDMA system configured to be interoperable with HDR technology. The process shown in flowchart <b>400</b> can be performed by a flow control module such as flow control module <b>300</b> in FIG. 3. Thus, for illustrative purposes, the process shown in flowchart <b>400</b> will be described in the context of flow control module <b>300</b> in FIG. 3.
P-0043[0043] Referring to FIG. 4, the flow control process begins when a connection is made between a base station controller and a base transceiver station in which a flow control module such as flow control module <b>300</b> is housed. At step <b>402</b>, immediately after connection is made, a flow indication message is transmitted to the base station controller. The flow indication message can be transmitted by message generating module <b>310</b> and can comprise the window size of a buffer at the base transceiver station. As an example, the buffer can be a transmit buffer such as buffer <b>118</b> in FIG. 1. The purpose of sending this initial flow indication message is to advertise to the base station controller the amount of buffer space available for receiving data.
P-0044[0044] Continuing with flowchart <b>400</b> in FIG. 4, it is determined at step <b>404</b> whether or not a threshold time interval has elapsed since the last flow indication message was sent. It is noted that the last flow indication message is also referred to as the “last message” in the present application. The threshold time interval, which can be 0.5 seconds, for example, is also referred to as “time T” in the present application. Tracking of the elapsed time can be performed by a timer such as timer <b>308</b> in flow control module <b>300</b> in a manner known in the art. When the timer determines at step <b>404</b> that at least time T has elapsed since the last message was sent, then the flow control process proceeds to step <b>412</b> where a new flow indication message is sent.
P-0045[0045] If instead the timer determines at step <b>404</b> that less than time T has elapsed since the last message was sent, then the flow control process proceeds to step <b>406</b>. At step <b>406</b>, it is determined whether or not a new or “next” data packet has been transmitted from the buffer. This determination can be performed by software in a flow indication counter module such as flow indication counter module <b>302</b>. When a next data packet has not been transmitted, then the process returns to step <b>404</b> to determine again whether time T has elapsed since the last flow indication message was sent. In this manner, i.e. looping back to step <b>404</b> when a next data packet has not been transmitted from the buffer, a safeguard mechanism is available to make certain that flow indication messages will be sent at least every time T.
P-0046[0046] If it is determined at step <b>406</b> that a next data packet has been sent, then the process proceeds to step <b>408</b>, and the flow indication counter, such as flow indication counter module <b>302</b>, is incremented to update the number of data packets transmitted from the buffer. The updated number of data packets transmitted from the buffer can be stored in a memory device in the flow indication module.
P-0047[0047] At step <b>410</b>, the updated number of data packets transmitted from the buffer is compared to a threshold number of data packets transmitted. The threshold number of data packet transmitted, which can be set at 50, for example, is also referred to as a “threshold number” in the present application. Comparison of the updated number of data packets transmitted with the threshold number can be performed, for example, by software in flow indication counter <b>302</b>. When the updated number of data packets transmitted from the buffer is less than the threshold number, the process returns to step <b>404</b>. By looping back to step <b>404</b> when the updated number of data packets transmitted is less than the threshold number, the process makes certain that flow indication messages are sent at least every time T, even when the flow of data out of the buffer is relatively slow, and the time interval before the threshold number is reached is increased.
P-0048[0048] If it is determined at step <b>410</b> that the updated number of data packets transmitted from the buffer is equal to or greater than the threshold number, then the process proceeds to step <b>412</b>. At step <b>412</b>, a flow indication message is generated and sent to the base station controller. The flow indication message can comprise the buffer window size and the packet ID of the last data packet received by the buffer, i.e. last packet ID. The flow indication message can be generated and sent by message generating module <b>310</b> which receives the buffer window size from window size monitoring module <b>306</b> and the last packet ID from packet ID monitoring module <b>304</b>. The steps of generating and transmitting the flow indication message to the base station controller are also referred to as “advertising” in the present application. Thus, the flow indication message advertises the information to the base station controller which uses the information to determine how much data to transmit to the buffer, as well as the proper sequence of data packets to transmit next.
P-0049[0049] Continuing with flowchart <b>400</b>, the process then proceeds to step <b>414</b> where the updated number of data packets transmitted and time T are reset to zero. The process then returns to step <b>404</b> in order to continue controlling the flow of data from the base station controller to the base transceiver station. It is noted that the process does not terminate, or “end”, until the connection between the base station controller and the base transceiver station is severed. Thus, FIG. 4 shows an example process for flow control between a base station controller and a base transceiver station in accordance with one embodiment.
P-0050[0050] Those of skill in the art would 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.
P-0051[0051] Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments 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, and steps 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.
P-0052[0052] The various illustrative logical blocks, modules, and circuits described in connection with the embodiments 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 core, or any other such configuration.
P-0053[0053] The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module, also called a computer program in the present application, may contain a number of source code or object code segments and may reside in any computer readable medium such as a RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, a DVD-ROM or any other form of computer readable medium known in the art. An exemplary computer readable medium is coupled to the processor where the processor can read information from, and write information to, the computer readable medium. In the alternative, the computer readable medium may be integral to the processor. The processor and the computer readable medium may reside in an Application Specific Integrated Circuit (“ASIC”). The processor and the computer readable medium may reside in a flow control module. In the alternative, the processor and the computer readable medium may reside as discrete components in the flow control module.
P-0054[0054] The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Contents4
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7289509B2 | Cited by | United States of America | Search report |
| US7606928B2 | Cited by | United States of America | Search report |
| US2017279725A1 | Cited by | United States of America | Search report |
| US8954045B2 | Cited by | United States of America | Applicant |
| US2011310750A1 | Cited by | United States of America | Pre-grant |
| US2015256577A1 | Cited by | United States of America | Pre-grant |
| US2003152036A1 | Cited by | United States of America | Pre-grant |
| WO2004030433A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2007133411A1 | Cited by | United States of America | Pre-grant |
| US2004186877A1 | Cited by | United States of America | Pre-grant |
| WO2010008250A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2009113048A1 | Cited by | United States of America | Pre-grant |
| US2006176866A1 | Cited by | United States of America | Pre-grant |
| US10432534B2 | Cited by | United States of America | Search report |
| US10051562B2 | Cited by | United States of America | Search report |
| US2008085717A1 | Cited by | United States of America | Pre-grant |
| US8407358B1 | Cited by | United States of America | Search report |
| US2017279725A1 | Cited by | United States of America | Pre-grant |
| US2009092110A1 | Cited by | United States of America | Pre-grant |
| US7817655B1 | Cited by | United States of America | Search report |
| US2006133277A1 | Cited by | United States of America | Pre-grant |
| US11159441B2 | Cited by | United States of America | Search report |
| US7965633B2 | Cited by | United States of America | Search report |
| US2020252827A1 | Cited by | United States of America | Search report |
| US2017019229A1 | Cited by | United States of America | Pre-grant |
| US8089868B2 | Cited by | United States of America | Search report |
| US11720424B2 | Cited by | United States of America | Search report |
| US2004193719A1 | Cited by | United States of America | Pre-grant |
| US7190670B2 | Cited by | United States of America | Search report |
| WO2009137650A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US7352709B2 | Cited by | United States of America | Search report |
| US8078752B2 | Cited by | United States of America | Search report |
| WO2010008250A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10229062B2 | Cited by | United States of America | Search report |
| KR101379198B1 | Cited by | Republic of Korea | Examiner |
| US2022291977A1 | Cited by | United States of America | Search report |
| WO2007070366A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| CN102893565A | Cited by | China | Search report |
| US8693355B2 | Cited by | United States of America | Search report |
| WO2004030433A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2007291759A1 | Cited by | United States of America | Pre-grant |
| US8009672B2 | Cited by | United States of America | Applicant |
| US7603475B2 | Cited by | United States of America | Search report |
| US8255598B2 | Cited by | United States of America | Search report |
| US2001036820A1 | Cites | United States of America | Pre-grant |
| US2002031088A1 | Cites | United States of America | Pre-grant |
| US2002172153A1 | Cites | United States of America | Pre-grant |
| US2003193893A1 | Cites | United States of America | Pre-grant |
| US4901307A | Cites | United States of America | Pre-grant |
| US5063562A | Cites | United States of America | Pre-grant |
| US5103459A | Cites | United States of America | Pre-grant |
| US5193151A | Cites | United States of America | Pre-grant |
| US5197127A | Cites | United States of America | Pre-grant |
| US5418912A | Cites | United States of America | Pre-grant |
| US5581703A | Cites | United States of America | Pre-grant |
| US5592627A | Cites | United States of America | Pre-grant |
| US5696903A | Cites | United States of America | Pre-grant |
| US5701465A | Cites | United States of America | Pre-grant |
| US5748901A | Cites | United States of America | Pre-grant |
| US5862337A | Cites | United States of America | Pre-grant |
| US5913041A | Cites | United States of America | Pre-grant |
| US5933603A | Cites | United States of America | Pre-grant |
| US5974518A | Cites | United States of America | Pre-grant |
| US6058106A | Cites | United States of America | Pre-grant |
| US6075769A | Cites | United States of America | Pre-grant |
| US6076113A | Cites | United States of America | Pre-grant |
| US6105064A | Cites | United States of America | Pre-grant |
| US6205120B1 | Cites | United States of America | Pre-grant |
| US6388992B2 | Cites | United States of America | Pre-grant |
| US6560243B1 | Cites | United States of America | Pre-grant |
| US6754228B1 | Cites | United States of America | Pre-grant |
| US6788704B1 | Cites | United States of America | Pre-grant |
| US6894974B1 | Cites | United States of America | Pre-grant |
| US6925060B2 | Cites | United States of America | Pre-grant |
| US6928054B1 | Cites | United States of America | Pre-grant |
| US6934256B1 | Cites | United States of America | Pre-grant |
29 members in 16 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 1099001 | United States of America | A | |
| US20010010990 | – | – | – |
Members29
| Document | Office | Kind | |
|---|---|---|---|
| US2003103460A1 | United States of America | A1 | |
| CA2468939A1 | Canada | A1 | |
| WO03051078A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2002343721A1 | Australia | A1 | |
| TW200304288A | Taiwan Province of China | A | |
| KR20040058367A | Republic of Korea | A | |
| EP1452052A1 | European Patent Office (EPO) | A1 | |
| NO20042795L | Norway | L | |
| MXPA04005440A | Mexico | A | |
| BR0214692A | Brazil | A | |
| JP2005512475A | Japan | A | |
| CN1618244A | China | A | |
| IL162360A0 | Israel | A0 | |
| RU2004120298A | Russian Federation | A | |
| RU2298881C2 | Russian Federation | C2 | |
| US7237007B2 | United States of America | B2 | |
| UA80102C2 | Ukraine | C2 | |
| US2007223383A1 | United States of America | A1 | |
| TWI298228B | Taiwan Province of China | B | |
| JP2009022014A | Japan | A | |
| EP1452052B1 | European Patent Office (EPO) | B1 | |
| EP2083596A1 | European Patent Office (EPO) | A1 | |
| DE60232990D1 | Germany | D1 | |
| KR100971102B1 | Republic of Korea | B1 | |
| CN102497653A | China | A | |
| JP4965523B2 | Japan | B2 | |
| EP2083596B1 | European Patent Office (EPO) | B1 | |
| CN102497653B | China | B | |
| US9826433B2 | United States of America | B2 |
54 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Correction - Drawing NOT RequiredX/DR | X/DR | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Mail Formal Drawings RequiredMN/DR | MN/DR | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Examiner's Amendment Communication | – | |
| Formal Drawings RequiredN/DR | N/DR | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| IFW Scan & PACR Auto Security Review | – | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2003103460
- Publication, EPODOC
- US2003103460
- Application
- 10010990
- Application, DOCDB
- 1099001
- Application, EPODOC
- US20010010990
Titles
- English
- Method and system for flow control between a base station controller and a base transceiver station
Patent term adjustment
- A delay
- +944 daysthe office missed an examination deadline
- Applicant delay
- −15 days
- Net adjustment
- 929 days
Classification
- CPC, 11
- H04L47/27
- H04W28/10
- H04L47/30
- H04L47/36
- H04W28/14
- H04W48/08
- H04W92/12
- H04W28/0231
- H04W28/0278
- H04L47/10
- H04W8/04
- IPC, 8
- H04W24 02
- H04L47 27
- H04L47 30
- H04L47 36
- H04W28 10
- H04W28 14
- H04W48 08
- H04W92 12
- USPC, 3
- 370236200
- 709234000
- 709235000