Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR TRANSMITTING PACKETS IN ACCORDANCE WITH QUALITY OF SERVICE CLASSIFICATIONS DEFINED BY A TUNNEL IDENTIFIER
Document Type and Number:
WIPO Patent Application WO/2018/229534
Kind Code:
A1
Abstract:
A method, apparatus, and computer program product facilitate the transfer of packets of data with different Quality of Service to a mobile device running multiple applications at the same time. In one method, one or more packets are caused to be transmitted in accordance with the Quality of Service classification that has been identified. This Quality of Service classification is identified by one or more predefined bits of the tunnel identifier. These predefined bits will have a value corresponding to a given Quality of Service classification. In another method, the packets are transmitted via a tunnel along with a tunnel identifier. This tunnel identifier has one or more predefined bits assigned based on the Quality of Service classification that have been identified for the one or more packets.

Inventors:
POVELAINEN HARRI MARKUS (FI)
TIRRONEN MIKKO EINARI (FI)
Application Number:
PCT/IB2017/053595
Publication Date:
December 20, 2018
Filing Date:
June 16, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA SOLUTIONS & NETWORKS OY (FI)
NOKIA USA INC (US)
International Classes:
H04W76/11; H04W76/12
Domestic Patent References:
WO2007130281A22007-11-15
Foreign References:
US20110158155A12011-06-30
US20070258427A12007-11-08
EP2141862A12010-01-06
Other References:
None
Attorney, Agent or Firm:
GOSNELL, Guy R. et al. (US)
Download PDF:
Claims:
THAT WHICH IS CLAIMED:

1 . A method comprising:

receiving one or more packets associated with a tunnel identifier, wherein the tunnel identifier includes one or more predefined bits to indicate a Quality of Service classification for the one or more packets;

identifying the Quality of Service classification for the one or more packets based upon the one or more predefined bits; and

causing the one or more packets to be transmitted in accordance with the Quality of Service classification that has been identified.

2. A method according to Claim 1 further comprising:

selecting one of a plurality of radios based upon the Quality of Service

classification of the one or more packets.

3. A method according to any one of Claims 1 or 2 further comprising:

allocating the tunnel identifier, wherein the one or more predefined bits of the tunnel identifier are dedicated to indicate the Quality of Service classification; and

causing the tunnel identifier to be transmitted to a device.

4. A method according to Claim 3 further comprising:

receiving an initial context setup request message, wherein the message comprises a request for an allocation of the tunnel identifier, and wherein the tunnel identifier is allocated in response there to.

5. A method according to any one of Claims 1 to 4 further comprising:

receiving the packets for a plurality of applications associated with different Quality of Service classifications via a same tunnel, wherein the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different Quality of Service classifications with a remainder of the tunnel identifier being in common.

6. A method according to any one of Claims 1 to 5 further comprising:

receiving a predefined value to the one or more predefined bits indicating a Quality of Service classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between Quality of Service classifications within the tunnel identifier.

7. A computer program product comprising at least one memory configured to store a plurality of computer program instructions, wherein the computer program instructions, upon execution, are configured to implement the method of any one of Claims 1 to 6.

8. An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory coupled to the at least one processor, and the computer program code configured to, when executed by a processor, cause the apparatus to:

receive one or more packets associated with a tunnel identifier, wherein the tunnel identifier includes one or more predefined bits to indicate a Quality of Service

classification for the one or more packets;

identify the Quality of Service classification for the one or more packets based upon the one or more predefined bits; and

cause the one or more packets to be transmitted in accordance with the Quality of Service classification that has been identified.

9. An apparatus according to Claim 8 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

select one of a plurality of radios based upon the Quality of Service classification of the one or more packets.

10. An apparatus according to any one of Claims 8 or 9 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

allocate the tunnel identifier, wherein the one or more predefined bits of the tunnel identifier are dedicated to indicate the Quality of Service classification; and

cause the tunnel identifier to be transmitted to a device.

1 1 . An apparatus according to Claim 10 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

receive an initial context setup request message, wherein the message comprises a request for an allocation of the tunnel identifier, and wherein the tunnel identifier is allocated in response there to.

12. An apparatus according to any one of Claims 8 to 1 1 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

receive the packets for a plurality of applications associated with different Quality of Service classifications via a same tunnel, wherein the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different Quality of Service classifications with a remainder of the tunnel identifier being in common.

13. An apparatus according to any one of Claims 8 to 12 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

receive a predefined value to the one or more predefined bits indicating a Quality of Service classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between Quality of Service classifications within the tunnel identifier.

14. A method comprising:

identifying a Quality of Service classification for one or more packets associated with an application to be transmitted via a downlink;

assigning one or more predefined bits of a tunnel identifier based upon the Quality of Service classification; and

causing the one or more packets to be transmitted via a tunnel along with the tunnel identifier including the one or more predefined bits that define the Quality of Service classification associated with the one or more packets.

15. A method according to Claim 14 further comprising:

receiving the tunnel identifier, wherein the one or more predefined bits of the tunnel identifier have been dedicated to indicate the Quality of Service classification.

16. A method according to Claim 15 further comprising:

causing an initial context setup request message to be transmitted, wherein the message comprises a request for an allocation of the tunnel identifier that includes the one or more predefined bits to indicate the Quality of Service for the one or more packets

17. A method according to any one of Claims 14 to 16 further comprising: causing the transmission of the packets for a plurality of applications associated with different Quality of Service classifications via a same tunnel, wherein the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different Quality of Service classifications with a remainder of the tunnel identifier being in common.

18. A method according to any one of Claims 14 to 17 further comprising: assigning a predefined value to the one or more predefined bits indicating a Quality of Service classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between Quality of Service classifications within the tunnel identifier.

19. A method according to any one of Claims 14 to 18 further comprising: assigning the Quality of Service classification for the one or more packets based on contents of the packets themselves.

20. A computer program product comprising at least one memory configured to store a plurality of computer program instructions, wherein the computer program instructions, upon execution, are configured to implement the method of any one of Claims 14 to 19.

21 . An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory coupled to the at least one processor, and the computer program code configured to, when executed by a processor, cause the apparatus to:

identify a Quality of Service classification for one or more packets associated with an application to be transmitted via a downlink;

assign one or more predefined bits of a tunnel identifier based upon the Quality of Service classification; and

cause the one or more packets to be transmitted via a tunnel along with the tunnel identifier including the one or more predefined bits that define the Quality of Service classification associated with the one or more packets.

22. An apparatus according to Claim 21 wherein the at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to: receive the tunnel identifier, wherein the one or more predefined bits of the tunnel identifier have been dedicated to indicate the Quality of Service classification.

23. An apparatus according to Claim 22 wherein the one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

cause an initial context setup request message to be transmitted, wherein the message comprises a request for an allocation of the tunnel identifier that includes the one or more predefined bit to indicate the Quality of Service classification for the one or more packets.

24. An apparatus according to any one of Claims 21 to 23 wherein the one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

cause the transmission of the packets for a plurality of applications associated with different Quality of Service classifications via a same tunnel, wherein the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different Quality of Service classifications with a remainder of the tunnel identifier being in common.

25. An apparatus according to any one of Claims 21 to 24 wherein the one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

assign a predefined value to the one or more predefined bits indicating a Quality of Service classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between Quality of Service classifications within the tunnel identifier.

26. An apparatus according to any one of Claims 21 to 25 wherein the one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to:

assign the Quality of Service classification for the one or more packets based on contents of the packets themselves.

Description:
METHOD AND APPARATUS FOR TRANSMITTING PACKETS IN ACCORDANCE WITH QUALITY OF SERVICE CLASSIFICATIONS DEFINED BY A TUNNEL

IDENTIFIER

TECHNOLOGICAL FIELD

[0001] An example embodiment of the present disclosure relates generally to defining one or more Quality of Service classifications for one or more packets transmitted to one or more mobile devices and, more particularly, to providing one or more packets with a tunnel identifier that includes one or more predefined bits to indicate a Quality of Service classification.

BACKGROUND

[0002] Mobile devices have become an essential tool used by individuals to communicate with one another, access information, entertain themselves, and otherwise improve many facets of their lives. Improvements in the capabilities of mobile devices, the expansions of the coverage areas of the networks with which mobile devices interact, and increases in the degree to which people rely on their mobile devices have converged to create situations where large numbers of people expect ubiquitous, robust network connectivity. To meet these needs and expectations, service providers and other entities have sought to develop and implement improved wireless networks, including Fifth Generation, or 5G networks.

[0003] As with other large-scale infrastructure improvement projects, the construction, deployment, installation, and implementation of 5G networks and their related

infrastructure is likely to involve many participants and occur in a phased manner, at least in the sense that 5G network services may become available in some geographic areas before they become available in others. Consequently, users of mobile devices will likely experience situations where they and their mobile device move through areas that offer network environments that involve different and/or multiple generations of network technology. At the same time, users of mobile devices may be sensitive to service disruptions and/or perceived performance issues with their mobile device in such network environments. Beyond this, there will still be a large part of the network environment that does not support new technology and there must be ways to allow for legacy devices across the network to still be able to work in conjunction with the new technology.

[0004] Many mobile devices currently execute multiple applications. These applications may need different Quality of Service (QoS) classifications to run optimally. However, the packets transmitted via a tunnel during execution of these different applications have generally been subjected to the same QoS. As such, the packets transmitted via a tunnel for some applications may not be afforded the desired QoS, while packets transmitted via the tunnel for other applications may receive a greater QoS than anticipated. Thus, existing networks may not uniformly provide the desired QoS for packets transmitted for different applications via a tunnel.

BRIEF SUMMARY

[0005] A method, apparatus, and computer program product are provided in accordance with an example embodiment in order to cause packets to be transmitted via a tunnel and subsequently processed in accordance with the appropriate QoS

classification, even in an instance in which packets having different QoS classifications are transmitted via the same tunnel. The method and apparatus of an example embodiment identify the QoS classification of one or more packets based upon the tunnel identifier which includes one or more predefined bits to indicate a QoS classification. As such, the method and apparatus in accordance with an example embodiment may allow for a mobile device to receive multiple packets from different application with different QoS classifications with the packets then being further processed and/or transmitted in accordance with the respective QoS classifications.

