1. Field
Example embodiments relate generally to handling codec rate adaptation for users of wireless communications networks, for example LTE networks.
2. Related Art
In LTE, codec rates for voice are assigned initially based on factors such as device characteristics. Voice codecs for LTE include, for example, adaptive multi rate—wideband (AMR-WB), AMR7.95, and AMR5.9. Likewise, different codes rates exist for video data. The codec rate for a given call, for video or voice data, can be adapted mid-call depending on explicit congestion notifications (ECN). The specification 3GPP 23.860 describes mechanisms by which the codec rate for a video or voice stream can be lowered based on ECNs, or increased based on a lack of ECNs midstream. Currently the adaptation of codec rates for video or voice users is based on congestion notifications received for that user.
One or more embodiments relate to a method and apparatus for generating handling codec rate adaptation for users of a wireless communications network.
According to at least one example embodiment, a method of handling congestion in a wireless communications network may include receiving, at a network element, a media data packet sent from a first source user equipment (UE) towards a first destination UE; detecting, at the network element, congestion in at least one of a downlink channel between the network element and the first destination UE, and an uplink channel between the first source UE and the network element; identifying a second source UE that is transmitting first data to a second destination UE through the network element and has a subscriber priority level lower than the first source UE if the detecting detects congestion; sending a congestion indication that causes the second source UE to lower a rate at which the second source UE transmits the first data through the network element to the second destination UE if the detecting detects congestion; and sending the media data packet from the network element to the first destination UE.
According to at least one example embodiment, the identifying may include determining subscriber priority levels of a plurality of UE pairs, each of the plurality of UE pairs including two UEs communicating with one another via the network element, and choosing, as the second source UE, a UE from among a UE pair having a subscriber priority level lower than the first source UE.
According to at least one example embodiment, the identifying may further include determining which of the plurality of UE pairs has a lowest subscriber priority level, and choosing, as the second source UE, a UE from among the UE pair having the lowest priority level.
According to at least one example embodiment, the sending the congestion indication may include, at the network node, inserting the congestion indication into an alternate data packet and sending the alternate data packet from the network element to the second destination UE, the alternate data packet being one of a plurality of data packets included in the first data being sent from the second source UE to the second destination UE.
According to at least one example embodiment, the congestion indication may be an explicit congestion notification (ECN) code point.
According to at least one example embodiment, the network element may be an enhanced node B (eNB) and the wireless communications network follows an LTE protocol.
According to at least one example embodiment, the first destination UE may be associated with the eNB and the detecting may include detecting congestion in a downlink channel between the eNB and the first destination UE.
According to at least one example embodiment, the first source UE may be associated with the eNB and the detecting may include detecting congestion in an uplink channel between the first source UE and the eNB.
According to at least one example embodiment, the media data packet may be a voice data packet or a video data packet.
According to at least one example embodiment, a network apparatus for handling congestion in a wireless communications network may include a data receiving unit; a data transmitting unit; a memory unit configured to store parameters corresponding with user equipment (UEs) in communication with the network element; and a processing unit coupled to the data transmitting unit, the data receiving unit, and the memory unit. The processing unit may be configured to control operations including, receiving a media data packet sent from a first source user equipment (UE) towards a first destination UE; detecting congestion in at least one of a downlink channel between the network element and the first destination UE, and an uplink channel between the first source UE and the network element; identifying a second source UE that is transmitting first data to a second destination UE through the network element and has a subscriber priority level lower than the first source UE if the detecting detects congestion; sending a congestion indication configured to cause the second source UE to lower a rate at which the second source UE transmits the first data through the network element to the second destination UE if the detecting detects congestion; and sending the media data packet from the network element to the first destination UE.
Example embodiments will become more fully understood from the detailed description provided below and the accompanying drawings, wherein like elements are represented by like reference numerals, which are given by way of illustration only and thus are not limiting and wherein:
Various at least one example embodiment will now be described more fully with reference to the accompanying drawings in which some example embodiments are shown.
Detailed illustrative embodiments are disclosed herein. However, specific structural and functional details disclosed herein are merely representative for purposes of describing at least one example embodiment. Example embodiments may, however, be embodied in many alternate forms and should not be construed as limited to only the embodiments set forth herein.
Accordingly, while example embodiments are capable of various adaptations and alternative forms, embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit example embodiments to the particular forms disclosed, but on the contrary, example embodiments are to cover all adaptations, equivalents, and alternatives falling within the scope of example embodiments. Like numbers refer to like elements throughout the description of the figures. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between” versus “directly between”, “adjacent” versus “directly adjacent”, etc.).
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising,”, “includes” and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
As used herein, the term user equipment (UE) may be considered synonymous to, and may hereafter be occasionally referred to, as a terminal, mobile unit, mobile station, mobile user, access terminal (AT), subscriber, user, remote station, access terminal, receiver, etc., and may describe a remote user of wireless resources in a wireless communication network. The term base station (BS) may be considered synonymous to and/or referred to as a base transceiver station (BTS), NodeB, extended Node B (eNB), access point (AP), etc. and may describe equipment that provides the radio baseband functions for data and/or voice connectivity between a network and one or more users.
Exemplary embodiments are discussed herein as being implemented in a suitable computing environment. Although not required, exemplary embodiments will be described in the general context of computer-executable instructions, such as program modules or functional processes, being executed by one or more computer processors or CPUs. Generally, program modules or functional processes include routines, programs, objects, components, data structures, etc. that performs particular tasks or implement particular abstract data types.
The program modules and functional processes discussed herein may be implemented using existing hardware in existing communication networks. For example, program modules and functional processes discussed herein may be implemented using existing hardware at existing network elements or control nodes (e.g., an AP shown in
In the following description, illustrative embodiments will be described with reference to acts and symbolic representations of operations (e.g., in the form of flowcharts) that are performed by one or more processors, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processor of electrical signals representing data in a structured form. This manipulation transforms the data or maintains it at locations in the memory system of the computer, which reconfigures or otherwise alters the operation of the computer in a manner well understood by those skilled in the art.
The UEs 120 may be in wireless communication with either of the first eNB 110A and the second eNB 110B. The first eNB 110A and the second eNB 110B are connected to the MME 130. Though not pictured, wireless communications network 100 may include other elements of an LTE core network in addition to MME 130. The UEs 120 may be, for example, mobile phones, smart phones, computers, or personal digital assistants (PDAs).
The first eNB 110A and the second eNB 110B may also be connected to the serving gateway 160. The S-GW 160 is capable of routing and forwarding user data packets of UEs connected to the first eNB 110A or the second eNB 110B. The S-GW 160 provides access for the first eNB 110A and the second eNB 110B to the P-GW 170. The P-GW 170 provides the first eNB 110A and the second eNB 110B with access to other packet data networks including, for example the internet 180, via the serving gateway 192. For the purpose of simplicity, the operations of the first eNB 110A and the second eNB 110B will be discussed primarily with reference to the first eNB 110A. However, the second eNB 110B is capable of operating in the same manner discussed with reference to the first eNB 110A.
UEs from among the plurality of UEs 120 may be sending voice data or video data to other UEs. UEs from among the plurality of UEs 120 sending voice data may choose a codec rate to use when sending the voice data. Higher codec rates correspond to higher fidelity voice data and a higher data rate while lower codec rates correspond to lower fidelity voice data and a lower data rate. Similarly, UEs from among the plurality of UEs 120 sending video data may choose a codec rate to use when sending the video data. The resources available within the first eNB 110A for delivering data to and from the UEs communicating with the first eNB 110A are limited. When the resources required to meet demands of the UEs communicating with the first eNB 110A meet or exceed the amount of resources available to the first eNB 110A, congestion results and data packets may be dropped by the first eNB 110A experiencing congestion. This may result in a reduced level of quality for UEs in communication with the eNB experiencing congestion.
In order to prevent and/or reduce congestion experienced in the wireless communications network 100, the wireless network 100 implements a codec rate adaptation scheme. For example, the first eNB 110A is capable of notifying UEs when congestion is being experienced, or is expected to be experienced in the near future. For example, the first eNB 110A may generate an indication of existing or approaching congestion using, for example, an explicit congestion notification (ECN). The ECN may be used to prompt a UE sending data via the eNB experiencing congestion to reduce the amount of data being sent by, for example, reducing a codec rate being used to send voice data, or reducing a maximum codec rate being used to send video data. The use of ECNs to prompt codec rate adaptation is discussed in the 3GPP 23.860 specification with respect to multimedia telephony services for IP multimedia subsystems (IMS) (MTSI) clients.
According to the 3GPP 23.860 specification, session description protocol (SDP) offer and answer procedures may be used to establish ECN usage between MTSI clients when ECN is enabled in the MTSI clients. After ECN usage has been negotiated, terminals designate voice or video media packets with the “ECT(0)” code point. If an eNB that supports ECN detects congestion on the downlink for a voice or video user, the eNB may designate ECT-marked downlink packets with the “ECN-CE” code point to indicate “congestion experienced”. The ECN-CE marked packet indicates to the MTSI client receiving the packet that it may be necessary to request new codec rates for the sender of the packet. The receiving MTSI client may determine which rate to request using, for example, known procedures described in the 3GPP specification TS 26.114. If the receiving MTSI client determines a rate request is necessary, the receiving MTSI client sends a rate request to the sending MTSI client requesting the sending MTSI client to use a lower transmission rate. For voice data, the rate request may request the use of a codec which has a lower code rate than a codec currently being used. For video data sent using an adaptive bit rate, the rate request may request the use of a lower maximum bit rate. A process for lowering congestion by using ECNs to effect codec rate adaptation will now be discussed below with reference to
Referring to
Accordingly, in the method of using ECNs to handle network congestion illustrated in
Further, though
In both cases of uplink congestion and downlink congestion a rate adaptation request is sent and the UE receiving the rate adaptation request responds to the rate adaptation request by using a lower, less data intensive, codec rate to send subsequent voice data to the other UE. Accordingly, in both cases, the experienced congestion may be reduced.
Additionally, though, for the purpose of simplicity, the method of
Likewise, if the second UE 124 is sending video data to the first UE 122 via the first eNB 110A, and the first eNB 110A detects congestion in the uplink channel between the first eNB 110A and the second UE 124, the first eNB 110A may prompt the first UE 122 to send a rate adaptation request to the second UE 124 by modifying a video data packet sent from the second UE 124 towards the first UE 122 to include the ECN-CE code point. The second UE 124 may respond to the rate adaptation request by lowering a maximum bit rate used to encode the video data being sent to the first UE 122.
As is described above with reference to
However, in the method illustrated above in
Thus, when making decisions about allocating limited network resources of the communications network 100 to users of the wireless communications network 100 including, for example, decisions about lowering voice or video data codec rates for certain users, it may be desirable to take into account relative subscriber priority levels of the users. This way, when allocating the limited resources of the wireless network 100, a QoE of subscribers with higher subscriber priority levels can be maintained if possible.
As a result, current gold level users may be more likely to choose to continue paying the higher fees associated with the gold subscriber priority level. Further, bronze and silver level users may be more likely to choose to increase their fees by paying higher fees to become gold level subscribers.
A method for lowering congestion by using ECNs to effect codec rate adaptation while taking into account users' subscriber priority levels will now be discussed below with reference to
The transmitting unit 352, receiving unit 354, memory unit 356, and processing unit 358 may send data to and/or receive data from one another using the data bus 359. The transmitting unit 352 is a device that includes hardware and any necessary software for transmitting wired and/or wireless signals including, for example, data signals and control signals, via one or more wired and/or wireless connections to other network elements in the wireless communications network 100. For example, data and/or control signals may include voice data packets having the “ECT(0)” or “ECN-CE” code points.
The receiving unit 354 is a device that includes hardware and any necessary software for receiving wired and/or wireless signals including, for example, data signals and control signals, via one or more wired and/or wireless connections to other network elements in the wireless communications network 100.
The memory unit 356 may be any device capable of storing data including magnetic storage, flash storage, etc.
The processing unit 358 may be any device capable of processing data including, for example, a microprocessor configured to carry out specific operations based on input data, or capable of executing instructions included in computer readable code.
For example, the processing unit 358 is capable of determining subscriber priority levels of subscribers associated with each of the UEs, from among the UEs 120, in communication with the network element 301. Further, the processing unit is capable of comparing subscriber priority levels associated with two or more UEs to determine which UE is associated with the highest subscriber priority level.
Example methods for operating the network element 301, the first eNB 110A, and the second eNB 110B will now be discussed in greater detail below with reference to
According to at least one example embodiment, each of the operations illustrated in, or described with respect to,
Like
Referring to
After receiving the ECN-CE marked packets 225, the fourth UE 128 determines whether or not to request a codec rate change from the sender of the ECN-CE marked voice packet, the third UE 126, according to known methods. In the example illustrated in
Accordingly, in the method of using ECNs to handle network congestion illustrated in
Further, though
Referring to
In step S420, a congestion determination is made by the eNB. For example, in the downlink case, a determination may be made regarding whether or not congestion exists on the downlink channel between the first eNB 110A and the second UE 124. In the uplink case, a determination may be made regarding whether or not congestion exists on the uplink channel between the second UE 124 and the first eNB 110A. The first eNB 110A may determine whether or not congestion exists on the downlink channel or the uplink channel with the first UE 124 according to known methods.
If congestion is not determined to exist in step S420, the first eNB 110A may proceed to step S460.
In step S460, the voice packets received from the source UE are delivered to the destination UE without adding a congestion indication, and the process may end. For example, in the downlink case, the first eNB 110A may forward the media data packets received from the first UE 122 in step S410 to the second UE 124 without changing a code point of the received media data packets from the ECT(0) code point to the ECN-CE code point. In the uplink case, the first eNB 110A may forward the media data packets received from the second UE 124 in step S410 to the first UE 122 without changing a code point of the received voice packets from the ECT(0) code point to the ECN-CE code point.
Returning to step S420, if the first eNB 110A determines that congestion does exist on the downlink channel to the second UE 124 in the downlink case, or congestion exists in the uplink channel from the second UE 124 in the uplink case, the first eNB 110A may proceed to step S430.
In step S430, a determination is made regarding whether or not any UE pairs exist having subscriber priority levels lower than the subscriber priority level of the source UE. For example, in the downlink case, the first eNB 110A may determine whether or not there are any UE pairs communicating via the first eNB 110A which have subscriber priority levels lower than that of the first UE 122. For example, the eNB 110A may determine the subscriber priority levels (e.g., gold, silver or bronze) of each UE participating in a voice communication with another UE via the first eNB 110A. The first eNB may consider each set of two UEs communicating with one another via the first eNB 110A to be a UE pair. The first eNB 110 may then compare the subscriber priority level of the first UE 122 to the subscriber priority levels of the identified UE pairs to determine if any UE pairs exist having lower subscriber priority levels than the first UE 122.
Likewise, in the uplink case, the first eNB 110 may compare the subscriber priority level of the second UE 124 to the subscriber priority levels of the identified UE pairs to determine if any UE pairs exist having lower subscriber priority levels than the second UE 124.
For example, the first eNB 110A may consider a highest subscriber priority level associated with either of the UEs in each UE pair to be the subscriber priority level for the UE pair. For example, if a UE pair includes a UE associated with a gold subscriber priority level communicating with a UE associated with a silver subscriber priority level, the eNB 110A may consider the subscriber priority level of the UE pair to be gold. The first eNB 110A may obtain subscriber priority level information for one or more UEs in communication with the eNB 110A according to know methods.
If, in step S430, no UE pairs with subscriber priority levels lower than that of the source UE are identified, the first eNB 110A proceeds to step S440.
In step S440 the media data packets received in step S410 from the source UE are delivered to the destination UE with a congestion indication.
The congestion indication sent by the first eNB 110A in step S440 may be anything which is capable of indicating the existence of congestion in the wireless network communication network 100. For example, in the downlink case, the first eNB 110A may change the code point of the media data packets received from the first UE 122 from the ECT(0) code point to the ECN-CE code point thus indicating the presence of congestion in the downlink channel between the first eNB 110A and the second UE 124. In the uplink case, the first eNB 110A may change the code point of the media data packets received from the second UE 124 from the ECT(0) code point to the ECN-CE code point thus indicating the presence of congestion in the uplink channel between the second UE 124 and the first eNB 110A.
The destination UE may respond to the ECN-CE marked voice packet by sending a codec rate adaptation request to the source UE. The source UE may respond to the rate adaptation request by lowering a codec rate used to send subsequent voice packets to the destination UE, thus reducing the amount of network resources needed to deliver subsequent voice packets from the source UE to the destination UE.
Returning to step S430, if one or more UE pairs are identified which has a subscriber priority level lower than that of the source UE, the first eNB 110A proceeds to step S450.
In step S450, a congestion indication is sent to at least one of the one or more UE pairs identified in step S430 as having a subscriber priority level lower than that of the source UE.
For example, in the downlink case, the third UE 126 may be sending media data packets to the fourth UE 128 via the first eNB 110A. Further, in step S430, the first eNB 110A may identify a UE pair including the third UE 126 and the fourth UE 128 as a UE pair having a lower subscriber priority level than the source UE, first UE 122. Accordingly, in step S450, the first eNB 110A may send a congestion indication to the fourth UE 128.
The congestion indication sent by the first eNB 110A in step S450 may be anything which is capable of indicating the existence of congestion in the wireless network communication network 100. For example, the first eNB 110A may change the code point of a media data packet received from the third UE 126 from the ECT(0) code point to the ECN-CE code point. As is illustrated above in
In the uplink case, the fourth UE 128 may be sending media data packets to the third UE 126 via the first eNB 110A. Further, in step S430, the first eNB 110A may identify a UE pair including the third UE 126 and the fourth UE 128 as a UE pair having a lower subscriber priority level than the source UE, first UE 122. Accordingly, in step S450, the first eNB 110A may send a congestion indication to the third UE 126 by, for example, adding an ECN-CE code point to a media data packet sent from the fourth UE 128 to the third UE 126. The third UE 126 may respond to the ECN-CE marked media data packet by sending a codec rate adaptation request to the fourth UE 128. The fourth UE 128 may respond to the rate adaptation request by lowering a codec rate used to send subsequent voice packets to the third UE 126.
According to at least one example embodiment, if in step S430, the first eNB 110A identifies multiple UE pairs having a lower priority level than the source UE, then in step S450, the first eNB 110A may choose, as the UE pair to which to send the congestion notification, the UE pair having the lowest subscriber priority level from among all the identified UE pairs.
After step S450, the first eNB 110A may proceed to step S460 and deliver the media data packets received from the source UE in step S410 to the destination UE without adding a congestion indication.
Accordingly, using the method of providing codec rate adaptation using ECNs and subscriber priority levels discussed above with reference to
Example embodiments being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from example embodiments, and all such modifications are intended to be included within the scope of example embodiments.