Method and apparatus for offloading packet classification processing of an access point in a residential gateway

A method and apparatus for offloading packet classification processing of an access point in a residential gateway. A residential gateway includes a wireless access point and a processing circuit. The processing circuit receives a data packet from a network via a network port, processes the data packet to obtain packet classification information for the data packet, and sends the data packet with the packet classification information to the access point. The access point may process the data packet based on the packet classification information received from the processing circuit. The packet classification information includes at least one of a basic service set identifier, a station identifier, and an access category. The processing circuit may include a packet accelerator. The packet accelerator may write a cookie including the packet classification information in a packet descriptor for the data packet.

FIELD

Examples relate to a residential gateway, more particularly, a method and apparatus for offloading packet classification processing of an access point in a residential gateway.

BACKGROUND

Network operators (e.g. multiple systems operators (MSOs)) have deployed a network (e.g. a co-axial network, a hybrid fiber-coaxial (HFC) network, a digital subscriber line (DSL) network, etc.) to provide TV, video and audio broadcast services, interactive video services, high-speed data services including Internet services, and the like to their subscribers. In the customer premises, a residential gateway (e.g. a home gateway, a cable modem, etc.) is installed to receive the services provided by the network operators. A residential gateway allows a connection of a local area network (LAN) to a wide area network (WAN) and may provide functionalities of a modem.

Residential gateways may include a hardware accelerator for packet forwarding as well as a wireless LAN (WLAN) access point (AP) for providing wireless accesses to user equipments, such as a mobile phone, a laptop computer, etc. The growth in bandwidth and the introduction of Internet of Things (IOT) bring some challenges with respect to the processing loads on the AP in the residential gateway. It is expected that the average packet size will become smaller while the overall throughput becomes higher, resulting in much greater packet-per-second (PPS) rates having to be processed at the AP. Therefore, there is a need to relieve the processing load on the WLAN AP in the residential gateway.

DETAILED DESCRIPTION

FIG. 1shows a schematic of wireless networks according to some examples of the present disclosure. A wireless network is supported by an AP1010,1050. An AP1010,1050communicates with one or more wireless stations (STA)1020-1040,1060-1080. The station (e.g. a user equipment) may be a laptop, a smartphone, a computing device, a tablet, or any type of user device capable of wireless communication. Example wireless networks include Wireless Fidelity (Wi-Fi) networks operating according to an Institute for Electrical and Electronics Engineers (IEEE) 802.11 standards (e.g., an 802.11ac standard). A first network provided by an AP1010and a second network provided by an AP1050may overlap such that one or more devices1010-1040in the first network may receive transmissions from one or more of devices1050-1080in the second network and one or more of devices1050-1080in the second network may receive transmissions from one or more of devices1010-1040in the first network.

FIG. 2shows a schematic illustration of a residential gateway according to an example. The residential gateway210may be referred to as a home gateway, a cable modem, or any device that may connect a user device (e.g. a station) to a network such as Internet. The residential gateway210comprises a WAN module216(e.g. comprising a WAN port and a WAN transceiver circuit), which is able to connect the residential gateway210to a network202(e.g. by an xDSL connection, a cable connection, a radio frequency (RF) connection, etc.). The residential gateway210includes a WiFi circuit214(e.g. an AP circuit) configured to enable a wireless data exchange with one or more other devices230(e.g. mobile device as a cell phone, a laptop, etc.). The residential gateway210may include a LAN circuit212(e.g. comprising a LAN port and an LAN transceiver circuit, such as Ethernet circuit) to enable a wired data exchange with one or more other devices220(e.g. a personal computer, a laptop, etc.).

Examples are provided to offload at least a part of packet processing load (e.g. packet classification) performed at the AP214in the residential gateway210to a hardware accelerator (e.g. a packet forwarding engine) in the residential gateway210by taking advantage of packet classification processing done as a part of the processing performed by the hardware accelerator.

