Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TUNNEL FLOW CONTROL
Document Type and Number:
WIPO Patent Application WO/2018/174887
Kind Code:
A1
Abstract:
Methods and apparatus, including computer program products, are provided for flow control. In some example embodiments, there may be provided a method that includes receiving, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and forwarding, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor. Related systems, methods, and articles of manufacture are also described.

Inventors:
HOEHNE HANS (FI)
Application Number:
PCT/US2017/023809
Publication Date:
September 27, 2018
Filing Date:
March 23, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA TECHNOLOGIES OY (FI)
NOKIA USA INC (US)
International Classes:
H04L12/863; H04L12/801
Foreign References:
US20120147750A12012-06-14
US20090161545A12009-06-25
US20060164985A12006-07-27
US20140254358A12014-09-11
Other References:
None
Attorney, Agent or Firm:
SUAREZ, Pedro, F. et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED

1. An apparatus comprising:

at least one processor; and

at least one memory including program code which when executed causes the apparatus to at least:

receive, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and

forward, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor.

2. The apparatus of claim 1, wherein the control information comprises a flow control report, and wherein the control information processor schedules, based on the flow control report, data in a flow identified in the received header.

3. The apparatus of any of claims 1 -2, wherein the other type information comprises another flow control report for another tunnel, and wherein the control information processor schedules, based on the other flow control report, data in the other flow.

4. The apparatus of any of claims 1-2, wherein the other type of information is user plane data.

5. The apparatus of claim 4, wherein the apparatus is further caused to at least forward, in response to detecting that the indication corresponds to user plane data, the user plane traffic to a higher layer for handling.

6. The apparatus of any of claims 1 -5, wherein a tunnel comprises the at least one packet data unit.

7. The apparatus of claim 6, wherein the tunnel comprises a generic routing encapsulation tunnel, and wherein the header comprises a general routing encapsulation header.

8. The apparatus of any of claims 1-7, wherein the indication comprises a predetermined key signaling that the tunnel includes control information comprising a flow control report.

9. The apparatus of any of claims 1-8, wherein the indication is located in a field of the header.

10. The apparatus of claim 9, wherein the field is the key field and/or the reserved bits field of a general routing encapsulation header.

11. The apparatus of any of claims 1-10, wherein the apparatus is further caused to at least detect the indication from the header of the at least one packet data unit and extract a key identifying the tunnel associated with the control information.

12. A method comprising:

receiving, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and

forwarding, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor.

13. The method of claim 12, wherein the control information comprises a flow control report, and wherein the control information processor schedules, based on the flow control report, data in a flow identified in the received header.

14. The method of any of claims 12-13, wherein the other type information comprises another flow control report for another tunnel, and wherein the control information processor schedules, based on the other flow control report, data in the other flow.

15. The method of any of claims 12-14, wherein the other type of information is user plane data.

16. The method of claim 15 further comprising:

forwarding, in response to detecting that the indication corresponds to user plane data, the user plane traffic to a higher layer for handling.

17. The method of any of claims 12-16, wherein a tunnel comprises the at least one packet data unit.

18. The method of claim 17, wherein the tunnel comprises a generic routing encapsulation tunnel, and wherein the header comprises a general routing encapsulation header.

19. The method of any of claims 12-18, wherein the indication comprises a predetermined key signaling that the tunnel includes control information comprising a flow control report.

20. The method of any of claims 12-19, wherein the indication is located in a field of the header.

21. The method of claim 20, wherein the field is the key field and/or the reserved bits field of a general routing encapsulation header.

22. The method of any of claims 12-21 further comprising:

detecting the indication from the header of the at least one packet data unit; and extracting a key identifying the tunnel associated with the control information.

23. A non-transitory computer-readable storage medium including program code which when executed by at least one processor causes operations comprising:

receiving, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and forwarding, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor.

24. An apparatus comprising:

means for receiving, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and

means for forwarding, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor.

25. The apparatus of claim 24 further comprising means for performing any of claims 13-22.

26. An apparatus comprising:

at least one processor; and

at least one memory including program code which when executed causes the apparatus to at least:

schedule for transmission user plane data and control information; and send at least one packet data unit including a header, the header including an indication determined based on at least the schedule for transmission of the user plane data and the control information, the indication indicating whether the at least one packet data unit carries a control information or another type of information.

27. The apparatus of claim 26, wherein the apparatus is further caused to at least configure in the header the indication as a key.

28. The apparatus of any of claims 26-27, wherein the control information comprises a flow control report.

29. The apparatus of any of claims 26-28, wherein the other type information comprises another flow control report for another tunnel and/or user plane data.

30. The apparatus of any of claims 26-29, wherein the at least one packet data unit provides a tunnel.

31. The apparatus of claim 30, wherein the tunnel comprises a generic routing encapsulation tunnel, and wherein the header comprises a general routing encapsulation header.

32. The apparatus of any of claims 26-31, wherein the indication comprises a predetermined key signaling that the control information comprises a flow control report.

33. The apparatus of any of claims 26-32, wherein the indication is located in a field of the header.

