Data transmission method and access point
By using hardware and software preprocessing modules in the access point (AP) to preprocess data packets, and then routing them uniformly to the hardware or software QoS module for QoS processing, the problems of low QoS processing accuracy and insufficient CPU resources in the prior art are solved, and more efficient QoS processing and AP performance maintenance are achieved.
Patent Information
- Application Number
- CN202511136283.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-08-14
- Filing Date
- 2025-08-14
- Publication Date
- 2025-11-11
AI Technical Summary
In the prior art, when data packets are processed for QoS through the access point (AP), the limitations of the hardware QoS path cause the data packets to be split into two parts, resulting in low accuracy of QoS processing. Furthermore, the software QoS path depends on the central processing unit (CPU) resources, which may lead to insufficient CPU resources and AP performance degradation.
Data packets are received through hardware and software receiving ports, respectively. After preprocessing by hardware and software preprocessing modules, the data packets are routed to hardware or software QoS modules for QoS processing. This avoids the data packets being split into two parts for independent processing and reduces the consumption of CPU resources.
It improves the accuracy of QoS processing, reduces CPU resource overhead, and ensures AP performance and the efficiency of QoS processing.
Smart Images

Figure CN120935829A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Patent Application No. 18 / 805,501, filed August 14, 2024, entitled “DATA TRANSMISSION METHOD AND ACCESS POINT,” the disclosure of which is incorporated herein by reference in its entirety as part of this application. Technical Field
[0003] This disclosure relates to wireless communication, and more specifically, to a method for data transmission and an access point for performing the method. Background Technology
[0004] Quality of Service (QoS) processing plays a crucial role in data transmission over access points (APs), improving overall network performance and user experience by ensuring that the transmission quality of different types of data packets meets the varying requirements of applications. Typically, QoS processing involves flow control such as rate limiting, resource scheduling, and bandwidth allocation for data packets to be transmitted.
[0005] Currently, access points (APs) can implement QoS processing through either hardware or software QoS paths. However, hardware QoS paths allow a limited number of data packets to pass through. Data packets that cannot enter the hardware QoS path are redirected to the software QoS path. This results in data packets being split into two parts, and these two parts undergoing flow control independently, leading to low accuracy in QoS processing. Software QoS paths are primarily dependent on the AP's central processing unit (CPU) resources, which may result in insufficient CPU resources available for other AP operations, thus degrading the AP's performance. Summary of the Invention
[0006] In view of the above problems, this disclosure provides a technique for data transmission over an AP that can improve the accuracy of QoS processing while preventing excessive CPU resources from being consumed by QoS-related processing.
[0007] According to one aspect of this disclosure, a method for data transmission performed by an access point is provided, comprising: receiving a first set of data packets and a second set of data packets by a hardware receiving port and a software receiving port, respectively; performing QoS-related preprocessing on the first set of data packets and the second set of data packets by a hardware preprocessing module and a software preprocessing module, respectively; forwarding the preprocessed first set of data packets and the preprocessed second set of data packets to a selected QoS module, wherein the selected QoS module is one of a hardware QoS module and a software QoS module; and for each preprocessed data packet in the first set of data packets and the second set of data packets, performing QoS processing on the preprocessed data packet by the selected QoS module.
[0008] According to one aspect of this disclosure, an access point (AP) is provided, comprising: a hardware receiving port configured to receive a first set of data packets; a software receiving port configured to receive a second set of data packets; a hardware preprocessing module configured to perform QoS-related preprocessing on the first set of data packets and forward the preprocessed first set of data packets to a selected QoS module; and a software preprocessing module configured to perform QoS-related preprocessing on the second set of data packets and forward the preprocessed second set of data packets to the selected QoS module; wherein the selected QoS module is one of the hardware QoS module and the software QoS module of the AP, and wherein, for each preprocessed data packet in the first set of data packets and the second set of data packets, the selected QoS module is configured to perform QoS processing on the preprocessed data packet.
[0009] According to another aspect of this disclosure, a computer program product is provided, comprising a computer-readable medium having instructions stored thereon, which, when executed by a processor of an access point (AP), causes the processor to perform the following operations: controlling a hardware receive port and a software receive port of the AP to receive a first set of data packets and a second set of data packets, respectively; controlling a hardware preprocessing module and a software preprocessing module of the AP to perform quality of service (QoS) related preprocessing on the first set of data packets and the second set of data packets, respectively; controlling the forwarding of the preprocessed first set of data packets and the preprocessed second set of data packets to a selected QoS module of the AP, wherein the selected QoS module is one of the hardware QoS module and the software QoS module of the AP; and for each preprocessed data packet in the first set of data packets and the preprocessed second set of data packets, controlling the selected QoS module to perform QoS processing on the preprocessed data packet.
[0010] Based at least on the embodiments described above in this disclosure, data packets received via the hardware receiving port and data packets received via the software receiving port are both routed to one of the hardware QoS modules and the software QoS module selected for QoS processing. In this way, data packets are not split into two parts, but are aggregated into the same QoS module to undergo flow control together. This improves the accuracy of QoS processing. Furthermore, the tasks associated with the reception and preprocessing of data packets are handled by both the hardware QoS path and the software QoS path, which prevents excessive CPU resource consumption by the software QoS path. Attached Figure Description
[0011] The above and other objects, features, and advantages of this disclosure will become more apparent from the more detailed description of embodiments thereof in conjunction with the accompanying drawings. The drawings are provided to offer a further understanding of the embodiments of this disclosure and form part of the specification. The drawings, together with the embodiments of this disclosure, are used to explain this disclosure but do not constitute a limitation thereof. In the drawings, unless explicitly stated otherwise, the same reference numerals denote the same parts, steps, or elements.
[0012] Figure 1 This is a diagram illustrating an exemplary application scenario of an AP according to an embodiment of this disclosure;
[0013] Figure 2 This is a diagram illustrating an exemplary architecture for data transmission according to the prior art;
[0014] Figure 3A This is a diagram illustrating an exemplary architecture for data transmission according to embodiments of the present disclosure;
[0015] Figure 3B This is a diagram illustrating another exemplary architecture for data transmission according to embodiments of this disclosure;
[0016] Figure 4 This is a diagram illustrating an exemplary processing flow of data packetization according to embodiments of the present disclosure;
[0017] Figure 5 This is a diagram illustrating an exemplary mapping table according to an embodiment of this disclosure;
[0018] Figure 6 This is a diagram illustrating an exemplary processing flow for data packetization according to another embodiment of this disclosure;
[0019] Figure 7 This is a diagram illustrating an exemplary application scenario where a hardware QoS module cannot be used in the downlink direction of an AP according to embodiments of this disclosure;
[0020] Figure 8This is a flowchart illustrating a method for data transmission according to an embodiment of the present disclosure;
[0021] Figure 9 This is a flowchart illustrating a sub-step of step S820 in a method for data transmission according to an embodiment of the present disclosure;
[0022] Figure 10 This is a flowchart illustrating a sub-step of step S820 in a method for data transmission according to another embodiment of the present disclosure; and
[0023] Figure 11 This is an exemplary block diagram illustrating an AP according to an embodiment of the present disclosure. Detailed Implementation
[0024] The technical solutions of this disclosure will now be clearly and completely described with reference to the accompanying drawings. The described embodiments are part of, but not all, of the embodiments of this disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without any creative effort fall within the protection scope of this disclosure.
[0025] In the description of this disclosure, it should be noted that the orientations or positional relationships indicated by terms such as “center,” “upper,” “lower,” “left,” “right,” “vertical,” “horizontal,” “inner,” and “outer” are based on the orientations or positional relationships shown in the accompanying drawings and are used solely for convenience and simplicity in describing this disclosure, and do not indicate or imply that the indicated device or element must have a particular orientation. Furthermore, terms such as “first,” “second,” and “third” are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Similarly, words such as “a,” “an,” or “the” do not indicate a limitation of quantity, but rather indicate the presence of at least one. Words such as “comprising” or “including” mean that the element or object preceding the word encompasses those elements or objects listed following the word and their equivalents, without excluding other elements or objects. Words such as “connected” or “linked” are not limited to physical or mechanical connections but can include electrical connections, whether direct or indirect.
[0026] In the description of this disclosure, it should be noted that, unless otherwise expressly stated and limited, terms such as “install,” “link,” and “connect” should be interpreted broadly. For example, such terms may refer to a fixed connection, a detachable connection, or an integral connection; they may refer to a mechanical connection or an electrical connection; they may refer to a direct connection, an indirect connection via an intermediate medium, or a connection within two components. For those skilled in the art, the specific meaning of the above terms in this disclosure can be understood according to the specific circumstances.
[0027] In addition, technical features involved in different embodiments of this disclosure described below can be combined, as long as they do not conflict with each other.
[0028] Some accompanying drawings may not depict all components of a given method, device, or system. Throughout the specification and drawings, the same reference numerals may be used to denote the same features.
[0029] Figure 1 This is a diagram illustrating an exemplary application scenario of an AP according to an embodiment of this disclosure.
[0030] refer to Figure 1 AP 110 can wirelessly communicate with client devices (also known as stations or STAs) 120-1 to 120-3 via a wireless channel. STAs 120-1, 120-2, and 120-3 can be mobile phones, wearable communication devices, laptops, desktop computers, tablet computers, personal digital assistants (PDAs), etc. AP 110 can access network 130 via a wired channel (e.g., fiber optic). AP 110 thus provides network access to STAs 120-1, 120-2, and 120-3. In the uplink direction, AP 110 can receive various data packets from one or more of STAs 120-1, 120-2, and 120-3 and relay them to network 130. In the downlink direction, AP 110 can receive various data packets from network 130 and relay them to one or more of STAs 120-1, 120-2, and 120-3. To ensure that the quality of data transmission for different types of data packets meets the different requirements of applications, AP 110 can perform QoS processing on data packets before relaying them to STA 120-1, 120-2, and 120-3 or network 130, including operations associated with flow control.
[0031] Figure 2 This is a diagram illustrating an exemplary architecture for data transmission according to existing technology.
[0032] Reference Figure 2AP 110 can relay data packets via hardware QoS path 210 and software QoS path 220. Hardware QoS path 210 may include hardware receive port 211, hardware preprocessing module 212, hardware QoS module 213, and hardware transmit port 214. Software QoS path 220 may include software receive port 221, software preprocessing module 222, software QoS module 223, and software transmit port 224. As mentioned above, hardware QoS path 210 allows a limited number of data packets to pass through; therefore, data packets that cannot enter hardware QoS path 210 are redirected to software QoS path 220. This results in data packets being split into two parts, which can undergo QoS processing independently in two different QoS modules, leading to low accuracy in QoS processing.
[0033] Some efforts have been made to better achieve data transmission with QoS processing. For example, attempts have been made to disable the hardware QoS path 210, causing all data packets to pass through the software QoS path 220 for higher-precision QoS processing. However, this undoubtedly increases the CPU overhead associated with the software QoS path 220 and may therefore degrade the performance of AP 110. Worse still, inaccuracies caused by splitting data packets into two parts may sometimes be ignored. In short, in complex scenarios, the current implementation of data transmission with QoS processing cannot simultaneously guarantee the performance of AP 110 and the accuracy of QoS processing.
[0034] In view of this, this disclosure proposes to perform data transmission involving QoS processing based on the cooperation between hardware QoS path 210 and software QoS path 220. In this way, the accuracy of QoS processing can be improved, while the CPU resource overhead involved in QoS processing can be reduced.
[0035] Figure 3A This is a diagram illustrating an exemplary architecture for data transmission according to embodiments of the present disclosure. Figure 3B This is a diagram illustrating another exemplary architecture for data transmission according to embodiments of this disclosure.
[0036] Reference Figure 3A and Figure 3B According to embodiments of the present disclosure, the AP 110 may include a hardware receiving port 311, a hardware preprocessing module 312, a hardware QoS module 313, a hardware transmitting port 314, a software receiving port 321, a software preprocessing module 322, a software QoS module 323, and a software transmitting port 324.
[0037] Hardware receive port 311 can refer to the physical interface in AP 110 that can receive uplink data packets from one or more of STAs 120-1, 120-2, and 120-3, or downlink data packets from network 130. For example, hardware receive port 311 can be a local area network (LAN) port in the uplink direction or a wide area network (WAN) port in the downlink direction. Hardware receive port 311 can be implemented as a network interface card (NIC), interface chip, etc. Software receive port 321 can refer to the virtual interface in AP 110 that can receive uplink data packets from one or more of STAs 120-1, 120-2, and 120-3, or downlink data packets from network 130. For example, software receive port 321 can be embodied in the kernel of AP 110's OS (operating system). Hardware preprocessing module 312 can refer to a hardware module in AP 110 that performs QoS-related preprocessing on data packets received via hardware receive port 311, such as a hardware Network Address Translation (NAT) module for converting the private IP address of received data packets to a public IP address, or a hardware firewall for inspecting and filtering received data packets to ensure that only data packets that meet predefined rules are allowed to pass. Software preprocessing module 322 can refer to a software module in AP 110 that performs QoS-related preprocessing on data packets received via software receive port 311, such as a software NAT module for converting the private IP address of received data packets to a public IP address, or a software firewall for inspecting and filtering received data packets to ensure that only data packets that meet predefined rules are allowed to pass. Hardware QoS module 313 can refer to a part of a physical chip, such as an application-specific integrated circuit (ASIC) on the motherboard of AP 110 or a programmable processor dedicated to AP 110. Software QoS module 323 can be embodied within the kernel of AP 110's OS. Hardware transmit port 314 can refer to the physical interface in AP 110 that can send uplink data packets to network 130 or downlink data packets to one or more of STAs 120-1, 120-2, and 120-3. For example, hardware transmit port 314 can be a WAN port in the uplink direction or a LAN port in the downlink direction. Hardware transmit port 314 can be implemented as a network interface card (NIC), interface chip, etc.Software transmit port 324 can refer to a virtual interface in AP 110 that can send uplink data packets to network 130 or downlink data packets to one or more of STAs 120-1, 120-2, and 120-3. For example, software transmit port 324 can be implemented within the kernel of AP 110's OS.
[0038] like Figure 3A and Figure 3B As shown, hardware receiving port 311 can be configured to receive a first set of data packets. Software receiving port 321 can be configured to receive a second set of data packets. Each of the first and second sets of data packets may include one or more data packets. Hardware preprocessing module 312 can be configured to perform QoS-related preprocessing on each data packet in the first set of data packets and send the preprocessed first set of data packets to a selected QoS module. Software preprocessing module 322 is configured to perform QoS-related preprocessing on each data packet in the second set of data packets and send the preprocessed second set of data packets to a selected QoS module. Preprocessing of each data packet includes, for example, converting the private IP address of the data packet to a public IP address, detecting whether the data packet is allowed to pass through a firewall according to predefined rules, and other processing related to subsequent QoS processing. Preprocessing of the second set of data packets is similar to preprocessing of the first set of data packets. In this way, the preprocessed first and second sets of data packets can be aggregated into a selected QoS module. The selected QoS module is one of the AP 110's hardware QoS module 313 and software QoS module 323. Specifically, the selected QoS module is... Figure 3A The example shown uses software QoS module 323, and hardware preprocessing module 312 can forward the preprocessed first set of data packets to software QoS module 323. The selected QoS module is... Figure 3B The example shown includes a hardware QoS module 313, and a software preprocessing module 322 can forward the preprocessed second set of data packets to the hardware QoS module 313. The selected QoS module can also be configured to perform QoS processing on each preprocessed data packet in both the preprocessed first and preprocessed second sets of data packets.
[0039] According to embodiments of this disclosure, the selected QoS module can be chosen based on the CPU utilization of AP 110. For example, when the CPU utilization is less than a threshold (e.g., 70%, 80%, or other values), a software QoS module can be selected as the chosen QoS module, while when the CPU utilization is greater than the threshold, a hardware QoS module can be selected as the chosen QoS module.
[0040] Thus, the AP 110 according to embodiments of this disclosure uses both hardware receive port 311 and software receive port 321 to receive data packets to be relayed, uses both hardware preprocessing module 312 and software preprocessing module 322 to preprocess the data packets to be relayed, and uses one of hardware QoS module 313 and software QoS module 323 to perform QoS processing on the data packets. In this way, the preprocessed first group of data packets and the preprocessed second group of data packets are aggregated into one of hardware QoS module 313 or software QoS module 323. This allows the preprocessed first group of data packets and the preprocessed second group of data packets to be QoS processed together rather than separately, while the first group of data packets and the second group of data packets are still received and preprocessed separately. Compared with the prior art, which disables hardware path 210 to allow all data packets to pass through software QoS path 220 or splits data packets into two parts that subsequently pass through hardware path 210 and software path 220 respectively, the AP 110 according to embodiments of this disclosure reduces the CPU resource overhead of the AP 110 and improves the accuracy of QoS processing.
[0041] After QoS processing is performed in the selected QoS module, the first set of QoS-processed data packets and the second set of QoS-processed data packets can be transmitted through one of the hardware transmission port 314 and the software transmission port 324 corresponding to the selected QoS module.
[0042] exist Figure 3A In the example shown, the selected QoS module is software QoS module 323, and the corresponding transmission port is software transmission port 324. In this case, the first set of data packets processed by QoS and the second set of data packets processed by QoS are transmitted by software transmission port 324. Figure 3B In the example shown, the selected QoS module is hardware QoS module 313, and the corresponding transmission port is hardware transmission port 314. In this case, the first set of data packets processed by QoS and the second set of data packets processed by QoS are transmitted by hardware transmission port 314.
[0043] Therefore, sending both the first and second data packets via the same transmission port improves overall data transmission efficiency. If the first and second data packets are sent via hardware and software transmission ports respectively, then the QoS-processed first and second data packets need to be distributed to both transmission ports. In this case, it will inevitably increase the total latency and reduce the overall real-time performance and overall response speed of data transmission.
[0044] According to embodiments of this disclosure, the selected QoS module (i.e., hardware QoS module 313 or software QoS module 323) can also be configured to perform QoS processing on preprocessed data packets based on the type of preprocessed data packets that meet predetermined conditions.
[0045] exist Figure 3A In the example shown, the selected QoS module is software QoS module 323. For each preprocessed data packet in the first preprocessed data packet and the second preprocessed data packet, software QoS module 323 can determine whether to perform QoS processing on the preprocessed data packet based on whether the type of the preprocessed data packet meets predetermined conditions.
[0046] In this embodiment, the predetermined condition includes that the preprocessed data packet is not a control data packet. Control data packets may include acknowledgment (ACK) packets, keep-alive packets, WebSocket Ping / Pong packets, and other types of data packets used to maintain connections with STAs 120-1, 120-2, and 120-3 and network 130, or to ensure connection stability. In this embodiment, the software QoS module 323 directly releases the control data packets; that is, the software QoS module 323 does not perform QoS processing on the control data packets.
[0047] Releasing control data packets is beneficial. It is well known that control data packets typically need to be sent promptly. For example, if an ACK packet, which is a control data packet, is stuck in the software QoS module 323 because QoS processing is required, the receiver of the ACK packet may not receive it within the expected time, ultimately leading to data retransmission and reduced throughput.
[0048] Therefore, AP 110 according to this embodiment can ensure that control data packets are sent in a timely manner by releasing control data packets and not performing QoS processing on control data packets.
[0049] Similar to software QoS module 323, when the selected QoS module is as follows Figure 3B When the hardware QoS module 313 is shown, the hardware QoS module 313 can also directly release control data packets and not perform QoS processing on them.
[0050] Figure 4 This is a diagram illustrating an exemplary processing flow for data packetization according to embodiments of the present disclosure.
[0051] refer to Figure 4Hardware receive port 311 receives the first set of data packets from STAs 120-1, 120-2, and 120-3. The first set of data packets comprises a total of nine data packets, including one video data packet received from STA 120-1 (in...). Figure 4 (shown as a cylinder), a group of image data (in) Figure 4 (shown as a rectangle with rounded corners) and a text data group (in) Figure 4 The image shows a cube-shaped array of data packets, one video data packet and two image data packets received from STA 120-2, and three video data packets received from STA 120-3. Figure 4 As shown, each of the data packets in the first group has an original flow label given by the corresponding STA. For example, the original flow label for a video data packet is "M1". The original flow label for an image data packet is "M2". The original flow label for a text data packet is "M3".
[0052] The hardware preprocessing module 312 can determine the QoS priority of each data packet in the first group of data packets based on predetermined QoS priority rules. For example, the predetermined QoS priority rules may include a higher priority for video data packets than for image data packets, a higher priority for image data packets than for text data packets, a higher priority for STA120-2 than for STA 120-1, and a higher priority for STA 120-1 than for STA 120-3. Therefore, the hardware preprocessing module 312 can determine the following priority order from high to low: video data packets from STA 120-2 (e.g., priority level 1), image data packets from STA 120-2 (e.g., priority level 2), text data packets from STA 120-2 (e.g., priority level 3), video data packets from STA 120-1 (e.g., priority level 4), image data packets from STA 120-1 (e.g., priority level 5), text data packets from STA 120-1 (e.g., priority level 6), video data packets from STA 120-3 (e.g., priority level 7), image data packets from STA 120-3 (e.g., priority level 8), and text data packets from STA 120-3 (e.g., priority level 9). The hardware preprocessing module 312 then assigns hardware QoS traffic tags indicating the corresponding determined QoS priority to each data packet in the first group of data packets. Figure 4In the example shown, video data packets from STA 120-2 are assigned hardware QoS traffic label "H1", image data packets from STA 120-2 are assigned hardware QoS traffic label "H2", video data packets from STA 120-1 are assigned hardware QoS traffic label "H4", and so on.
[0053] However, hardware QoS traffic tags such as "H1", "H2", and "H4" may not be recognized by the software QoS module 323. This may cause the software QoS module 323 to be unable to perform QoS processing on the preprocessed first set of data packets. To solve this problem, the hardware preprocessing module 312 can also be configured to map the corresponding hardware QoS traffic tag of each data packet in the first set of data packets to a corresponding software QoS traffic tag that the software QoS module 323 can recognize.
[0054] In one embodiment, the hardware preprocessing module 312 may perform mapping based on a pre-stored mapping table that indicates the correspondence between one or more software QoS traffic tags and one or more hardware QoS traffic tags.
[0055] Figure 5 This is a diagram illustrating an exemplary mapping table according to an embodiment of the present disclosure.
[0056] like Figure 5 As shown, the software QoS traffic tags "S1", "S2", "...", and "SN" correspond to the hardware QoS traffic tags "H1", "H2", "...", and "HN". Note that... Figure 5 The mapping table in the text is for illustrative purposes only; the hardware QoS traffic tags and software QoS traffic tags may actually be complex. The mapping table can be pre-stored in the hardware preprocessing module 312 and the software preprocessing module 322, and can also be updated over time.
[0057] In another embodiment, the hardware preprocessing module 312 may also perform mapping based on predetermined mathematical operations that map one or more hardware QoS traffic tags to one or more software QoS traffic tags. For example, a hardware QoS traffic tag corresponding to a specific software QoS traffic tag can be obtained by performing predetermined mathematical operations (such as modulo, exponentiation, logarithm, square, etc.) and combinations of these mathematical operations on a specific software QoS traffic tag. In yet another embodiment, the hardware preprocessing module 312 may also perform mapping based on a mapping table and a combination of predetermined mathematical operations.
[0058] Reference Figure 4After mapping the corresponding hardware QoS traffic tags of the first group of data packets to the corresponding software QoS traffic tags, the hardware preprocessing module 312 can forward the preprocessed first group of data packets with each software QoS traffic tag to the software QoS module 323.
[0059] Thus, when the software QoS module 323 is the selected QoS module to perform QoS processing on the preprocessed data packets, the hardware preprocessing module 312 can map the allocated hardware QoS traffic tags to the corresponding software QoS traffic tags, so that the first set of preprocessed data packets can be recognized by the software QoS module 323. Forwarding the first set of preprocessed data packets to the software QoS module 323 by the hardware preprocessing module 312 allows the first set of preprocessed data packets to be processed together with the second set of preprocessed data packets, thereby improving the accuracy of QoS processing.
[0060] Similar to hardware receive port 311, such as Figure 4 As shown, software receive port 321 receives a second set of data packets from STAs 120-1, 120-2, and 120-3. This second set of data packets also comprises a total of nine data packets, including one video data packet and two image data packets received from STA 120-1, one video data packet and two text data packets received from STA 120-2, and one video data packet, one image data packet, and one text data packet received from STA 120-3. Each data packet in the second set of data packets has an original traffic label “M1”, “M2”, or “M3” given by the corresponding STA.
[0061] Similar to the hardware preprocessing module 312, the software preprocessing module 322 can determine the QoS priority of each data packet in the second group of data packets based on predetermined QoS priority rules. Therefore, the software preprocessing module 322 can also determine the following priority order from high to low: video data packets from STA 120-2 (e.g., priority level 1), image data packets from STA 120-2 (e.g., priority level 2), text data packets from STA 120-2 (e.g., priority level 3), video data packets from STA 120-1 (e.g., priority level 4), image data packets from STA 120-1 (e.g., priority level 5), text data packets from STA 120-1 (e.g., priority level 6), video data packets from STA 120-3 (e.g., priority level 7), image data packets from STA 120-3 (e.g., priority level 8), and text data packets from STA 120-3 (e.g., priority level 9). Then, the software preprocessing module 322 can assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second set of data packets. For example... Figure 4 As shown, video data packets from STA 120-2 are assigned the software QoS traffic label "S1", text data packets from STA 120-2 are assigned the software QoS traffic label "S3", video data packets from STA 120-1 are assigned the software QoS traffic label "S4", and so on.
[0062] After assigning the corresponding software QoS traffic tag to the corresponding data packet in the second group of data packets, the software preprocessing module 322 can forward the preprocessed second group of data packets with the corresponding software QoS traffic tag to the software QoS module 323.
[0063] Thus, when the software QoS module 323 is the selected QoS module to perform QoS processing on the preprocessed data packets, the software preprocessing module 322 can determine the QoS priority of each data packet in the second group of data packets and assign software QoS traffic tags to each data packet in the second group of data packets so that the second group of data packets can be ready for subsequent QoS processing.
[0064] refer to Figure 4The software QoS module 323 can perform QoS processing on the preprocessed first and second sets of data packets (and can further release data packets that are control data packets, as described above). QoS processing includes queuing each preprocessed data packet in the preprocessed first and second sets of data packets into a corresponding QoS processing queue based on software QoS traffic marking of the preprocessed data packets. The software QoS module 323 can then perform flow control on the data packets in the QoS processing queue. Figure 4 As shown, the software QoS module 323 can queue data packets with soft QoS traffic marker "S1" into queue 1, data packets with soft QoS traffic marker "S2" into queue 2, and so on. The QoS parameters required for different queues (including parameters associated with bandwidth, latency, jitter, packet loss rate, etc.) can be different. For example, queue 1, with the highest priority, may require high bandwidth, low latency, low jitter, and low packet loss rate. Queue 2, with the second highest priority, may require high bandwidth, low latency, medium jitter, and medium packet loss rate. Operations for flow control may include operations for controlling the bandwidth, latency, jitter, and packet loss rate of each data packet in each queue to achieve target bandwidth, target latency, target jitter, and target packet loss rate. These operations are not the focus of this disclosure and will therefore not be described in detail here to avoid obscuring this disclosure.
[0065] In this way, the AP 110 according to embodiments of the present disclosure can use predetermined priority rules to determine the priority of data packets received from the hardware QoS path and the software QoS path, and unify their QoS traffic labels. The unified QoS traffic labels of data packets in the preprocessed first and second groups of data packets allow the preprocessed first and second groups of data packets to be QoS processed together by the software QoS module 323, thereby improving the accuracy of QoS processing.
[0066] It should be noted that, Figure 4 In the diagram, the first and second groups of data packets are shown as uplink data packets received from the STA, but this is only for ease of explanation. Figure 4 The first and second data packets shown can also be downlink data packets received from network 130. In other words, Figure 4 The example data packet processing procedure shown is used for both the uplink and downlink directions of AP 110.
[0067] Figure 6 This is a diagram illustrating an exemplary processing flow for data packetization according to another embodiment of this disclosure.
[0068] refer to Figure 6Hardware receive port 311 can receive a third set of data packets from STAs 120-1, 120-2, and 120-3. This third set of data packets comprises a total of nine data packets, including one video data packet and two image data packets received from STA 120-1, one video data packet and two text data packets received from STA 120-2, and one video data packet, one image data packet, and one text data packet received from STA 120-3. Software receive port 321 can receive a fourth set of data packets from STAs 120-1, 120-2, and 120-3. This fourth set of data packets comprises a total of nine data packets, including one video data packet, one image data packet, and one text data packet received from STA 120-1, one video data packet and two image data packets received from STA 120-2, and three video data packets received from STA 120-3. Each data packet in both the third and fourth sets of data packets has an original traffic label “M1,” “M2,” or “M3” given by the corresponding STA.
[0069] The software preprocessing module 322 can determine the QoS priority of each data packet in the fourth group of data packets based on a predetermined QoS priority rule, and assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the fourth group of data packets. For example, the predetermined QoS priority rule may include a higher priority for video data packets than for image data packets, a higher priority for image data packets than for text data packets, a higher priority for STA120-2 than for STA 120-1, and a higher priority for STA 120-1 than for STA 120-3. As a result, video data packets from STA 120-2 are assigned software QoS traffic tag "S1", image data packets from STA 120-2 are assigned software QoS traffic tag "S2", video data packets from STA 120-1 are assigned software QoS traffic tag "S3", and so on. Then, the software preprocessing module 322 can also determine the QoS priority of each data packet in the fourth group of data packets based on a mapping table (such as a mapping table indicating the correspondence between one or more software QoS traffic tags and one or more hardware QoS traffic tags) indicating the correspondence between them. Figure 5 (as per the table in the table) and / or based on a predetermined mathematical operation that maps one or more software QoS traffic tags to one or more hardware QoS traffic tags, the corresponding software QoS traffic tag of each data packet in the fourth group of data packets is mapped to the corresponding hardware QoS traffic tag.
[0070] refer to Figure 6After mapping the corresponding software QoS traffic tags of the corresponding data packets of the fourth group of data packets to the corresponding hardware QoS traffic tags, the software preprocessing module 322 can forward the preprocessed fourth group of data packets with the corresponding hardware QoS traffic tags to the hardware QoS module 313.
[0071] Thus, when the hardware QoS module 313 is the selected QoS module to perform QoS processing on the preprocessed data packets, the software preprocessing module 322 can map the allocated software QoS traffic tags to the corresponding hardware QoS traffic tags, so that the preprocessed fourth group of data packets can be recognized by the hardware QoS module 313. Forwarding the preprocessed fourth group of data packets to the hardware QoS module 313 by the software preprocessing module 322 allows the preprocessed fourth group of data packets to be processed together with the preprocessed third group of data packets, thereby improving the accuracy of QoS processing.
[0072] like Figure 6 As shown, hardware receive port 311 can receive a third set of data packets from STAs 120-1, 120-2, and 120-3. This third set of data packets also comprises a total of nine data packets, including one video data packet and two image data packets received from STA 120-1, one video data packet and two text data packets received from STA 120-2, and one video data packet, one image data packet, and one text data packet received from STA 120-3. Each data packet in the third set also has an original traffic label “M1”, “M2”, or “M3” given by the corresponding STA.
[0073] The hardware preprocessing module 312 can also determine the QoS priority of each data packet in the third group of data packets based on predetermined QoS priority rules. For example... Figure 6 As shown, the hardware preprocessing module 312 can assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the third group of data packets. For example... Figure 6 As shown, video data packets from STA 120-2 are assigned hardware QoS traffic labels “H1”, text data packets from STA 120-2 are assigned hardware QoS traffic labels “H3”, video data packets from STA 120-1 are assigned hardware QoS traffic labels “H4”, and so on.
[0074] Therefore, when the hardware QoS module 313 is the selected QoS module to perform QoS processing on the preprocessed data packets, the hardware preprocessing module 312 can determine the QoS priority of each data packet in the third group of data packets and assign hardware QoS traffic tags to each data packet in the third group of data packets so that the third group of data packets can be ready for subsequent QoS processing.
[0075] After assigning a hardware QoS traffic tag to each data packet in the third group of data packets, the hardware preprocessing module 312 can forward each preprocessed data packet in the preprocessed third group of data packets with the corresponding hardware QoS traffic tag to the hardware QoS module 313.
[0076] refer to Figure 6 The hardware QoS module 313 can perform QoS processing on the pre-processed third and fourth sets of data packets (and can further release data packets that are control data packets, as described above). QoS processing includes hardware QoS traffic marking based on data packets, queuing each data packet in the third and fourth sets of data packets into the corresponding QoS processing queue for flow control. Figure 6 As shown, the hardware QoS module 313 can queue preprocessed data packets with hardware QoS traffic marker "H1" into queue 1, queue preprocessed data packets with hardware QoS traffic marker "H2" into queue 2, and so on. Then, the hardware QoS module 313 can perform flow control operations on the preprocessed data packets in each QoS processing queue.
[0077] In this manner, the AP 110 according to embodiments of the present disclosure can use predetermined priority rules to determine the priority of data packets received from the hardware QoS path and the software QoS path, and unify their QoS traffic labels. The unified QoS traffic labels of the data packets in the preprocessed third group of data packets and the preprocessed fourth group of data packets enable the preprocessed third and fourth groups of data packets to be QoS processed together by the hardware QoS module 313, thereby improving the accuracy of QoS processing.
[0078] It should be noted that, Figure 6 In the diagram, the data packets in the third and fourth data packets groups are shown as uplink data packets received from STAs 120-1, 120-2, and 120-3, but this is only for ease of explanation. The data packets in the third and fourth data packets groups could also be downlink data packets received from network 130. In other words, Figure 6The example data packet processing procedure can be used for both the uplink and downlink directions of AP 110.
[0079] Figure 7 This is a diagram illustrating an exemplary application scenario where a hardware QoS module cannot be used in the downlink direction of an AP according to embodiments of this disclosure.
[0080] Commercially available systems-on-chips (SoCs) for access points (APs) typically have hardware QoS modules at each WAN and LAN port. APs are often designed with one WAN port and multiple LAN ports. For this type of AP, there are multiple hardware QoS modules, each for one of the multiple LAN ports. In this case, when the selected QoS module is a hardware QoS module and a hardware QoS path is used in the downlink direction (i.e., downlink packets received by the hardware receive port and data packets received by the software receive port are relayed to one or more STAs), the pre-processed data packets may not be aggregated in one of the multiple hardware QoS modules, but rather distributed to each of the multiple hardware QoS modules. Consider... Figure 7 In the example, the data packets in the first group are downlink data packets to be relayed to STAs 120-1, 120-2, and 120-3. The preprocessed first group of data packets can be distributed to three hardware QoS modules 313, each corresponding to one of the three hardware transmit ports 314. This can also lead to low accuracy in QoS processing.
[0081] To avoid this undesirable situation, when the first and second data packets are downlink data packets, the selected QoS module can be restricted to software QoS module 323, and when the first and second data packets are uplink data packets, the selected QoS module can be restricted to hardware QoS module 313. In other words, Figure 3A and Figure 4 The example data packet processing procedure shown is used for the downlink direction of AP 110, and Figure 3B and Figure 6 The example data packet processing procedure shown is used for the uplink direction of AP 110. This is particularly beneficial for APs equipped with hardware QoS modules for each of multiple LAN ports, as it avoids the low QoS accuracy that would result from needing to distribute downlink data packets to multiple hardware QoS modules.
[0082] Figure 8 This is a schematic flowchart illustrating a method for data transmission according to an embodiment of the present disclosure. The method can be implemented by AP 110.
[0083] refer to Figure 8 Method 800 includes steps S810 to S850.
[0084] In step S810, the hardware receiving port (e.g., hardware receiving port 311) and the software receiving port (e.g., software receiving port 321) can receive the first set of data packets and the second set of data packets, respectively. In step S820, the hardware preprocessing module (e.g., hardware preprocessing module 312) and the software preprocessing module (e.g., software preprocessing module 322) can perform QoS-related preprocessing on the first set of data packets and the second set of data packets, respectively. In step S830, the preprocessed first set of data packets and the preprocessed second set of data packets are aggregated into a selected QoS module. The selected QoS module is one of a hardware QoS module (e.g., hardware QoS module 313) and a software QoS module (e.g., software QoS module 323). In one example, as previously mentioned... Figure 3A and 3B As described above, selected QoS modules can be chosen based on the CPU utilization of the AP 110. In another example, as previously described... Figure 7 As described, when the first and second data packets are downlink data, the selected QoS module can be restricted to software QoS module 323, and when the first and second data packets are uplink data packets, the selected QoS module can be restricted to hardware QoS module 313.
[0085] In step S840, as described above, QoS processing of the preprocessed data packets is performed based on the fact that the type of the preprocessed data packets meets predetermined conditions. For example, the predetermined conditions may include that the preprocessed data packets are not control data packets.
[0086] Preferably, as mentioned above, the predetermined condition includes that the preprocessed data packet is not a control data packet. That is, if the data packet is a control data packet, the selected QoS module directly releases the preprocessed data packet and does not perform QoS processing on it.
[0087] In step S850, the first set of data packets and the second set of data packets processed by QoS can be transmitted through one of the selected hardware transmission port (e.g., hardware transmission port 314) and software transmission port (e.g., software transmission port 324) corresponding to the selected QoS module. For example, when the hardware QoS module 313 performs QoS processing on the pre-processed first set of data packets and the second set of data packets, the hardware transmission port 314 transmits the QoS-processed first set of data packets and the second set of data packets. As another example, when the software QoS module 323 performs QoS processing on the pre-processed first set of data packets and the second set of data packets, the software transmission port 324 transmits the QoS-processed first set of data packets and the second set of data packets.
[0088] Figure 9 This is a flowchart illustrating a sub-step of step S820 in a method for data transmission according to an embodiment of the present disclosure.
[0089] If the selected QoS module in step S810 is software QoS module 323, then step S820 may include sub-steps S821 to S823 executed by a hardware preprocessing module (e.g., hardware preprocessing module 312) and sub-steps S824 to S825 executed by a software preprocessing module (e.g., software preprocessing module 322).
[0090] In sub-step S821, the hardware preprocessing module can determine the QoS priority of each data packet in the first group of data packets based on a predetermined QoS priority rule. In sub-step S822, the hardware preprocessing module can assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the first group of data packets. In sub-step S823, the hardware preprocessing module can assign a hardware QoS traffic tag indicating the correspondence between one or more software QoS traffic tags and one or more hardware QoS traffic tags based on a pre-stored mapping table (e.g., [example table not provided]). Figure 5 The mapping table in the first set of data packets) and / or a predetermined mathematical operation that maps one or more software QoS traffic tags to one or more hardware QoS traffic tags maps the hardware QoS traffic tag assigned to each data packet to the corresponding software QoS traffic tag.
[0091] In sub-step S824, the software preprocessing module can determine the QoS priority of each data packet in the second group of data packets based on a predetermined QoS priority rule. In sub-step S825, the software preprocessing module can assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets.
[0092] After sub-steps S823 and S825, method 800 proceeds to step S830.
[0093] Figure 10 This is a flowchart illustrating a sub-step of step S820 in a method for data transmission according to another embodiment of the present disclosure.
[0094] If the QoS module selected in step S810 is hardware QoS module 313, then step S820 may include sub-steps S821' to S823' executed by software preprocessing module (e.g., software preprocessing module 322) and sub-steps S824' to S825' executed by hardware preprocessing module (e.g., hardware preprocessing module 312).
[0095] In sub-step S821', the software preprocessing module can determine the QoS priority of each data packet in the second group of data packets based on a predetermined QoS priority rule. In sub-step S822', the software preprocessing module can assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets. In sub-step S823, the software preprocessing module can assign a software QoS traffic tag indicating the correspondence between one or more hardware QoS traffic tags and one or more software QoS traffic tags based on a pre-stored mapping table (e.g., ...). Figure 5 The software QoS traffic tag of each data packet in the second set of data packets is mapped to the corresponding hardware QoS traffic tag based on a mapping table in the table and / or on a predetermined mathematical operation that maps one or more hardware QoS traffic tags to one or more software QoS traffic tags.
[0096] In sub-step S824', the hardware preprocessing module can determine the QoS priority of each data packet in the first group of data packets based on a predetermined QoS priority rule. In sub-step S825', the hardware preprocessing module can assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the first group of data packets.
[0097] After substeps S823' and S825', method 800 proceeds to step S830.
[0098] Figure 3 to Figure 6 The process of implementing method 800 by AP 110 is described, and details are omitted here for the sake of brevity.
[0099] Thus, the data transmission method according to embodiments of this disclosure allows pre-processed first and second sets of data packets to be subjected to QoS processing together, while simultaneously allowing the first and second sets of data packets to be received and pre-processed separately. This can reduce the CPU resource overhead of AP 110 and improve the accuracy of QoS processing.
[0100] Figure 11 This is an exemplary block diagram illustrating an AP according to an embodiment of the present disclosure. It should be noted that... Figure 11 The AP described herein can be used to perform the method 800 as described above.
[0101] like Figure 11 As shown, AP 110 may include a processor 111 and a memory 112. The processor 111 may be coupled to the memory 112 via a communication bus and may be configured to perform the method 800 discussed above.
[0102] Examples of processor 111 may include microprocessors, microcontrollers, digital signal processors (DSPs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout this disclosure.
[0103] Processor 111 can execute software. Whether referred to as software, firmware, middleware, microcode, hardware description language, or other terms, software should be broadly interpreted to mean instructions, instruction sets, code, code segments, program code, programs, subroutines, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, etc. Software can reside on memory 112.
[0104] Memory 112 may be a non-transitory computer-readable medium. As examples, non-transitory computer-readable media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic stripes), optical disks (e.g., compact discs (CDs) or digital multifunction discs (DVDs)), smart cards, flash memory devices (e.g., cards, sticks, or key drives), random access memory (RAM), read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), registers, removable disks, erasable PROM (EEPROM), and any other suitable medium for storing software and / or instructions that can be accessed and read by a computer.
[0105] Additionally, according to another embodiment of this disclosure, a computer program product for controlling data transmission is disclosed. As an example, the computer program product includes a computer-readable medium having program instructions embodied therein, and these program instructions are executable by a processor. When executed, the program instructions cause the processor to perform one or more of the processes described above. This disclosure can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to execute aspects of this disclosure.
[0106] This disclosure can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to perform aspects of this disclosure.
[0107] Unless otherwise expressly stated, expressions such as “according to,” “based on,” “dependent on,” etc., as used in this disclosure do not mean “according to only,” “based on only,” or “dependent on only.” In other words, in this disclosure, such expressions generally mean “at least according to,” “at least based on,” or “at least dependent on.”
[0108] As used in this disclosure, the term "determine" can include a variety of operations. For example, "determine," calculation, operation, processing, derivation, investigation, search (e.g., searching in a table, database, or other data structure), and ascertainment are all considered "determine." Additionally, "determine" also refers to receiving (e.g., receiving information), sending (e.g., sending information), inputting, outputting, and accessing (e.g., accessing data in memory). Furthermore, "determine" can also refer to parsing, selecting, picking, building, and comparing. In other words, several actions can be considered "determine."
[0109] As used in this disclosure, terms such as “connection,” “coupling,” or any variation thereof refer to any direct or indirect connection or combination between two or more units, which may include situations where one or more intermediate units exist between two units that are “connected” or “coupled” to each other. The coupling or connection between units may be physical or logical, or a combination of both. As used in this disclosure, two units may be considered electrically connected by means of one or more wires, cables, and / or printing, and as numerous non-limiting and non-exhaustive examples, may be “connected” or “coupled” to each other by means of electromagnetic energy in the radio frequency region, microwave region, and / or light (visible and invisible) region, etc.
[0110] When the terms “comprising,” “including,” and variations thereof are used in this disclosure or claims, these terms are open-ended, just like the term “having.” Furthermore, the term “or” as used in this disclosure or claims is not an exclusive “or.”
[0111] The present disclosure has been described in detail above, but it will be apparent to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure may be implemented in modified and altered forms without departing from the spirit and scope of the present disclosure as defined by the claims. Therefore, the description in this disclosure is illustrative and not intended to limit the scope of the present disclosure in any way.
Claims
1. A method for data transmission performed by an access point (AP), comprising: The first and second data packets are received by the hardware receiving port and the software receiving port, respectively. The hardware preprocessing module and the software preprocessing module respectively perform QoS-related preprocessing on the first group of data packets and the second group of data packets; The pre-processed first set of data packets and the pre-processed second set of data packets are forwarded to the selected QoS module, wherein the selected QoS module is one of the hardware QoS module and the software QoS module. as well as For each preprocessed data packet in the first preprocessed data packet and the second preprocessed data packet, the selected QoS module performs QoS processing on the preprocessed data packet.
2. The method according to claim 1, wherein, QoS processing is performed on the preprocessed data packets based on the type of the preprocessed data packets meeting predetermined conditions, wherein the predetermined conditions include: the preprocessed data packets are not control data packets.
3. The method according to claim 1, wherein: The selected QoS module is the hardware QoS module; The preprocessing performed by the software preprocessing module on the second group of data includes: The QoS priority of each data packet in the second group of data packets is determined based on predetermined QoS priority rules; Assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets; and The software QoS traffic tag of each data packet in the second group of data packets is mapped to a hardware QoS traffic tag to generate a corresponding data packet with the corresponding hardware QoS traffic tag; and The process of forwarding the preprocessed second set of data packets to the selected QoS module by the software preprocessing module includes: forwarding each preprocessed data packet with the hardware QoS traffic tag in the preprocessed second set of data packets to the hardware QoS module.
4. The method according to claim 3, wherein, The mapping is based on a pre-stored mapping table and / or on a predetermined mathematical operation, wherein the mapping table indicates the correspondence between one or more software QoS traffic tags and one or more hardware QoS traffic tags, and the predetermined mathematical operation maps the one or more software QoS traffic tags to the one or more hardware QoS traffic tags.
5. The method of claim 3, wherein the preprocessing performed by the hardware preprocessing module on the first group of data includes: The QoS priority of each data packet in the first group of data packets is determined based on predetermined QoS priority rules; as well as Assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the first group of data packets.
6. The method according to claim 5, wherein, The QoS processing includes: Based on the hardware QoS traffic marking, each preprocessed data packet in the first preprocessed data packet group and the second preprocessed data packet group is queued into the corresponding QoS processing queue for traffic control.
7. The method according to claim 3, wherein, The first set of data packets and the second set of data packets are uplink packets from the station.
8. The method according to claim 1, wherein: The selected QoS module is a software QoS module; The preprocessing performed by the hardware preprocessing module on the first group of data includes: The QoS priority of each data packet in the first group of data packets is determined based on predetermined QoS priority rules; Assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the first group of data packets; and Map the hardware QoS traffic tag of each data packet in the first group of data packets to a software QoS traffic tag to generate a corresponding data packet with the corresponding software QoS traffic tag; and The forwarding of the preprocessed first group of data packets to the selected QoS module by the hardware preprocessing module includes: forwarding each preprocessed data packet with the software QoS traffic tag in the preprocessed first group of data packets to the software QoS module.
9. The method according to claim 8, wherein, The mapping is based on a pre-stored mapping table and / or on a predetermined mathematical operation, wherein the mapping table indicates the correspondence between one or more software QoS traffic tags and one or more hardware QoS traffic tags, and the predetermined mathematical operation maps the one or more hardware QoS traffic tags to the one or more software QoS traffic tags.
10. The method according to claim 8, wherein, The preprocessing performed by the software preprocessing module on the second group of data includes: The QoS priority of each data packet in the second group of data packets is determined based on predetermined QoS priority rules; and Assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets.
11. The method according to claim 10, wherein, The QoS processing includes: Based on the hardware QoS traffic marking, each preprocessed data packet in the first preprocessed data packet group and the second preprocessed data packet group is queued into the corresponding QoS processing queue for traffic control.
12. The method according to claim 8, wherein, The first set of data packets and the second set of data packets are downlink packets to be sent to the station.
13. The method according to claim 1, further comprising: The first set of QoS-processed data packets and the second set of QoS-processed data packets are transmitted through one of the hardware transmission port and the software transmission port corresponding to the selected QoS module.
14. An access point (AP), comprising: The hardware receive port is configured to receive the first set of data packets; The software receive port is configured to receive the second set of data packets; A hardware preprocessing module is configured to perform QoS-related preprocessing on the first set of data packets and forward the preprocessed first set of data packets to a selected QoS module. A software preprocessing module is configured to perform QoS-related preprocessing on the second set of data packets and forward the preprocessed second set of data packets to a selected QoS module. The selected QoS module is one of the hardware QoS module and the software QoS module of the AP, and the selected QoS module is configured to perform QoS processing on each preprocessed data packet in the first preprocessed data packet and the second preprocessed data packet.
15. The access point according to claim 14, wherein, The selected QoS module is configured to perform QoS processing on the preprocessed data packets based on the type of the preprocessed data packets meeting predetermined conditions, wherein the predetermined conditions include: the preprocessed data packets are not control data packets.
16. The access point according to claim 14, wherein The selected QoS module is the hardware QoS module; in, The software preprocessing module is also configured to perform preprocessing on the second group of data groups by the following operations: The QoS priority of each data packet in the second group of data packets is determined based on predetermined QoS priority rules; Assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets; as well as The software QoS traffic tag of each data packet in the second group of data packets is mapped to a hardware QoS traffic tag to generate a corresponding data packet with the corresponding hardware QoS traffic tag. The software preprocessing module is further configured to forward each preprocessed data packet in the second set of preprocessed data packets with the hardware QoS traffic tag to the hardware QoS module.
17. The access point according to claim 16, wherein: The hardware preprocessing module is configured to perform the preprocessing on the first group of data groups by the following operations: The QoS priority of each data packet in the first group of data packets is determined based on predetermined QoS priority rules, and Assign a hardware QoS traffic tag indicating the determined QoS priority to each data packet in the first group of data packets; and The hardware QoS module is further configured to: queue each preprocessed data packet in the first group of data packets and the second group of data packets into the corresponding QoS processing queue for flow control based on the hardware QoS traffic label.
18. The access point according to claim 14, wherein The selected QoS module is a software QoS module; in, The hardware preprocessing module is also configured to perform the preprocessing on the first group of data groups by the following operations: The QoS priority of each data packet in the first group of data packets is determined based on predetermined QoS priority rules. Assign a hardware QoS traffic tag with a determined QoS priority to each data packet in the first group of data packets, and Map the hardware QoS traffic tag of each data packet in the first group of data packets to a software QoS traffic tag, and The hardware preprocessing module is further configured to forward each preprocessed data packet with the software QoS traffic tag in the first set of preprocessed data packets to the software QoS module.
19. The access point according to claim 18, wherein The software preprocessing module is configured to perform the preprocessing on each data packet in the second group of data packets by the following operations: The QoS priority of each data packet in the second group of data packets is determined based on predetermined QoS priority rules, and Assign a software QoS traffic tag indicating the determined QoS priority to each data packet in the second group of data packets, and in, The software QoS module is configured to: based on the software QoS traffic label, queue each preprocessed data packet in the preprocessed first group of data packets and the preprocessed second group of data packets into the corresponding QoS processing queue for flow control.
20. A computer program product comprising a computer-readable medium having instructions stored thereon, which, when executed by a processor of an access point (AP), causes the processor to perform the following operations: The control is that the AP receives the first group of data packets and the second group of data packets through its hardware receiving port and software receiving port, respectively. The control is performed by the hardware preprocessing module and the software preprocessing module of the AP to perform QoS-related preprocessing on the first group of data packets and the second group of data packets respectively; The control forwards the pre-processed first set of data packets and the pre-processed second set of data packets to the selected QoS module of the AP, wherein the selected QoS module is one of the hardware QoS module and software QoS module of the AP; as well as For each preprocessed data packet in the first preprocessed data packet and the second preprocessed data packet, the selected QoS module controls the QoS processing of the preprocessed data packet.
Citation Information
Patent Citations
Combined hardware / software forwarding mechanism and method
CN102195875A
Multi-Standard Network Convergence Method, Device, and System
US20150334601A1
Cooperative access points for quality of service (QoS) requirements in wireless local access networking (WLAN)
US20210099907A1
APPARATUS AND METHOD FOR QoS AWARE GTP-U TRANSPORT IN MOBILE NETWORKS
US20210160768A1