The transmit flow of an AP214includes packet classification of an incoming data packet for the purposes of finding a basic service set identifier (BSSID), a station ID, a WiFi multi-media (WMM) access category, etc. The AP214in the residential gateway210may be implemented as a self-contained standalone device. In such case, the AP214may perform the packet classifications independently. However, due to a cost reason, the AP214included in the residential gateway210may have limited capabilities, including limited PPS capabilities, simplistic parsing and limited look-up, etc. In contrast, the residential gateway210may include a better processing power including a hardware accelerator. In addition, the residential gateway210would perform the packet classification anyway for other purposes (e.g. implementing a firewall, etc.).

In some examples, the packet classification process performed by the AP214may be offloaded to a hardware accelerator in the residential gateway210such that the hardware accelerator in the residential gateway210classifies the packets and the digested information (i.e. the packet classification information) obtained by the hardware accelerator is transferred to the AP214, and the AP214may simply use the information (e.g. a 32-bit cookie) provided by the hardware accelerator instead of performing the packet classification processing. The packet classification information provided by the hardware accelerator to the AP214may include at least one of a BSSID, a station ID, or an access category. Additional information may also be provided from the hardware accelerator to the AP.

With this scheme, the need for an AP214in a residential gateway210to classify the incoming packets may be eliminated and the AP214may avoid the intensive computing process involved with the packet classification. Instead, the AP214can obtain all the information needed for classifying the incoming packets, for example, with one simple look-up (e.g. retrieving a cookie). In accordance with the examples disclosed herein, the AP214can save a lot of processing power and the whole system would run more efficiently with higher PPS and may be more flexible.

FIG. 3is a schematic diagram of an example residential gateway210for providing network connectivity to a station(s). The residential gateway210may include a processing circuit218and an AP214. The AP214may be a standalone device attached to the residential gateway210. The AP214may serve one or more basic service sets (BSSs) and is configured to provide a wireless connectivity to one or more stations (e.g. user equipment). The processing circuit218is configured to receive a data packet from a network via a network port (e.g. a WAN port), process the data packet to obtain packet classification information for the data packet, and send the data packet with the packet classification information to the AP214. The AP214may process the data packet based on the packet classification information received from the processing circuit218without performing a packet classification process.

FIG. 4shows a structure of an example residential gateway210along with an example data flow in the residential gateway210. The residential gateway210allows a connection of a LAN to a WAN such as Internet. The residential gateway210receives a flow of data packets from a network via a WAN port216and processes and forwards the received data packets to an appropriate output, such as to a LAN port212or to the AP214. The AP214sends the data packets to a station on an appropriate BSS.

The AP214is a wireless networking device that allows a station (e.g. a user equipment) to connect to a network via a wireless link. The AP214may be functionally separate and independent from the rest of the residential gateway210. The AP214may serve one or more BSSs. Each of the basic service sets is identified by a BSSID, which is a 48-bit identifier.

The residential gateway210may include two processing paths (i.e. processing circuits) for processing incoming data packets: a software-based processing path412and a hardware-based processing path414. The software-based processing path412is implemented by a packet processing software running on a processor (i.e. a host processor of the residential gateway210). The hardware-based processing path414may be implemented with a hardware accelerator that is specifically designed for processing the incoming packets. The hardware accelerator may be referred to as a packet forwarding accelerator or a packet forwarding engine and can be implemented by an application specific integrated circuit (ASIC).

A data packet belonging to a new flow arrives from a network at the WAN port216of the residential gateway210(401). Since it is a new flow of packet, the hardware-based processing path414may not yet be set up for processing the new packet, and the new packet may be initially processed by the software-based processing path412.