34. The apparatus of any of claims 26-33, wherein the field is the key field and/or the reserved bits field of a general routing encapsulation header.

35. A method comprising:

scheduling for transmission user plane data and control information; and sending at least one packet data unit including a header, the header including an indication determined based on at least the schedule for transmission of the user plane data and the control information, the indication indicating whether the at least one packet data unit carries a control information or another type of information.

36. The method of claim 35 further comprising:

configuring in the header the indication as a key.

37. The method of any of claims 35-36, wherein the control information comprises a flow control report.

38. The apparatus of any of claims 35-37, wherein the other type information comprises another flow control report for another tunnel and/or user plane data.

39. The method of any of claims 35-38, wherein the at least one packet data unit provides a tunnel.

40. The method of any of claims 35-39, wherein the tunnel comprises a generic routing encapsulation tunnel, and wherein the header comprises a general routing encapsulation header.

41. The method of any of claims 35-40, wherein the indication comprises a predetermined key signaling that the control information comprises a flow control report.

42. The method of any of claims 35-41, wherein the indication is located in a field of the header.

43. The method of claim 42, wherein the field is the key field and/or the reserved bits field of a general routing encapsulation header.

44. A non-transitory computer-readable storage medium including program code which when executed by at least one processor causes operations comprising:

scheduling for transmission user plane data and control information; and sending at least one packet data unit including a header, the header including an indication determined based on at least the schedule for transmission of the user plane data and the control information, the indication indicating whether the at least one packet data unit carries a control information or another type of information.

45. An apparatus comprising:

means for scheduling for transmission user plane data and control information; and

means for sending at least one packet data unit including a header, the header including an indication determined based on at least the schedule for transmission of the user plane data and the control information, the indication indicating whether the at least one packet data unit carries a control information or another type of information.

46. The method of claim 45 further comprising means for performing any of claims 36- 43.

Description:
TUNNEL FLOW CONTROL

[001] The subject matter described herein relates to flow control and, in particular, flow control with respect to tunnels.

Background

[002] Tunneling can be used to encapsulate a first protocol within another protocol. For example, in the case of an Internet Protocol (IP), a packet of a first protocol can be encapsulated within an IP packet. The encapsulation can be used to provide privacy, security, authentication, and/or for other reasons such as enabling the encapsulated packet to be transported in another type of network or using another type of transport protocol. The Generic Routing Encapsulation (GRE) is an example of a tunneling protocol. RFC-2890 describes an extension to the GRE protocol that adds a Key for authentication and a Sequence Number for ordering packets.

Summary

[003] Methods and apparatus, including computer program products, are provided tunnel flow control.

[004] In some example embodiments, there may be provided a method that includes receiving, on a wireless link, at least one packet data unit including a header, the header including an indication of whether the at least one packet data unit carries a control information or another type of information; and forwarding, in response to detecting that the indication corresponds to the control information, the at least one packet data unit including at least a portion of the control information to a control information processor.

[005] In some variations, one or more of the features disclosed herein including the following features can optionally be included in any feasible combination. The control information may include a flow control report. The control information processor may schedule, based on the flow control report, data in a flow identified in the received header. The other type information may include another flow control report for another tunnel. The control information processor may schedule, based on the other flow control report, data in the other flow. The other type of information may be user plane data. The user plane traffic may be forwarding, in response to detecting that the indication corresponds to user plane data, to a higher layer for handling. The tunnel may include the at least one packet data unit. The tunnel may include a generic routing encapsulation tunnel. The header may include a general routing encapsulation header. The indication may include a predetermined key signaling that the tunnel includes control information comprising a flow control report. The indication may be located in a field of the header. The field may be the key field and/or the reserved bits field of a general routing encapsulation header. The indication may be detected from the header of the at least one packet data unit. The key may be extracted, wherein the key identifies the tunnel associated with the control information.

[006] In some variations, one or more of the features disclosed herein including the following features can optionally be included in any feasible combination. The above-noted aspects and features may be implemented in systems, apparatus, methods, and/or articles depending on the desired configuration. The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.

[007] In some example embodiments, there may be provided a method that includes scheduling for transmission user plane data and control information; and sending at least one packet data unit including a header, the header including an indication determined based on at least the schedule for transmission of the user plane data and the control information, the indication indicating whether the at least one packet data unit carries a control information or another type of information.

[008] In some variations, one or more of the features disclosed herein including the following features can optionally be included in any feasible combination. The indication may be configured in the header as a key. The control information may include a flow control report. The other type information may include another flow control report for another tunnel and/or user plane data. The at least one packet data unit may provide a tunnel. The tunnel may include a generic routing encapsulation tunnel. The header may include a general routing encapsulation header. The indication may include a predetermined key signaling that the control information comprises a flow control report. The indication may be located in a field of the header. The field may be the key field and/or the reserved bits field of a general routing encapsulation header.

Description of Drawings

[009] In the drawings,

[010] FIG. 1A depicts an example of a system including a cellular base station and a user equipment 154, in accordance with some example embodiments;