[0006] In an example embodiment, a method is provided that includes receiving one or more packets associated with a tunnel identifier. The tunnel identifier of the example embodiment includes one or more predefined bits to indicate a QoS classification for the one or more packets. This method also includes identifying the QoS classification for the one or more packets based upon the one or more predefined bits. The method further includes causing the one or more packets to be transmitted in accordance with the QoS classification that has been identified.

[0007] The method of an example embodiment also includes selecting one of a plurality of radios based upon the QoS classification of the one or more packets. In another example embodiment, the method also includes allocating the tunnel identifier and causing the tunnel identifier to be transmitted to a device. In this example

embodiment, one or more predefined bits of the tunnel identifier may be dedicated to indicate the QoS classification. For example the first four bits of the tunnel identifier may be dedicated to indicate the QoS classification, allowing for up to sixteen different QoS classifications. In another example embodiment, a method is provided that includes receiving an initial context setup request message. The message comprises a request for an allocation of the tunnel identifier, and the tunnel identifier is allocated in response thereto.

[0008] In still another embodiment, a method is provided that includes receiving the packets for a plurality of applications associated with different QoS classifications via the same tunnel. In this regard, the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different QoS classifications with the remainder of the tunnel identifier being in common. In another example embodiment, a method is provided that includes receiving the one or more predefined bits having a predefined value indicating a QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between QoS

classifications within the tunnel identifier. For example, an access point that does not have the capability to provide different QoS service levels may be allowed to still communicate with the network, but the predefined bits would merely have a predefined value, such as zero.

[0009] In one embodiment, a computer program product is provided. The computer program product comprises at least one memory configured to store a plurality of computer program instructions. The computer program instructions, upon execution, are configured to implement any of the embodiments of the method provided above.

[0010] In an example embodiment, an apparatus is provided that includes at least one processor and at least one memory including computer program code with the at least one memory, coupled to the at least one processor, and the computer program code configured to, when executed by a processor, cause the apparatus to receive one or more packets associated with a tunnel identifier. The tunnel identifier includes one or more predefined bits to indicate a QoS classification for the one or more packets. The at least one memory and the computer program code are also configured to, when executed by the processor, cause the apparatus to identify the QoS classification for the one or more packets based upon the one or more predefined bits. The at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to cause the one or more packets to be transmitted in accordance with the QoS classification that has been identified.

[0011 ] The at least one memory and the computer program code may be further configured to select one of a plurality of radios based upon the QoS classification of the one or more packets. The at least one memory and the computer program code may be further configured to, when executed by the processor, cause the apparatus of an example embodiment to allocate the tunnel identifier and cause the tunnel identifier to be transmitted to a device. In this example embodiment, the one or more bits of the tunnel identifier may be dedicated to indicate the QoS classification. For example, the first four bits of the tunnel identifier may be dedicated to indicate the QoS classification, allowing for up to sixteen different QoS classifications. The at least one memory and the computer program code may be further configured to, when executed by the processor, cause the apparatus of an example embodiment to receive an initial context setup request message. The message comprises a request for an allocation of the tunnel identifier, and the tunnel identifier is allocated in response thereto.

[0012] The at least one memory and the computer program code may be further configured to, when executed by the processor, cause the apparatus of an example embodiment to receive the packets for a plurality of applications associated with different QoS classifications via the same tunnel. The tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different QoS classifications with the remainder of the tunnel identifier being in common. In still another example embodiment, the at least one memory and the computer program code may be configured to receive the one or more predefined bits having a predefined value indicating a QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between QoS classifications within the tunnel idenitifer. For example, an access point that does not have the capability to provide different QoS levels may be allowed to still communicate with the network, but the predefined bits would merely have a predefined value, such as zero.

[0013] In an example embodiment, the at least one memory and computer program code is configured to, when executed by the processor, cause the apparatus of an example embodiment to receive one or more packets associated with a tunnel identifier. The tunnel identifier of the example embodiment includes one or more predefined bits to indicate a QoS classification for the one or more packets. The at least one memory and the computer program code is also configured to, when executed by the processor, cause the apparatus of an example embodiment to identify the QoS classification for the one or more packets based upon the one or more predefined bits. The at least one memory and the computer program code is further configured to, when executed by the processor, cause the apparatus of an example embodiment to cause the one or more packets to be transmitted in accordance with the QoS classification that has been identified.

[0014] Another method, apparatus, and computer program product are provided in accordance with an example embodiment in order to cause one or more packets to be transmitted via a tunnel along with the tunnel identifier that has been marked based on a QoS classification. The method and apparatus of an example embodiment assigns one or more predefined bits of the tunnel identifier based on the QoS classification. The method and apparatus of an example embodiment further identifies a QoS classification for the packets to be sent downlink.

[0015] In an example embodiment, a method is provided that includes identifying a QoS classification for one or more packets associated with an application to be transmitted via a downlink. This method also includes assigning one or more predefined bits of a tunnel identifier based upon the QoS classification. The method further includes causing the one or more packets to be transmitted via a tunnel along with the tunnel identifier including the one or more predefined bits that define the QoS classification associated with the one or more packets.