The software-based processing path412(i.e. a control software) may program the hardware-based processing path414for processing the new flow of packets (402). In order to program the hardware-based processing path414, the incoming packet may be parsed and fields of the packet may be extracted from the packet, as done by the AP214, and then the software-based processing path412may program the hardware-based processing path414with a flow classification rule, a modification action, and a forwarding rule, etc. The software-based processing path412may have a WiFi software module to perform the packet classification process as performed at the AP214. The software-based processing path412may receive a copy of the WiFi software module including the classification rules from the AP214to mimic the packet classification process. The software-based processing path412may parse the incoming packet, examine the parsed packet, and apply the classification rules. The software-based processing path412obtains packet classification information including at least one of a BSSID, a station ID, and an access category, etc. from the packet after parsing and analyzing the packet and program the hardware-based processing path414to perform the same processing on subsequent data packets belonging to the same flow.

The software-based processing path412then pushes the packet to the AP214(403). The AP214may include a packet parser422, a packet classifier424, and a medium access control (MAC) entity426. In case, the packet classification information of the packet is not provided to the AP214, the packet parser422may parse the received packet into fields, and the packet classifier424may classify the packet based on a BSSID, a station ID, and an access category. Alternatively, the AP214may not include the packet parser422and the packet classifier424, and may rely on the packet classification information provided by the software-based processing path412or the hardware-based processing path414. The AP214processes the received packet (404), and then transmits the packet to a station based on the BSSID, the station ID, and/or the access category (405).

A subsequent packet(s) of the same data flow arrives at the WAN port214(406). Since the hardware-based processing path414has been set up for the data flow, the subsequent packet(s) is classified as belonging to an existing accelerated flow and is forwarded to the hardware-based processing path414(407). After processed by the hardware-based processing path414the packet classification information (e.g. the BSSID, the station ID, and/or the access category, etc.) for the packet is obtained (408), the packet is pushed to the AP214along with the packet classification information (409). The AP214transmits the packet to a station based on the packet classification information received from the hardware-based processing path414(410).

The classification information may be encoded (by the software-based processing path412or the hardware-based processing path414) into a single field, (e.g. a 32-bit field) that may be called “WiFi cookie.”FIG. 5shows an example encoding of the WiFi cookie with 6 bits for the BSSID index, 10 bits for the station ID index, 3 bits for the access category, and 13 reserved bits. The hardware-based processing path424may be programmed to generate the WiFi cookie as part of the flow information.

All subsequent data packets of the same flow may go through the hardware-based processing path414. All packets belonging to the same flow may get the same modification actions by the hardware-based processing path414such that a WiFi cookie is generated for each incoming packet. In some examples, the WiFi cookie for the packet may be written into the packet descriptor. The 32-bit field including the packet classification information may be added in the packet descriptor.

FIG. 6shows an example packet processing process performed at the AP214. When an AP214receives a data packet, the AP214may look for a WiFi cookie for the data packet in a packet descriptor (602). If a WiFi cookie exists, the AP214extracts the WiFi cookie and obtains the packet classification information (e.g. the BSSID, the station ID, the access category, and/or any other information) from the WiFi cookie (604). The AP214then proceeds directly to the medium access control (MAC) processing without packet classification processing (610). If a WiFi cookie does not exist, the AP214may parse the data packet to fields (606), and apply a packet classifier to obtain the packet classification information (608), and then performs the MAC processing (610). If the AP214does not include a packet parser and a packet classifier, the AP214relies on the packet classification information provided by the hardware-based processing path (or the software-based processing path). Extracting a cookie is a much faster operation compared to the alternative path of parsing the packet, extracting the fields, and applying them to the packet classifier. In accordance with the examples disclosed herein, the processing load on the AP214may be lowered and the packet processing may be performed more efficiently.

Another example is a computer program having a program code for performing at least one of the methods described herein, when the computer program is executed on a computer, a processor, or a programmable hardware component. Another example is a machine-readable storage including machine readable instructions, when executed, to implement a method or realize an apparatus as described herein. A further example is a machine-readable medium including code, when executed, to cause a machine to perform any of the methods described herein.