[011] FIG. IB depicts an example of a GRE header, in accordance with some example embodiments;

[012] FIG. 2 depicts a tunnel protocol demultiplexer such as receiver 200, in accordance with some example embodiments;

[013] FIG. 3 depicts another example of a GRE header, in accordance with some example embodiments;

[014] FIG. 4 depicts another example of a GRE receiver, in accordance with some example embodiments;

[015] FIG. 5 A depicts an example of a process for tunnel flow control, in accordance with some example embodiments; [016] FIG. 5B depicts another example of a process for tunnel flow control, in accordance with some example embodiments;

[017] FIG. 6 depicts another example of a GRE header, in accordance with some example embodiments; and

[018] FIG. 7 depicts an example of an apparatus, in accordance with some example embodiments.

[019] Like labels are used to refer to same or similar items in the drawings.

Detailed Description

[020] When aggregation, such as carrier aggregation and/or the like, is used over different transmission channels, flow control feedback may enable enhanced throughput performance by at least enabling a flow control function, such as a scheduler, to place data on different transmission channels such that out-of-order delivery of the data is reduced and/or minimized, when compared to not using flow control feedback. As a form of feedback, flow control feedback may be carried on a reverse link. Moreover, flow control feedback may be distinguished from other data including control data and user plane (UP) data carried on the reverse link. In the case of tunneling such as generic routing encapsulation (GRE), there is a need to provide flow control including feedback. To that end, there may be provided, in accordance with some example embodiments, flow control feedback for tunneling, such as GRE tunneling and/or the like. Moreover, there may be provided, in accordance with some example embodiments, encoding of flow control feedback related information in the reverse channel, which may enable a reduction in the signaling overhead for setting up dedicated flow control feedback channels.

[021] In some example embodiments, the flow's (which is being reported in a flow control report) identifier (ID) may be encoded in the header of a tunnel. In some example embodiments, other types of information about the tunnel or flow control may be encoded as well in the header. This encoding may enable, as noted, a reduction in flow control tunnel setup signaling. Although some of the examples described herein refer to GRE tunnels, the examples described herein may be implemented using other types of tunnels as well.

[022] FIG. 1 A depicts an example system 99 including a cellular base station 152 and a user equipment 154, in accordance with some example embodiments. The base station 152 may wirelessly transmit data (which may comprise at least one flow) over one or more radio channels to the user equipment 154 via downlink(s) 156. In the example of FIG. 1A, the downlink(s) 156 may carry at least one downlink user plane tunnel, such as GRE tunnel 158 having a GRE header, including a key, such as a downlink key (key DL). The downlink key may identify the downlink user plane GRE tunnel 158. The downlink key may be implemented in a variety of ways to identify the GRE tunnel 158. For example, the downlink key may be derived, in LTE, from a bearer ID and/or data radio bearer ID, while in 5G the downlink key may be derived from a packet data unit (PDU) session ID and/or a flow indicator identification (FII), network slice identification or a composite of thereof.

[023] To provide feedback to a control information processor, such as a scheduler, at the base station 152 scheduling packet data units comprising the GRE tunnel 158 for transmission, the user equipment may provide the flow control feedback via at least one uplink tunnel such as GRE tunnel 168 carried by the uplink(s) 160. In this example, the base station 152 may serve a "receiver" of one or more GRE tunnels carried in the uplink 160, some of which may carry user plane (UP) data 162 and some of which may carry a feedback control (FC) report 164 for a tunnel such as GRE tunnel 158 carried via the downlink 156. The receiver at the base station 152 may distinguish, based on the encoded keys, between a tunnel including user plane PDUs 162 and a tunnel including the FC report 164. In some example embodiments, at least one tunnel header such as a GRE header may include an encoded key indicating whether the PDUs for a given tunnel are user plane traffic (which can be passed to higher layers for processing) or whether the PDUs for a given tunnel include other data such as a FC report, in which case the FC report should be forwarded to the receiver's flow control function to enable flow control feedback control such as scheduling. The encoded key may include a predetermined value indicating that the PDUs for a given tunnel include a FC report. Alternatively or additionally, the encoded key may include a predetermined value indicating that the PDU for a given tunnel are user plane traffic (which can be passed to higher layers for processing).

[024] FIG. 1A depicts a single base station and a single user equipment for illustrative purpose only. For example, other base stations, WiFi access points, user equipment, and cellular network nodes may be included in system 99 and may further include access to the core cellular network, Internet, and/or the like. To illustrate further, the base station 152 may aggregate traffic download via a primary downlink link transmitted by the base station 152 and one or more secondary downlinks transmitted by the base station 152, other base stations, and/or wireless access points (e.g., WiFi wireless access points). This type of aggregation may be referred to as carrier aggregation. To illustrate further the base station 152 may comprise several links using the same or different radio access technologies.