[0016] The method of an example embodiment also includes identifying the tunnel identifier. In this example embodiment, the one or more bits of the tunnel identifier may be dedicated to indicate the QoS classification. For example, the first four bits of the tunnel identifier may be dedicated to indicate the QoS classification, allowing for up to sixteen different QoS classifications. In another example embodiment, a method is provided that includes causing an initial context setup request message to be transmitted. The message comprises a request for an allocation of the tunnel identifier that includes one or more predefined bits to indicate the QoS classification for the one or more packets.

[0017] The method of an example embodiment also includes causing the

transmission of the packets for a plurality of applications associated with different QoS classifications via the same tunnel. In this regard, the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different QoS classifications with the remainder of the tunnel identifier being in common. In still another example embodiment, a method is provided that includes assigning a predefined value to the one or more predefined bits indicating the QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between QoS classifications within the tunnel identifier. For example, a network that does not have the capability to assign different QoS service levels may be allowed to still communicate with the network, but the predefined bits would merely have a predefined value, such as zero. In another sample embodiment, a method is provided that includes assigning the QoS classification for the one or more packets based on contents of the packets themselves.

[0018] A computer program product is provided. The computer program product comprises at least one memory configured to store a plurality of computer program instructions. The computer program instructions, upon execution, are configured to implement any of the embodiments of the method provided above.

[0019] In an example embodiment, an apparatus is provided that includes at least one processor and at least one memory including computer program code with the at least one memory, coupled to the at least one processor, and the computer program code configured to, when executed by a processor, cause the apparatus to identify a QoS classification for one or more packets associated with an application to be transmitted via a downlink. The at least one memory and the computer program code are also configured to, when executed by the processor, cause the apparatus to assign one or more predefined bits of a tunnel identifier based upon the QoS classification. The at least one memory and the computer program code are further configured to, when executed by the processor, cause the apparatus to cause the one or more packets to be transmitted via a tunnel along with the tunnel identifier including the one or more predefined bits that define the QoS classification associated with the one or more packets.

[0020] The at least one memory and the computer program code may be further configured to receive the tunnel identifier. In this example embodiment, the one or more bits of the tunnel identifier may be dedicated to indicate the QoS classification. For example the first four bits of the tunnel identifier may be dedicated to indicate the QoS classification, allowing for up to sixteen different QoS classifications. The at least one memory and the computer program code may also be configured to, when executed by the processor, cause the apparatus of an example embodiment to cause an initial context setup request message to be transmitted. The message comprises a request for an allocation of the tunnel identifier that includes one or more predefined bits to indicate the QoS classification for the one or more packets.

[0021 ] The at least one memory and the computer program code may be further configured to, when executed by the processor, cause the apparatus of an example embodiment to cause the transmission of the packets for a plurality of applications associated with different QoS classifications via a same tunnel. In this regard, the tunnel identifier of the packets for different applications have one or more predefined bits that are different to indicate different QoS classifications with the remainder of the tunnel identifier being in common. In still another example embodiment, the at least one memory and the computer program code may be configured to assign a predefined value to the one or more predefined bits indicating the QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate based on the QoS classifications within the tunnel identifier. For example, a network that does not have the capability to assign different QoS service levels may be allowed to still communicate with the network, but the predefined bits would merely have a designated value, such as zero. The at least one memory and the computer program code may be further configured to, when executed by the processor, cause the apparatus of an example embodiment to assign the QoS classification for the one or more packets based on contents of the packets themselves. In an example embodiment, the at least one memory and computer program code is configured to, when executed by the processor, cause the apparatus of an example embodiment to identify a Quality of Service classification for one or more packets associated with an application to be transmitted via a downlink. The at least one memory and the computer program code is also configured to, when executed by the processor, cause the apparatus of an example embodiment to assign one or more predefined bits of a tunnel identifier based upon the Quality of Service classification. The at least one memory and the computer program code is further configured to, when executed by the processor, cause the apparatus of an example embodiment to cause the one or more packets to be transmitted via a tunnel along with the tunnel identifier including the one or more predefined bits that define the Quality of Service classification associated with the one or more packets.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Having thus described example embodiments of the present disclosure in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:

[0023] Figure 1 is a schematic representation of a system that supports

communications between access points and mobile devices in accordance with an example embodiment of the present invention;

[0024] Figure 2 is a block diagram of an apparatus that may be embodied by an access point or a network entity, such as user plane function, and that may be specifically configured in accordance with an example embodiment of the present invention;

[0025] Figure 3 is flow chart illustrating operations performed, such as by the apparatus of Figure 2 embodied by an access point, in accordance with an example embodiment of the present invention;

[0026] Figure 4 is a flow chart illustrating operations performed, such as by the apparatus of Figure 2 embodied by a network entity, in accordance with an example embodiment of the present invention; and

[0027] Figure 5 is a signal flow diagram illustrating an example of the signals exchanged between at least an access point, a network entity, and a mobile device in accordance with an example embodiment of the present invention.

DETAILED DESCRIPTION

[0028] Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms "data," "content," "information," and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.

[0029] Additionally, as used herein, the term 'circuitry' refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry);