Machine (e.g., computer system)11000may include a hardware processor11002(e. g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory11004and a static memory11006, some or all of which may communicate with each other via an interlink (e.g., bus)11008. The machine11000may further include a display unit11010, an alphanumeric input device11012(e.g., a keyboard), and a user interface (UI) navigation device11014(e. g., a mouse). In an example, the display unit11010, input device11012and UI navigation device11014may be a touch screen display. The machine11000may additionally include a storage device (e. g., drive unit)11016, a signal generation device11018(e.g., a speaker), a network interface device11020, and/or one or more sensors11021, such as a global positioning system (GPS) sensor, compass, accelerometer, or other sensor. The machine11000may include an output controller11028, such as a serial (e. g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.).

The storage device11016may include a machine readable medium11022on which is stored one or more sets of data structures or instructions11024(e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions11024may also reside, completely or at least partially, within the main memory11004, within static memory11006, or within the hardware processor11002during execution thereof by the machine11000. In an example, one or any combination of the hardware processor11002, the main memory11004, the static memory11006, or the storage device11016may constitute machine readable media.

While the machine readable medium11022is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) configured to store the one or more instructions11024.

The instructions11024may further be transmitted or received over a communications network11026using a transmission medium via the network interface device11020. The Machine11000may communicate with one or more other machines using one or more networks. Machine11000may utilize any one or more of a number of communication and network protocols implemented in some examples by one or more of the components of machine11000including the network interface device11020. Examples include a frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), protocols relating to local area networks (LAN), wide area networks (WAN), packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards known as Wi-Fi®, IEEE 802.16 family of standards known as WiMax®), IEEE 80215.4 family of standards, a Long Term Evolution (LTE) family of standards, a Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, among others. In an example, the network interface device11020may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communications network11026. In an example, the network interface device11020may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, the network interface device11020and/or other components of machine11000may wirelessly communicate using Multiple User MIMO techniques. Network interface device11020and/or other components of machine11000may modulate and demodulate packets utilizing Orthogonal Frequency Division Multiplexing (OFDM) techniques and may implement one or more network protocol layers such as a Medium Access Control layer (MAC layer) a Physical Layer (PHY) and the like.

The examples as described herein may be summarized as follows:

Example 1 is a residential gateway comprising an access point configured to provide a wireless connectivity to a user equipment, and a processing circuit configured to receive a data packet from a network via a network port, process the data packet to obtain packet classification information for the data packet, and send the data packet with the packet classification information to the access point. The processing circuit includes a hardware-based packet accelerator configured to process the data packet to obtain the packet classification information for the data packet based on packet classification rules provided by the access point and send the data packet with the packet classification information to the access point. The access point is configured to process the data packet based on the packet classification information received from the processing circuit.

Example 2 is the residential gateway of example 1, wherein the packet classification information includes at least one of a basic service set identifier, a station identifier, and an access category.

Example 3 is the residential gateway as in any one of examples 1-2, wherein the processing circuit includes a software-based process path configured to program the hardware-based packet accelerator based on packet classification rules that are applied by the access point.

Example 4 is the residential gateway as in any one of examples 1-3, wherein the hardware-based packet accelerator is configured to write a cookie including the packet classification information in a packet descriptor for the data packet.

Example 5 is the residential gateway of example 4, wherein the access point is configured to determine whether a cookie exists in the packet descriptor for the data packet, and if the cookie exists, extract the cookie from the packet descriptor, and process the data packet based on information extracted from the cookie.

Example 6 is the residential gateway of example 5, wherein the access point is configured to, if the access point determines that the cookie does not exist in the packet descriptor for the data packet, parse the data packet, extract fields from the data packet, and apply the extracted fields to a packet classifier to obtain the packet classification information.

Example 7 is the residential gateway as in any one of examples 1-6, wherein the access point is a standalone device.

Example 8 is the residential gateway as in any one of examples 1-7, wherein the processing circuit includes a software-based process path configured to process a data packet in a packet flow before setting up the hardware-based packet accelerator for the packet flow.