[025] FIG. IB depicts an example of a tunnel header 100 such as a GRE header, in accordance with some example embodiments. The header 100 may include one or more fields in accordance with for example RFC 2890, such as a key present field (labeled "K") indicating whether a key is present in the GRE header and so forth. However, the GRE header 100 may further include a flow control key 102 A (labeled Key FC), a downlink key 102B labeled (key DL), and a payload 104 comprising a flow control report. In the example of FIG. 1A, the downlink key 102B may identify the GRE tunnel 158 which is the subject of the FC report 104.

[026] In the example of header 100, one or more (if not all of) the flow control reports (which may be for one or more, if not all, of the user plane tunnels including tunnel 156 for example) may be carried on an uplink GRE tunnel 168 having a previously agreed (e.g., predetermined) flow control key, such as Key_FC 102 A. This Key_FC 102A may identify the GRE tunnel 168 as carrying at least a flow control report, such as a flow control feedback report. In some example embodiments, the header 100 may include the flow control key 102A and the downlink key 102B (labeled key DL) forming an aggregate key 102A-B. For example, one or more PDUs for a given GRE tunnel, such as tunnel 168 may include the flow control key 102A and the downlink key 102B (labeled key DL) forming the aggregate key 102A-B. In the example of FIG. IB, presence of the flow control key 102A (Key FC), in the GRE header, may signal that the tunnel includes a FC report. For example, the flow control key 102A may comprise one or more bits, and these one or more bits may have a predetermined value which when detected indicates that the tunnel includes the FC report.

[027] FIG. 2 depicts a receiver 200 such as a GRE receiver including a GRE receiver key field demultiplexing function 202 and a flow control function 204, in accordance with some example embodiments. Referring to FIGs. 1A-B and 2, the receiver 200 may be located at the base station 152 in order to distinguish, based on the presence of the flow control key, Key_FC 102A, whether PDUs for a tunnel include a flow control report and, if so, the key field demultiplexer 202 can route a control information processor, such as a flow control function 204, the PDUs and the extracted downlink key 102B (which identifies the tunnel(s) in the downlink 156 that the flow control report is about).

[028] Although some of the examples described herein refer to the receiver (also referred to as a tunnel receiver or a GRE tunnel receiver) as being located at a base station. The receiver may be located at the user equipment as well to perform a similar feedback control function for the uplink user plane packets. Moreover, although FIG. 1A depicts the base station 152 and the user equipment 154, other types of wireless radios may be used as well. For example, the base station 152 may be implemented as a wireless access point, such as a Wi-Fi base station, user equipment, an Internet of Things (IoT) sensor, and/or the like. Likewise, the user equipment 154 may be implemented as a wireless access point, such as a WiFi base station, another user equipment, an Internet of Things (IoT) sensor, and/or the like.

[029] The receiver 200 including the key field demultiplexer 202 may detect from the header 100 carried by a PDU, the flow control key, such as Key FC 102A, which indicates that the tunnel 160 carrying the flow control key 102A includes a flow control report that needs to be forwarded to the flow control function 204. The key field demultiplexer 202 may extract the downlink key (key DL 102B) identifying the downlink tunnel 158 for which the flow control report is about. The key field demultiplexer 202 may provide the FC report and extracted downlink key (key DL 102B) to flow control function 204, which may enable flow control such as scheduling of PDUs on the GRE tunnel 158 carried via downlink 156. In this way, a flow control report can be delivered by referring to only one of the transmission legs, such as downlink key 102B identifying the downlink tunnel 158 and by choosing a predetermined, such as previously agreed, key prefix value, such as the flow control key 102A (e.g., key_FC2).

[030] FIG. 3 depicts another example of a GRE header 300, in accordance with some example embodiments. The header 300 may include one or more fields in accordance with RFC 2890 but further include a key uplink value 302A (labeled key UL), a key downlink value 302B (labeled key DL), and a payload 304 comprising a flow control report for the tunnel identified by key downlink 302B. Unlike the example of FIG. IB, in the example of FIG. 3, any user plane tunnel on the uplink 160 may be used to carry the flow control report. To that end, the GRE header key field of the tunnel (which carries the FC report) may be configured to include the key uplink value 302A (labeled key UL) and the key downlink value 302B (labeled key DL) identifies the user plane downlink tunnel the flow control report is about. As such, the key downlink value's 302B (key DL) presence, in the GRE header, may signal that the tunnel includes a FC report. The key downlink value may be predetermined, in accordance with some example embodiments. [031] FIG. 4 depicts a GRE receiver 400, in accordance with some example embodiments. For example, the GRE receiver 400 (which may be located in the base station 152) may receive PDUs forming a GRE tunnel, and the GRE header 300 may include the key uplink value 302A (key UL) and the key downlink value 302B (key DL). When at least the key downlink value 302B is detected by the receiver (which may include detection of the key uplink value 302A as well), the key field demultiplexer 402 may then route the PDU(s) (as they relate to FC reporting) to the flow control function 404 along with the downlink key (key DL) identifying the associated downlink tunnel the flow control report is about. However, when the key downlink value 302B (labeled key DL) is not present in the GRE header but the key uplink value 302A (labeled key_UL) is present, the key field demultiplexer detects this condition and, determines that the PDUs for that uplink tunnel do not include the flow control report. When this is the case, the key field demultiplexer 402 may then route these PDUs to a higher layer, such as a user plan function 406 alone with the identifier of the uplink tunnel (such as the uplink key, key UL).

