DEVICE AND METHOD FOR APPLICATION-REQUIREMENT AWARE MEDIUM ACCESS CONTROL
20220330082 · 2022-10-13
Inventors
Cpc classification
H04L1/1877
ELECTRICITY
H04W28/0268
ELECTRICITY
H04L47/32
ELECTRICITY
International classification
H04W28/02
ELECTRICITY
Abstract
A device for medium access control in a node of a wireless communication network with time-shared medium includes a slot allocation module configured to allocate a timeslot for transmission from the node to a destination node over the time-shared medium; a validation module configured to validate a data packet before transmission to the destination node based on a latency requirement for the data packet, and an expected latency for the data packet based on the position in time of the timeslot, resulting in an approved data packet or a disapproved data packet; a scheduling module configured to schedule an approved data packet in the timeslot for transmission to the destination node.
Claims
1.-14. (canceled)
15. A device for medium access control in a node of a wireless communication network with time-shared medium, comprising: a slot allocation module configured to allocate a timeslot for transmission of a data flow from said node to a destination node over said time-shared medium; a validation module configured to validate a data packet comprised in said data flow before transmission to said destination node based on: a latency requirement for said data packet, and an expected latency for said data packet based on the position in time of said timeslot, resulting in an approved data packet or a disapproved data packet; a scheduling module configured to schedule in said timeslot, a data packet comprised in said data flow and approved by said validation module, for transmission to said destination node, and wherein said device is configured to drop a data packet comprised in said data flow and disapproved by said validation module, such that said disapproved data packet is not transmitted to said destination node.
16. The device according to claim 15, wherein said device comprises an interface configured to receive one or more requirements, comprising said latency requirement, from an application.
17. The device according to claims 15, wherein said validation module is configured to calculate said expected latency for said data packet based on the current lifetime of said data packet and the currently remaining time until start of said timeslot.
18. The device according to claim 17, wherein said latency requirement is a maximum allowed latency for said data packet and said validation module is configured to validate said data packet by comparing said expected latency with said maximum allowed latency, resulting in an approved data packet if said expected latency is smaller than said maximum allowed latency, and otherwise resulting in a disapproved data packet.
19. The device according to claim 15, wherein said validation module is configured to validate said data packet before retransmission based on the number of times said data packet was transmitted and a maximum allowed number of retransmissions for said data packet.
20. The device according to claim 19, wherein said maximum allowed number of retransmissions for said data packet is based on the number of timeslots allocated for said transmission from said node to said destination node and/or said latency requirement.
21. The device according to claim 16, wherein said requirements comprise a maximum allowed Packet Error Rate and said slot allocation module is configured to allocate an additional timeslot for said transmission from said node to said destination node based on said maximum allowed Packet Error Rate and a monitored Packet Error Rate for said transmission.
22. The device according to claim 15, wherein said slot allocation module is configured to allocate an additional timeslot for said transmission from said node to said destination node based on the results of said validation module when validating multiple data packets before transmission to said destination node.
23. The device according to claim 15, wherein said scheduling module is configured to sequence data packets comprised in said data flow and approved by said validation module, according to their respective latency requirements and/or expected latencies.
24. The device according to claim 15, wherein said validation module is configured to use said latency requirement and said position in time of said timeslot to calculate a maximum allowed delay before scheduling said data packet for transmission, and wherein said scheduling module is configured to buffer said data packet before scheduling for transmission if said maximum allowed delay is larger than a predefined maximum buffer time, and to aggregate said data packet with another data packet when scheduling for transmission in said timeslot.
25. The device according to claim 15, wherein said device is configured to receive a parent data packet from a higher layer, to segment said parent data packet into data packets of a predefined maximum size comprising said data packet, and to assign the same latency requirement to each of said data packets originating from said parent data packet.
26. The device according to claim 25, wherein said device is configured to drop all of said data packets originating from said parent data packet if validation of one of said data packets by said validation module results in a disapproved data packet.
27. A method for medium access control in a node of a wireless communication network with time-shared medium, comprising: allocating a timeslot for transmission of a data flow from said node to a destination node over said time-shared medium; validating a data packet comprised in said data flow before transmission to said destination node based on: a latency requirement for said data packet, and an expected latency for said data packet based on the position in time of said timeslot, resulting in an approved data packet or a disapproved data packet; scheduling in said timeslot, a data packet comprised in said data flow and being approved, for transmission to said destination node, and wherein a data packet comprised in said data flow and being disapproved, is dropped, such that said disapproved data packet is not transmitted to said destination node.
28. A computer program product comprising computer-executable instructions for causing a device to perform at least the following: allocating a timeslot for transmission of a data flow from said node to a destination node over said time-shared medium; validating a data packet comprised in said data flow before transmission to said destination node based on: a latency requirement for said data packet, and an expected latency for said data packet based on the position in time of said timeslot, resulting in an approved data packet or a disapproved data packet; scheduling in said timeslot, a data packet comprised in said data flow and being approved, for transmission to said destination node, and wherein a data packet comprised in said data flow and being disapproved, is dropped, such that said disapproved data packet is not transmitted to said destination node.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
DETAILED DESCRIPTION OF EMBODIMENT(S)
[0064]
[0065] Medium access of a node 100 to the shared medium is managed by a device 200, which is schematically presented in
[0066] A data flow 213, to be transmitted from node 100 to destination node 101 is received by the device 200, resulting in data packets 203. The embodiment of
[0067] The slot allocation module 204 is configured to allocate a timeslot 302 for the communication from node 100 to destination node 101. The allocation of a timeslot 302 is triggered by the receipt of a first data packet 203 by the device 200, as is indicated with 212 in the figure. Information 211 about the allocated timeslot 302, e.g. its position in time, is communicated to the validation module 206. The validation module 206 is configured to validate a data packet 203, based on a latency requirement 210 and an expected latency, where the latter is calculated using the timeslot information 211. This validation results in an approved data packet 208 or a disapproved data packet 209. Approved data packets 208 are transmitted to the scheduling module 207, while disapproved data packets 209 are dropped. The scheduling module 207 may determine a preferred order of transmission for the approved data packets 208, e.g. in
[0068] The function of the slot allocation module 204, the validation module 206 and the scheduling module 207 is further illustrated in
[0069] Various embodiments may use different types of protocols for the allocation of a timeslot 302. For example, a static allocation in a TDMA scheme may be used, or dynamic TDMA scheduling where timeslot usage is dynamically repurposed in function of the actual demands and topology of a wireless ad hoc network. Reservation of timeslots 301 may be based on requests and received feedback from the destination node 101 and/or other neighbour nodes. Typically, control messages are exchanged between nodes for making slot allocations. A separate control channel may be provided for the exchange of control messages, or specific control slots may be reserved within the TDMA scheme. Nodes 100 may store the information about free and allocated slots themselves, e.g. by maintaining a table, or may collect this information from other nodes at the time of slot allocation. In cases of high data traffic, it may happen that all of the timeslots 301 within the superframe 300 are in use already. In those cases, no timeslot 302 can be allocated immediately after receiving the first data packet, but the release of a timeslot by other nodes should be awaited.
[0070]
[0071] After approval, the data packet 208 is scheduled, see 305, within the timeslot 302. This implies that a specific transmission time for the data packet 208 is determined, typically taking into account other data packets that were approved and need to be transmitted within the timeslot 302. In embodiments, the scheduling module 207 is configured to sequence the data packets to be transmitted within the timeslot 302. This implies that a specific transmission order is determined, e.g. based on the latency requirements 210 and/or the remaining time until the latency deadline will be exceeded as may be calculated from the timeslot information 304. Optionally, other requirements, like a PER requirement may be taken into account for sequencing.
[0072] In the embodiment of
[0073] In embodiments, multiple timeslots 404, 302, within the same superframe 300, may be allocated for a specific transmission from a node 100 to a destination node 101. This is illustrated in
[0074] In embodiments, it may occur that not all of the approved data packets 208 fit into a single timeslot 302. This is illustrated in
[0075] In an embodiment, depending on the data rate from the Application layer 202, a timeslot 302 can be fully or partially filed. In case that there are not enough data packets 208 available to completely fill the slot 302, the device 200 may periodically check during execution of the timeslot 302 whether new packets were received and successfully validated. If that is the case, those newly generated packets may be scheduled as well.
[0076]
[0077] In another embodiment, additional time-based parameters may be taken into account for calculating the remaining time until the packet 203 will reach its destination. E.g. a processing time within the Physical layer 216 and/or a queueing delay between layers may be taken into account. Moreover, in embodiments, another scenario than the aforementioned worst-case scenario may be considered, e.g. where it is assumed that data packet 203 will be transmitted close to the start time 502 of the timeslot 302, or half-way the timeslot 302. This results in a higher risk that non-useful data packets 203 are transmitted instead of being dropped, because in reality they were sent e.g. close to the end of the timeslot 302. On the other hand, assuming the worst-case scenario for validation results in a larger chance of dropping a data packet 203 that would have arrived at time.
[0078] The validation as illustrated in
[0079] Moreover, in an embodiment, the number of retransmissions of a specific data packet 203 may be monitored and compared with a maximum allowed number of retransmissions. The latter may be statically defined, being the same for every data packet, or may dynamically be calculated. In an embodiment, the maximum allowed number of retransmissions is calculated as the ratio of ‘A’ and ‘B’. ‘A’ represents the remaining time until the maximum allowed latency is reached and may be calculated by subtracting the current lifetime 507 and the timeslot duration 505 from the maximally allowed latency 508, see
[0080] In another embodiment, additional QoS requirements 214, apart from the latency requirements 210, may be received by the device 200. For example, a reliability requirement in the form of a maximally allowed Packet Error Rate (PER) may be used by the device 200. Moreover, the device 200 may be configured to monitor the actual Packet Error Rate for a specific transmission. A PER is the percentage of transmitted packets that is not successfully received by the destination node 101, irrespective whether retransmission(s) were needed or not. It may be monitored e.g. by counting the number of successful acknowledgements by the receiver, or by counting the number of disapproved or dropped data packets by the validation module 206. When many retransmissions are allowed, e.g. for data flows allowing larger latencies, the monitored PER will be low as not many packets are dropped by the validation module 206. However, in other cases, where the validation module 206 needs to drop many packets, the monitored PER may reach the maximally allowed PER. In such a case, various actions may be triggered by the device 200. For example, an additional timeslot 302 may be allocated by the allocation module 206 for that transmission. Accordingly, a dynamically calculated maximum allowed number of retransmissions, as described above, will increase, leading to a decrease in the number of dropped packets. A second action may be to allow for more retransmissions for the specific data flow. A third action may be to adapt parameters at the Physical layer, e.g. reduce the MCS value (Modulation and Coding Scheme) to increase the likelihood of successful transmissions.
[0081] In an embodiment, the device 200 may be configured to fragment a data packet, as is illustrated in
[0082]
[0083] A small data packet 606 may be aggregated with another small data packet during scheduling. This is illustrated in
[0084] Pushing a small data packet 700 to an aggregation buffer implies that a delay is introduced before the data packet 700 is effectively scheduled, thereby introducing a risk that the latency constraint 210 of the data packet 700 will be violated. In an embodiment, illustrated in
[0085] In
[0086] Although the present invention has been illustrated by reference to specific embodiments, it will be apparent to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied with various changes and modifications without departing from the scope thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. In other words, it is contemplated to cover any and all modifications, variations or equivalents that fall within the scope of the basic underlying principles and whose essential attributes are claimed in this patent application. It will furthermore be understood by the reader ofthis patent application that the words “comprising” or “comprise” do not exclude other elements or steps, that the words “a” or “an” do not exclude a plurality, and that a single element, such as a computer system, a processor, or another integrated unit may fulfil the functions of several means recited in the claims. Any reference signs in the claims shall not be construed as limiting the respective claims concerned. The terms “first”, “second”, third”, “a”, “b”, “c”, and the like, when used in the description or in the claims are introduced to distinguish between similar elements or steps and are not necessarily describing a sequential or chronological order. Similarly, the terms “top”, “bottom”, “over”, “under”, and the like are introduced for descriptive purposes and not necessarily to denote relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances and embodiments of the invention are capable of operating according to the present invention in other sequences, or in orientations different from the one(s) described or illustrated above.