(b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and

(c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of 'circuitry' applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term 'circuitry' also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term 'circuitry' as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, field programmable gate array, and/or other computing device.

[0030] As defined herein, a "computer-readable storage medium," which refers to a physical storage medium (e.g., volatile or non-volatile memory device), may be differentiated from a "computer-readable transmission medium," which refers to an electromagnetic signal.

[0031 ] A method, apparatus, and computer program product are provided in accordance with an example embodiment in order to define the Quality of Service (QoS) classification associated with packets for multiple applications transmitted via a tunnel from a network entity to an access point and, in turn, to a mobile device. At least some of the example embodiments and implementations contemplated and discussed herein are aimed at meeting the need for solutions associated with the increasing amount of data being distributed to and consumed by users for different applications needing different QoS levels. The coming implementation of 5G networks is anticipated to only increase the amount of data being consumed and therefore efficient methods of transfer through a system, while maintaining the desired QoS levels, is important. [0032] Tunnels are used in order to transfer data from, for example, a network to an access point. Traditionally, individual tunnels have been dedicated to transferring packets with the same QoS classification. This has become problematic with the increase of both data transferred and QoS classifications available. Having to build and maintain distinct tunnels for data of each QoS classification creates inefficiencies in the entire system as a whole. With the implementation of 5G in the near future, the amount of data and therefore the number of tunnels will continue to grow. Being able to use the same tunnel for multiple packets with different QoS classifications, such as the packets for different applications with different QoS levels that are transmitted via the same tunnel in accordance with an example embodiment, could allow for tunnels to be more efficient and handle the system's demand.

[0033] QoS may be defined in many different ways, such as by using key quality indicators. These indicators could include amount of network latency, number of bit errors, and/or availability of a link. Some standardized protocols may determine the different classes of QoS. For example, the 3rd Generation Partnership Project (3GPP) defines four different categories of services: conversational, streaming, interactive, and background. Conversational may relate to video chat, telephone, and online video games, which requires reliable constant data flow. Streaming may refer to multimedia services; which may require high quality service in order to provide a better experience. Interactive relates to services like web browsing; which generally does not require constantly strong data flow. Background refers to applications like email that run in the background; which therefore only require periodic data flow. Each category of service may have its own definition of QoS. There may be additional subdivision of QoS classifications within those four different categories. There may also be new types of categories as technology advances. Additionally, some applications may seem to fall into multiple categories and there must be a determination on the exact QoS classification. This determination could be done using a predefined hierarchy of classifications. The determination between multiple categories could also be based on the subscription of the end user. Some qualities that may be taken into consideration include: traffic class, maximum bit rate, guaranteed bit rate, delivery order, maximum service delivery unit (SDU) size, SDU format information, SDU error ratio, residual bit error ratio, delivery of erroneous SDUs, transfer delay, traffic handling priority, allocation/retention priority, and source statistics descriptor. QoS classifications and how they are assigned can be preconfigured and stored by a device, or they may be dynamically changed based on communication between an access point and the network.

[0034] Many of the example embodiments and implementations described and otherwise contemplated herein address the technical challenges associated with properly handling and discriminating between one or more packets that are transmitted via the same tunnel when the packets have different QoS classifications, such as packets associated with different applications. In order to allow for packets to be differently processed and further transmitted in accordance with their respective QoS classification, each packet may be associated with a tunnel identifier that includes one or more predefined bits dedicated to indicating the QoS classification. This allows the system to more efficiently determine how to process the packets in order to provide the desired QoS, such as selecting the proper radios to use when further transmitting the one or more packets to mobile devices.

[0035] The access points 12 and the mobile devices 10 may communicate via wireline communications, but most commonly communicate via any one of several different types of wireless communications. For example, the access points and the mobile devices may communicate in a sub 1 GHz band as defined by IEEE 802.1 1 ah standard. Additionally, the access points and the mobile devices may use other IEEE 802.1 1 standards, such as 802.1 1 aa, 802.1 1 ac, 802.1 1 ad, 802.1 1 ad, 802.1 1 ae,

802.1 1 af, or another wireless standard. Thus, multiple different radios configured to communicate via different ones of these or other standards, such as via Wi-Fi or via a wireless local area netwok (WLAN), may support communications between the access point and the mobile device. The access point may be embodied by any of a variety of network entities, such as an access point, a base station, a Node B (NB), an evolved Node B (eNB), a radio network controller (RNC) or the like. The mobile devices may also be embodied by a variety of devices, such as a portable digital assistant (PDA), mobile telephone, smartphone, pager, mobile television, gaming device, laptop computer, camera, tablet computer, touch surface, video recorder, radio, electronic book, positioning device (e.g., global positioning system (GPS) device), or any combination of the aforementioned, and other types of voice and text communications systems.

[0036] The access points 12 may, in turn, be in communication with a network 14, such as a core network via a gateway, such that the access points establish cellular radio access networks by which the mobile device 10 may communicate with the network. The network includes a plurality of network devices, such as servers or other computing devices. One or more of the network device may comprise a User Plane Function and/or a Session Management Function (SMF), Core Access and Mobility Management Function (AMF), or the like. The system environment 100 of Figure 1 may include a plurality of different cellular radio access networks to support communication between the network devices, and the access points including, for example, a 5G radio access network, an LTE (long term evolution) radio access network, a UMTS (universal mobile telecommunications system) radio access network, etc. [0037] A large numbers of mobile devices operate in accordance with multiple applications that need data or other information delivered by a network via an access point. These applications may operate in accordance with different QoS classifications in order to run correctly or optimally. In order to identify the QoS to be afforded the packets associated with the different applications having different QoS classifications, such that the access point and the mobile device can properly process and transmit the packets, the tunnel identifier associated with the packets can be used by an apparatus 20 as depicted in Figure 2 and embodied by either an access point and/or a network device in order to designate the QoS classification of the packets.

[0038] As shown in Figure 2, the apparatus 20 may include or otherwise be in communication with processing circuitry 22 that is configurable to perform actions in accordance with example embodiments described herein. The processing circuitry may be configured to perform data processing, application execution, signal processing, measurements and report generation, and/or other processing and management services according to an example embodiment of the present invention. In some embodiments, the apparatus or the processing circuitry may be embodied as a chip or chip set. In other words, the apparatus or the processing circuitry may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus or the processing circuitry may therefore, in some cases, be configured to implement an embodiment of the present invention on a single chip or as a single "system on a chip." As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein. Alternatively or additionally, a processing system may be embodied by or have similar functionality to the processing circuitry.

[0039] In an example embodiment, the processing circuitry 22 may include a processor 24 and memory 26 that may be in communication with or otherwise control a communication interface 28. As such, the processing circuitry may be embodied as a circuit chip (e.g., an integrated circuit chip) configured (e.g., with hardware, software or a combination of hardware and software) to perform operations described herein. However, in some embodiments, the processing circuitry may be embodied as a portion of the mobile terminal 10.

[0040] The communication interface 28 may include one or more interface

mechanisms for enabling communication with other devices and/or networks, such as for enabling communication between an access point 12 and a mobile device 10 or between an access point 12 and the network 14. In some cases, the communication interface may be any means such as a device or circuitry embodied in either hardware, or a

combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the processing circuitry 22. In this regard, the communication interface may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network and/or a

communication modem or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), Ethernet or other methods.

[0041 ] In an example embodiment, the memory 26 may include one or more non- transitory memory devices such as, for example, volatile and/or non-volatile memory that may be either fixed or removable. The memory may be configured to store information, data, applications, instructions or the like for enabling the apparatus 20 to carry out various functions in accordance with example embodiments of the present invention. For example, the memory may be configured to buffer input data for processing by the processor 24. Additionally or alternatively, the memory could be configured to store instructions for execution by the processor. As yet another alternative, the memory may include one of a plurality of databases that may store a variety of files, contents or data sets. Among the contents of the memory, applications may be stored for execution by the processor in order to carry out the functionality associated with each respective application. In some cases, the memory may be in communication with the processor via a bus for passing information among components of the apparatus.

[0042] The processor 24 may be embodied in a number of different ways. For example, the processor may be embodied as various processing means such as one or more of a microprocessor or other processing element, a coprocessor, a controller or various other computing or processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), an field programmable gate array (FPGA), or the like. In an example embodiment, the processor may be configured to execute instructions stored in the memory 26 or otherwise accessible to the processor. As such, whether configured by hardware or by a combination of hardware and software, the processor may represent an entity (e.g., physically embodied in circuitry - in the form of processing circuitry 22) capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when the processor is embodied as an ASIC, FPGA or the like, the processor may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor is embodied as an executor of software

instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed.

However, in some cases, the processor may be a processor of a specific device (e.g., a pass-through display or a mobile terminal) configured to employ an embodiment of the present invention by further configuration of the processor by instructions for performing the algorithms and/or operations described herein. The processor may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor.

[0043] Referring now to Figure 3, the operations performed by the apparatus 20 of Figure 2 in accordance with an example embodiment of the present invention in which the apparatus is embodied by or in association with an access point are depicted as an example process flow 300. In this regard, the apparatus includes means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for receiving one or more packets associated with a tunnel identifier. For example, in a cellular radio access network, including but not limited to LTE networks and/or other 4G (fourth generation) networks, tunnels are used in order to transport data packets from network to access points. Therefore, in order to identify the tunnel through which the packets are to be transmitted and the QoS of the packets transmitted via the tunnel, a tunnel identifier is attached to or otherwise associated with the packets. Although various types of tunnels may be employed, such as Generic Routing Encapsulation (GRE), a network may use a General Packet Radio Service (GPRS) Tunneling Protocol (GTP) to transmit packets to access points. GTP identifies each tunnel with unique tunnel identifiers. Each tunnel identifier in the 3GPP architecture has a 32-bit number field that is used to identify individual packets and tunnels. Other types of tunnels may include different type of identifiers.

[0044] As shown in Figure 3, the apparatus includes means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for identifying the QoS classification for the one or more packets received via the tunnel from a network device. The QoS classification is identified based upon the value of one or more predefined bits of the identifier that indicate the QoS classification for the one or more packets. For example, an example embodiment using the 3GPP architecture may dedicate four bits of the tunnel identifier to indicate the QoS classification, allowing for sixteen different QoS classifications and 268,435,455 distinct tunnels. More or less bits could be dedicated to the QoS classification based on the number of QoS classes and the number of tunnels needed. Other tunnel architectures may have identifiers with more or less bits and therefore the number of available tunnels would be determined by the architecture and the number of predefined bits dedicated to indicate the QoS