[032] FIG. 5A depicts an example process 599 for tunnel flow control, in accordance with some example embodiments.

[033] The process 599 may be associated with downlink transmitters 590A-B, downlink receivers 592A-B, an uplink transmitter 594, and an uplink receiver 596. The downlink transmitter 590A may correspond to a transmit portion of the base station 152, and the downlink transmitter 59B to another transmit portion of base station 152. Those transmitters may be transmitted on the same radio link, or may be transmitted over different radio links. Alternatively or additionally, the transmitters may be physically separated. The downlink receivers 592A and 592B may correspond to the receiver portion of the user equipment. The uplink transmitter 594 may correspond to a transmit portion of the user equipment.

[034] At 552A, the downlink transmitter 590A may identify a downlink flow with an identifier, such as the downlink key value (e.g., key_DL4). At 552B, the downlink transmitter 590B may identify a downlink flow with an identifier, such as the downlink key value (e.g., key_DL3).

[035] At 554A-B, each of the downlink transmitters 590A-B may schedule data belonging to at least one downlink flow by taking into account information provided by the flow control function for the corresponding flow.

[036] At 556A, the downlink transmitter 590A may encapsulate the PDUs of the downlink flow to form a tunnel, such as a GRE tunnel, and configure the header, such as the GRE header, to have a key value of the downlink key value (e.g., key_DL4 to identify that tunnel). At 556B, the downlink transmitter 590B may encapsulate the PDUs of the downlink flow to form a tunnel, such as a GRE tunnel, and configure the header, such as the GRE header, to have a key value of the downlink key value (e.g., key_DL3 to identify that tunnel).

[037] At 558 A-B, each of the downlink transmitters 590A-B may transmit via the downlink 156 PDUs including the configured headers.

[038] At 560 A, the downlink receiver 592 A may receive the encapsulated PDUs having a header key value of key DL, such as key_DL4, and at 560B, the downlink receiver 592B may receive the encapsulated PDUs having a header key value of key DL, such as key_DL3.

[039] At 562A, the downlink receiver 592A may assemble one or more flow control status reports for the data flow identified by the key DL, such as key_DL4, and at 562B, the downlink receiver 592B may assemble one or more flow control status reports for the data flow identified by the key DL, such as key_DL3.

[040] At 563A-B, each of the downlink receiver 592A-B may forward user plane traffic to higher layers for additional processing.

[041] At 566, the uplink transmitter 594 may schedule for transmission data including user plane data and/or the flow control report(s) for each of the downlink tunnels, such as the FC report for the downlink tunnel identified by key_DL4 transmitted by transmitter 590A and the FC report for the downlink tunnel identified by key_DL3 transmitted by transmitter 590B. At 568, the uplink transmitter 594 may configure, establish, and/or set a key according to the content of the scheduled data. In some example embodiments, the key may be selected as noted herein with respect to headers 100, 300, and/or 600 to allow a GRE tunnel receiver to detect whether the tunnel includes a FC report, user plane data, and/or other data. At 570-572, the uplink transmitter 594 may encapsulate the scheduled data for transmission and then transmit the PDUs in the uplink.

[042] At 574, the uplink receiver 596 may receive PDUs forming a tunnel such as a GRE tunnel associated with the key as described with respect to headers 100, 300, and/or 600, in accordance with some example embodiments. For example, a GRE tunnel receiver may process the PDU headers to detect header keys, such as a flow control key 102A, downlink key 102B/302B/601, and/or uplink key 302A. At 574, the uplink receiver 596 may demultiplex, based on the header key, user plane traffic, flow control data for FC report contained in a PDU having a header key associated with key_DL3, and/or flow control data for FC report contained in a PDU having a header key associated with key_DL4. When user plane data is present, the user plane traffic may be delivered, at 575A-B, to a higher layer for additional handling. Moreover, the flow control data for the key DL3 may be forwarded at 580 to a control information processor, such as a schedule function (see, e.g., 554B) at the downlink transmitter 590B. Furthermore, the flow control data for the key_DL4 may be forwarded at 578 to a control information processor, such as a schedule function (see, e.g., 554A), at the downlink transmitter 590A. In this way, the FC reports are feedback to the appropriate transmitter.

[043] FIG. 5B depicts an example process 500 for tunnel flow control, in accordance with some example embodiments.

[044] The process 500 may be associated with a downlink transmitter 590, a downlink receiver 592, an uplink transmitter 594, and an uplink receiver 596. Referring to FIGs. 1A, the downlink transmitter 590 may correspond to a transmit portion of the base station 152, while the uplink receiver 596 may correspond to the receive portion of the base station 152. Moreover, the downlink receiver 592 may correspond to the receiver portion of the user equipment 154, while the uplink transmitter 594 may correspond to the transmit portion of the user equipment 154. The uplink receiver 596 may be implemented to handle headers 100, 200, and 600 using a corresponding GRE tunnel receiver.