Example 9 is a method for offloading packet classification process of an access point in a residential gateway. The method includes receiving a data packet from a network via a network port, processing the data packet to obtain packet classification information for the data packet, sending the data packet with the packet classification information to an access point in the residential gateway, and sending the data packet from the access point to a user equipment based on the packet classification information. The data packet is processed by a hardware-based packet accelerator configured to process the data packet based on packet classification rules provided by the access point to obtain the packet classification information for the data packet and send the data packet with the packet classification information to the access point.

Example 10 is the method of example 9, wherein the packet classification information includes at least one of a basic service set identifier, a station identifier, and an access category.

Example 11 is the method as in any one of examples 9-10, wherein the hardware-based packet accelerator is programmed by a software-based process path based on the packet classification rules that are applied at the access point.

Example 12 is the method as in any one of examples 9-11, further including writing, by the hardware-based packet accelerator, a cookie including the packet classification information in a packet descriptor for the data packet.

Example 13 is the method of example 12, further including determining, by the access point, whether a cookie exists in the packet descriptor for the data packet, extracting, by the access point, the cookie from the packet descriptor if the cookie exists, and processing, by the access point, the data packet based on information extracted from the cookie.

Example 14 is the method of example 13, further including parsing, by the access point, the data packet if the access point determines that the cookie does not exist in the packet descriptor for the data packet, extracting, by the access point, fields from the data packet, and applying, by the access point, the extracted fields to a packet classifier to obtain the packet classification information.

Example 15 is the method as in any one of examples 9-14, wherein the access point is a standalone device.

Example 16 is the method as in any one of examples 9-15, wherein a software-based process path processes a data packet in a packet flow before setting up the hardware-based packet accelerator for the packet flow.

Example 17 is a non-transitory computer-readable storage medium comprising executable instructions, when executed, to implement a method as in any one of examples 9-16.

Example 18 is an apparatus comprising an access point configured to provide a wireless connectivity to a user equipment, a means for receiving a data packet from a network via a network port, a means for processing the data packet to obtain packet classification information for the data packet, and a means for sending the data packet with the packet classification information to the access point. The means for processing includes a hardware-based packet accelerator configured to process the data packet to obtain the packet classification information for the data packet based on packet classification rules provided by the access point and send the data packet with the packet classification information to the access point. The access point is configured to process the data packet based on the packet classification information received from the receiving means.

Example 19 is the apparatus of example 18, wherein the packet classification information includes at least one of a basic service set identifier, a station identifier, and an access category.

Example 20 is the apparatus as in any one of examples 18-19, wherein the means for processing includes a software-based process path configured to program the hardware-based packet accelerator based on packet classification rules that are applied by the access point.

Example 21 is the apparatus as in any one of examples 18-20, wherein the hardware-based packet accelerator is configured to write a cookie including the packet classification information in a packet descriptor for the data packet.

Example 22 is the apparatus of example 21, wherein the access point is configured to determine whether a cookie exists in the packet descriptor for the data packet, and if the cookie exists, extract the cookie from the packet descriptor, and process the data packet based on information extracted from the cookie.

Example 23 is the apparatus of example 22, wherein the access point is configured to, if the access point determines that the cookie does not exist in the packet descriptor for the data packet, parse the data packet, extract fields from the data packet, and apply the extracted fields to a packet classifier to obtain the packet classification information.

Example 24 is the apparatus as in any one of examples 18-23, wherein the access point is a standalone device.

Example 25 is the apparatus as in any one of examples 18-24, wherein the means for processing includes a software-based process path configured to process a data packet in a packet flow before setting up the hardware-based packet accelerator for the packet flow.

The description and drawings merely illustrate the principles of the disclosure. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor(s) to furthering the art. All statements herein reciting principles, aspects, and examples of the disclosure, as well as specific examples thereof, are intended to encompass equivalents thereof.