classification. In some embodiments, the apparatus may be pre-configured to allocate or dedicate the one or more of predefined bits of the tunnel identifier to the QoS

classification and to associate different values of the predefined bit(s) with corresponding QoS classifications. In other embodiments, the apparatus may be configured to communicate with a network device in order to allocate a predefined number of bits of the tunnel identifier for QoS classification and to associate different values of the predefined bit(s) with corresponding QoS classifications.

[0045] The apparatus may also include, with reference to block 34, means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for identifying the QoS classification for the one or more packets received from a network device via a tunnel based on the one or more predefined bits of the tunnel identifier. For example, as pre-configured or as defined by communication with a network device, values of 0000, 0001 , 0010, and 0100 for the four predefined bits may be associated with packets of four different applications having QoS classifications of 1 , 2, 3, and 4, respectively.

[0046] In one embodiment, the tunnel identifier is established based on

communication between the access point and a network device. For example, the apparatus embodied by the access point could receive an initial context setup request message The initial context setup request message comprises a request for an allocation of the tunnel identifier, and the tunnel identifier is allocated in response thereto, as shown in block 30 by means, such as the processing circuitry 22, the processor 24, or the like. This initial context setup request message could be received from the network through a SMF, AMF, UPF, or the like. The initial context setup request message could serve as a request to define the number of bits that are to be dedicated to indicating the QoS classification. Additionally or alternatively, the initial context setup request message could be a request to allocate the tunnel identifier with the one or more bits of the tunnel identifier being dedicated to indicating the QoS classification. This communication could be done, for example, using the S1 AP interface.

[0047] The apparatus may include, with reference to block 36, means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for causing the one or more packets received via the tunnel to be transmitted in accordance with the QoS classification that has been identified from the tunnel identifier associated with the packets. For example, one of a plurality of radios may be selected based upon the QoS classification of the one or more packets, such that the packets are transmitted to the mobile device while providing the desired QoS. The radio could be one of, but not limited to radios operating in accordance with 5G, LTE, 4G, 3G, Wi-Fi, and the like, each of which may provide different QoS. Thus, in the above example involving QoS classifications of 1 , 2, 3, and 4, different radios may be selected for the packets of different applications received via the tunnel that have different QoS classifications such that the packets are further transmitted to the mobile device in a manner consistent with the respective QoS classification.

[0048] Additionally, the apparatus may also include means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for assigning a predefined value to the one or more predefined bits indicating a QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between QoS classifications within the tunnel identifier. For example, some legacy networks, access points, or mobile devices may not be configured to provide different QoS for packets received via the same tunnel. Thus, by assigning a predefined value, e.g., 0, to the predefined bits of the tunnel identifier, the packets may be processed without distinguishing between and providing different QoS levels.

[0049] The apparatus in an example embodiment of Figure 2 may further include means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for receiving the packets for a plurality of applications associated with different QoS classifications via the same tunnel. The same tunnel can be used for different QoS classifications because the tunnel identifier and not the tunnel itself defines the QoS. Having bits dedicated to indicate a QoS classification allows for multiple packets with different QoS classifications to still use the same tunnel. For example, if the first four bits of the tunnel identifier are dedicated to indicating the QoS classification, then two packets in the same tunnel can have separate tunnel identifiers of 0x43456789 and 0x13456789 with 0x4 and 0x1 indicating the QoS classifications and the remainder of the tunnel identifier, 3456789, that is common between the two packets referring to the tunnel. This reuse of the same tunnel for packets of different applications with different QoS classifications allows for a reduction in the number of tunnels necessary for the network and a corresponding reduction in the construction and maintenance of the tunnels.

[0050] Referring now to Figure 4, the operations performed by the apparatus 20 of Figure 2 as embodied by a network device, such as a UPF, in accordance with an example embodiment of the present invention are depicted as an example process flow 400. In this regard, the apparatus includes means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for identifying a QoS classification for one or more packets associated with an application to be transmitted via a downlink, such as to an access point. For example, a packet from an application that needs a higher QoS classification may be identified as "high priority" by the apparatus. This identification of the QoS classification for one or more packets may be based on content of the packets themselves, such as based upon deep packet inspection (DPI). In some embodiments, the determination may be based on the application with which a packet is associated with and/or on one or more of the target and source internet protocol (IP) addresses and ports. Additionally or alternatively, this identification could be done using traffic pattern based analysis and/or using other information apart from the packets' content, such as end user subscriptions or system load distributions.

[0051 ] The apparatus also includes, with reference to block 44, means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for assigning one or more predefined bits of the tunnel identifier based upon the QoS classification. The predefined bits and the values of the predefined bits associated with different QoS classifications could be pre-configured or could defined through

communication with an access point as described above.

[0052] In one embodiment, the apparatus, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, could also cause the