[045] As noted above, association of the base station and user equipment with the downlink transmitter 590, the downlink receiver 592, the uplink transmitter 594, and the uplink receiver 596 is for illustrative purposes as other types of radios may include these transmitters and receivers.

[046] At 502, the downlink transmitter 590 may identify a downlink flow with an identifier, such as the downlink key value (e.g. , key DL) 302B. At 504, the downlink transmitter 590 may schedule data belonging to the downlink flow taking into account information provided by the flow control function. At 506, the downlink transmitter 590 may encapsulate the PDUs of the downlink flow to form a tunnel, such as a GRE tunnel, and configure the header, such as the GRE header, to have a key value of the downlink key value (e.g., key DL) 302B. At 508, the downlink transmitter 590 may transmit the PDU via the downlink 156. At 510, the downlink receiver 592 may receive the encapsulated PDUs having a header key value of key_DL 302B. At 512, the downlink receiver 592 may assemble one or more flow control status reports for the data flow identified by the key DL 302B. At 514, the downlink receiver 592 may forward user plane traffic to higher layers for additional processing. At 520, the uplink transmitter 594 may schedule for transmission the flow control report(s) determined for the downlink identified by key DL 302B. At 522, the uplink transmitter 594 may also schedule for transmission user plane data for a corresponding key_UL value. At 524, the uplink transmitter 594 may configure, establish, and/or set a key according to the content of the scheduled data. In some example embodiments, the key may be selected as noted herein with respect to headers 100, 300, and/or 600 to allow a GRE tunnel receiver to detect whether the tunnel includes a FC report. At 526-528, the uplink transmitter 594 may encapsulate (including the set header keys) the scheduled data for transmission and then transmit the PDUs in the uplink.

[047] At 530, the uplink receiver 596 may receive PDUs forming a tunnel such as a GRE tunnel associated with the key as described with respect to headers 100, 300, and/or 600, in accordance with some example embodiments. For example, a GRE tunnel receiver may process the PDU headers to detect keys, such as a flow control key 102A, downlink key 102B/302B/601 and/or uplink key 302 A.

[048] At 532, the uplink receiver 596 may demultiplex, based on the GRE header key, user plane traffic and flow control data, in accordance with some example embodiments. In some example embodiments consistent with header 100, the presence of the flow control key 102A (Key FC), in the GRE header, may signal that the tunnel includes an FC report. In some example embodiments consistent with header 300, the presence of the key downlink value's 302B (key DL), in the GRE header, may signal that the tunnel includes a FC report. In some example embodiments consistent with header 600 (described below), the presence of an indicator, such as a key downlink value 602, in a field of the header 600 (e.g., the reserved bits field or other field) may signal that the tunnel includes a FC report.

[049] In some example embodiments, the encoding for the flow control key 102A (see, e.g., FIG. IB and 2) and/or the downlink key 302B (see, e.g., FIG. 3 and 4) may be predetermined in the sense that the transmitter of the PDUs and the receiver of PDUs both have to understand the encoding scheme. The predetermined encoding scheme may be specified in a standard, so that the transmitter and receiver know the encoding scheme. Alternatively or additionally, the encoding may be exchanged via signaling between the base station 152 and the user equipment 154. For example, the base station may signal to the user equipment the value for key FC, and the maximum length of any key DL, which may enable providing the examples described with respect to FIGs. IB, 2, and 5A. [050] Referring again to FIG. IB, the encoding scheme being used may further define, indicate, or encode the length of the flow control key 102A, the length of the downlink key 102B, the function of the flow control key 102A (e.g., its role to signal the presence of the flow control report), and/or the function of the downlink key 102B (e.g., its role to identifying the tunnel(s) in the downlink that the flow control report is about).

[051] To illustrate further, the encoding may include concatenating of keys such as concatenating the downlink key (key DL) with the flow control key (e.g., key FC). The concatenation may be implemented as a bit-shifting of for example the key FC by an amount of bits larger, or equal to, the length of the downlink key (e.g., key DL) and then adding the resulting number to the downlink key (key DL). In this example, the length of the downlink key plus the length of the flow control key (key FC) is sized to fit the length of the hdr key field of the GRE header, for example.

[052] Referring again to FIG. 3, the encoding scheme being used may further define, indicate, or encode the length of the uplink key 302 A, the length of the downlink key 302B, as well as the functions of those keys. In the case of header 300 for example, a receiver of the PDUs may detect and then demultiplex based on the presence of at least the key downlink value 302B (key DL), so that those PDUs having key DL are routed to a flow control function at 534, while other PDUs (e.g., PDUs not having the key DL but only having an hdr key as key UL) may be delivered, at 536, to the user plane at 540, in accordance with some example embodiments.

[053] In a typical GRE tunnel setup may create one interface per GRE tunnel, and each GRE key may require a separate tunnel. However, in some example embodiments disclosed herein, several key values may be carried over one tunnel or, its interface. When this is the case, the GRE protocol may be configured to support a plurality of keys for a tunnel and its interface. [054] FIG. 6 depicts another example of a GRE header 600, in accordance with some example embodiments. The header 600 may include one or more fields in accordance with RFC 2890 but further include a key downlink value 602 configured in a field, such as the reserved bits field. To identify a flow control report, the reserved bits of the GRE header may be used configured with the key downlink value 602 (Key DL 602).

[055] FIG. 7 illustrates a block diagram of an apparatus 10, in accordance with some example embodiments. In some example embodiments, the apparatus may be implemented as a user equipment, such as a smart phone, tablet, IoT device, and/or any other processor and memory based device including a wireless access point, a base station, and/or the like. The apparatus may include the receivers and/or transmitters disclosed herein for handling the tunnels. For example, the DL receiver 592, 592A, and/or 592B as well as the UL transmitter 594 may be included in the apparatus 10. Furthermore, one or more aspects of the apparatus 10 may be used to provide a wireless access point and/or base station. When that is the case, the apparatus may include the DL transmitter 590, 590 A, 590B as well as the UL receiver 596.

[056] The apparatus 10 may include at least one antenna 12 in communication with a transmitter 14 and a receiver 16. Alternatively transmit and receive antennas may be separate. The apparatus 10 may also include a processor 20 configured to provide signals to and receive signals from the transmitter and receiver, respectively, and to control the functioning of the apparatus. Processor 20 may be configured to control the functioning of the transmitter and receiver by effecting control signaling via electrical leads to the transmitter and receiver. Likewise, processor 20 may be configured to control other elements of apparatus 10 by effecting control signaling via electrical leads connecting processor 20 to the other elements, such as a display or a memory. The processor 20 may, for example, be embodied in a variety of ways including circuitry, at least one processing core, one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits (for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and/or the like), or some combination thereof. Accordingly, although illustrated in FIG. 7 as a single processor, in some example embodiments the processor 20 may comprise a plurality of processors or processing cores.

[057] Signals sent and received by the processor 20 may include signaling information in accordance with an air interface standard of an applicable cellular system, and/or any number of different wireline or wireless networking techniques, comprising but not limited to Wi-Fi, wireless local access network (WLAN) techniques, such as Institute of Electrical and Electronics Engineers (IEEE) 802.11, 802.16, 802.3, ADSL, DOCSIS, and/or the like. In addition, these signals may include speech data, user generated data, user requested data, and/or the like.

[058] The apparatus 10 may be capable of operating with one or more air interface standards, communication protocols, modulation types, access types, and/or the like. For example, the apparatus 10 and/or a cellular modem therein may be capable of operating in accordance with various first generation (1G) communication protocols, second generation (2G or 2.5G) communication protocols, third-generation (3G) communication protocols, fourth- generation (4G) communication protocols, Internet Protocol Multimedia Subsystem (IMS) communication protocols (for example, session initiation protocol (SIP) and/or the like. For example, the apparatus 10 may be capable of operating in accordance with 2G wireless communication protocols IS-136, Time Division Multiple Access TDMA, Global System for Mobile communications, GSM, IS-95, Code Division Multiple Access, CDMA, and/or the like. In addition, for example, the apparatus 10 may be capable of operating in accordance with 2.5G wireless communication protocols General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), and/or the like. Further, for example, the apparatus 10 may be capable of operating in accordance with 3G wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), Wideband Code Division Multiple Access (WCDMA), Time Division-Synchronous Code Division Multiple Access (TD-SCDMA), and/or the like. The apparatus 10 may be additionally capable of operating in accordance with 3.9G wireless communication protocols, such as Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), and/or the like. Additionally, for example, the apparatus 10 may be capable of operating in accordance with 4G wireless communication protocols, such as LTE Advanced, 5G, and/or the like as well as similar wireless communication protocols that may be subsequently developed.

[059] It is understood that the processor 20 may include circuitry for implementing audio/video and logic functions of apparatus 10. For example, the processor 20 may comprise a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, and/or the like. Control and signal processing functions of the apparatus 10 may be allocated between these devices according to their respective capabilities. The processor 20 may additionally comprise an intemal voice coder (VC) 20a, an internal data modem (DM) 20b, and/or the like. Further, the processor 20 may include functionality to operate one or more software programs, which may be stored in memory. In general, processor 20 and stored software instructions may be configured to cause apparatus 10 to perform actions. For example, processor 20 may be capable of operating a connectivity program, such as a web browser. The connectivity program may allow the apparatus 10 to transmit and receive web content, such as location-based content, according to a protocol, such as wireless application protocol, WAP, hypertext transfer protocol, HTTP, and/or the like.