transmission of an initial context setup request message to an access point. The initial context setup request message comprises a request for an allocation of the tunnel identifier. The initial context setup request message could be a request to define the number of bits that are to be dedicated to indicate the QoS classification and/or the values of the predefined bits associated with different QoS classifications. The initial context setup request message could also be a request to allocate the tunnel identifier that identifies the particular tunnel and that includes one or more bits to indicate the QoS classification. The access point may respond with a tunnel identifier with one or more bits dedicated to QoS classification. The apparatus may include means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, that cause the apparatus to identify the tunnel identifier received from the access point in order to determine the number of bits dedicated to indicate the QoS classification, the values of those bits to indicate different QoS classifications, as well as the location, e.g., prefix, suffix, etc., of the one or more bits in the tunnel identifier. For example, the allocation of the predefined number of bits may be four bits at the beginning of the tunnel identifier. Alternatively, the allocation of the predefined number of bits may be two bits at the end of the tunnel identifier. The apparatus may include means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for assigning a predefined value to the one or more bits dedicated to a QoS classification that allows for packets to be transmitted via a tunnel in a manner that does not discriminate between QoS classifications within the tunnel identifier. For example, some legacy networks, access points, or mobile devices may not be configured to provide different QoS for packets received via the same tunnel. Thus, by assigning a predefined value, e.g., 0, to the predefined bits of the tunnel identifier, the packets may be processed without distinguishing between and providing different QoS levels.

[0053] The apparatus also includes, with reference to block 46, means, such as the processing circuitry 22, the processor 24, the communication interface 28 or the like, for causing the one or more packets to be transmitted via a tunnel in association with the tunnel identifier including the one or more predefined bits that define the QoS

classification associated with the one or more packets. In some embodiments, packets for a plurality of applications associated with different QoS classifications may be transmitted via a same tunnel with the tunnel identifier associated with the packets for different applications having one or more predefined bits with different values to indicate different QoS classifications. The remainder of the tunnel identifier is in common between the packets, however, since it identifies the tunnel itself. The same tunnel can therefore be used for packets having different QoS classifications because the tunnel identifier and not the tunnel itself defines the QoS. Having bits dedicated to indicate the QoS classification allows for multiple packets with different QoS classifications to still use the same tunnel. For example, if the first four bits of a tunnel identifier are dedicated to indicating the QoS classification, then two packets in the same tunnel can have separate tunnel identifiers of 0x43456789 and 0x13456789 with 0x4 and 0x1 indicating the QoS classifications and a remainder of the tunnel identifier, 3456789, that is common between the two packets referring to the tunnel. This reuse of the same tunnel for packets of different applications with different QoS classifications allows for a reduction in the number of tunnels necessary for the network and a corresponding reduction in the construction and maintenance of the tunnels.

[0054] Referring now to Figure 5, a system is illustrated according to an example embodiment that has one or more mobile devices 10, an access point 12, and a network device 14, e.g., a UPF. In this example embodiment, before the access point allocates a tunnel identifier that has one or more bits dedicated to indicating the QoS classification, the access point and network device have a QoS bit negotiation 52. In this QoS bit negotiation 52, the network device and/or access point may determine the number of bits to be dedicated to the QoS classification. The network device 14 and/or access point 12 may also determine the values of the dedicated bits that correspond with the different QoS classifications. In some embodiments in which the size and values of the predefined bits of the tunnel identifier are preconfigured, this QoS bit negotiation 52 may be omitted. The one or more bits could be positioned at the beginning of the tunnel identifier, or anywhere within the tunnel identifier as defined by either reconfiguration or the QoS bit negotiation 52. [0055] In this example embodiment according to Figure 5, when the attach procedure begins, the network device 14 may initially cause the transmission of an initial setup request message 54 requesting the tunnel identifier for the packets that will be sent via a tunnel to the access point 12. The access point 12 may then allocate a tunnel identifier 520 and send this tunnel identifier back 54 to the network device 14. In this embodiment, the network device may then inspect the packets 540 to be sent in order to determine the QoS classification that is needed. This inspection 540 may be done using DPI or other technologies. In the example embodiment, after the network determines the QoS classification associated with the packets, the packets will be assigned a tunnel identifier. The tunnel identifier has one or more bits dedicated to indicate the QoS classification as well as a remainder that identifies the tunnel.

[0056] The network device 14, may then cause the one or more packets to be transmitted via the tunnel to the access point. Upon receiving the one or more packets associated with a tunnel identifier 58, the access point may identify the QoS classification for the one or more packets based on the one or more predefined bits of the tunnel identifier. The access point may receive the packets for a plurality of applications associated with different QoS classifications via the same tunnel. After the QoS classification has been identified, the access point may then cause the one or more packets to be transmitted and/or further processed in accordance with the QoS classification 59. This further transmission may be done using different radios that provide different QoS levels in order to deliver a plurality of packets from different applications with different QoS classifications to a mobile device 10 with the packets being handled in accordance with the different corresponding QoS levels even though the packets were transmitted via the same tunnel.

[0057] As described above, Figures 3 and 4 illustrate flowcharts of an apparatus 10, method, and computer program product according to example embodiments of the invention. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, processor, circuitry, and/or other devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory device 26 of an apparatus employing an embodiment of the present invention and executed by a processor 24 of the apparatus. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart blocks. These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer- readable memory produce an article of manufacture, the execution of which implements the function specified in the flowchart blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks.

[0058] Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.

[0059] In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.

[0060] Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.