[060] Apparatus 10 may also comprise a user interface including, for example, an earphone or speaker 24, a ringer 22, a microphone 26, a display 28, a user input interface, and/or the like, which may be operationally coupled to the processor 20. The display 28 may, as noted above, include a touch sensitive display, where a user may touch and/or gesture to make selections, enter values, and/or the like. The processor 20 may also include user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as the speaker 24, the ringer 22, the microphone 26, the display 28, and/or the like. The processor 20 and/or user interface circuitry comprising the processor 20 may be configured to control one or more functions of one or more elements of the user interface through computer program instructions, for example, software and/or firmware, stored on a memory accessible to the processor 20, for example, volatile memory 40, non-volatile memory 42, and/or the like. The apparatus 10 may include a battery for powering various circuits related to the mobile terminal, for example, a circuit to provide mechanical vibration as a detectable output. The user input interface may comprise devices allowing the apparatus 20 to receive data, such as a keypad 30 (which can be a virtual keyboard presented on display 28 or an externally coupled keyboard) and/or other input devices.

[061] As shown in FIG. 7, apparatus 10 may also include one or more mechanisms for sharing and/or obtaining data. For example, the apparatus 10 may include a short-range radio frequency (RF) transceiver and/or interrogator 64, so data may be shared with and/or obtained from electronic devices in accordance with RF techniques. The apparatus 10 may include other short-range transceivers, such as an infrared (IR) transceiver 66, a Bluetoothâ„¢ (BT) transceiver 68 operating using Bluetoothâ„¢ wireless technology, a wireless universal serial bus (USB) transceiver 70, a Bluetoothâ„¢ Low Energy transceiver, a ZigBee transceiver, an ANT transceiver, a cellular device-to-device transceiver, a wireless local area link transceiver, and/or any other short-range radio technology. Apparatus 10 and, in particular, the short-range transceiver may be capable of transmitting data to and/or receiving data from electronic devices within the proximity of the apparatus, such as within 10 meters, for example. The apparatus 10 including the Wi-Fi or wireless local area networking modem may also be capable of transmitting and/or receiving data from electronic devices according to various wireless networking techniques, including 6LoWpan, Wi-Fi, Wi-Fi low power, WLAN techniques such as IEEE 802.11 techniques, IEEE 802.15 techniques, IEEE 802.16 techniques, and/or the like. [062] The apparatus 10 may comprise memory, such as a subscriber identity module (SIM) 38, a removable user identity module (R-UIM), an eUICC, an UICC, and/or the like, which may store information elements related to a mobile subscriber. In addition to the SIM, the apparatus 10 may include other removable and/or fixed memory. The apparatus 10 may include volatile memory 40 and/or non-volatile memory 42. For example, volatile memory 40 may include Random Access Memory (RAM) including dynamic and/or static RAM, on-chip or off-chip cache memory, and/or the like. Non-volatile memory 42, which may be embedded and/or removable, may include, for example, read-only memory, flash memory, magnetic storage devices, for example, hard disks, floppy disk drives, magnetic tape, optical disc drives and/or media, non-volatile random access memory (NVRAM), and/or the like. Like volatile memory 40, non-volatile memory 42 may include a cache area for temporary storage of data. At least part of the volatile and/or non-volatile memory may be embedded in processor 20. The memories may store one or more software programs, instructions, pieces of information, data, and/or the like which may be used by the apparatus for performing operations disclosed herein. The memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying apparatus 10. The memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying apparatus 10. In the example embodiment, the processor 20 may be configured using computer code stored at memory 40 and/or 42 to control and/or provide one or more aspects disclosed herein (see, for example, process 500 and 599).

[063] Some of the embodiments disclosed herein may be implemented in software, hardware, application logic, or a combination of software, hardware, and application logic. The software, application logic, and/or hardware may reside on memory 40, the control apparatus 20, or electronic components, for example. In some example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer- readable media. In the context of this document, a "computer-readable medium" may be any non-transitory media that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer or data processor circuitry, with examples depicted at FIG. 7, computer-readable medium may comprise a non-transitory computer-readable storage medium that may be any media that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.

[064] Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is encoding the FC report information in a key field reducing the need to for dedicated signaling for setting up a FC channel to carry the FC report.

[065] The subject matter described herein may be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. For example, the base stations and user equipment (or one or more components therein) and/or the processes described herein can be implemented using one or more of the following: a processor executing program code, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), an embedded processor, a field programmable gate array (FPGA), and/or combinations thereof. These various implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. These computer programs (also known as programs, software, software applications, applications, components, program code, or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or obj ect- oriented programming language, and/or in assembly/machine language. As used herein, the term "computer-readable medium" refers to any computer program product, machine-readable medium, computer-readable storage medium, apparatus and/or device (for example, magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions. Similarly, systems are also described herein that may include a processor and a memory coupled to the processor. The memory may include one or more programs that cause the processor to perform one or more of the operations described herein.

[066] Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations may be provided in addition to those set forth herein. Moreover, the implementations described above may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. Other embodiments may be within the scope of the following claims.

[067] If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined. Although various aspects of some of the embodiments are set out in the independent claims, other aspects of some of the embodiments comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims. It is also noted herein that while the above describes example embodiments, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications that may be made without departing from the scope of some of the embodiments as defined in the appended claims. Other embodiments may be within the scope of the following claims. The term "based on" includes "based on at least." The use of the phase "such as" means "such as for example" unless otherwise indicated.