US-12625748-B2 - Software framework and development platform for Wi-Fi chipsets
Abstract
A wireless network device comprises a wireless signal driver, an application-driver framework that includes a bidirectional interface and an application interface. The application-driver framework is configured for application-agnostic and driver-agnostic communication. The bidirectional interface communicatively couples the wireless signal driver to the application-driver framework. The bidirectional interface includes an abstraction layer via which driver-agnostic command signals and driver-agnostic event signals are communicated with the application-driver framework and via which driver-specific command signals and driver-specific event signals are communicated with the wireless signal driver. The application interface is configured to interface with applications and with the application-driver framework. The application interface is configured to communicate application-agnostic command signals and application-agnostic event signals with the application-driver framework and to communicate application-specific event signals and application-specific command signals with the one or more applications and the application-driver framework.
Inventors
- Qiang Wang
- Marianna Carrera
- Kan Hu
- Haibo Chen
- Ambroise Popper
Assignees
- MAXLINEAR, INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20230117
Claims (20)
- 1 . A wireless network device, comprising: a wireless signal driver configured to generate a Wi-Fi network; an application-driver framework configured for application-agnostic and driver-agnostic communication, the application-driver framework including: a bidirectional interface that communicatively couples the wireless signal driver to the application-driver framework, the bidirectional interface being configured to convert driver-agnostic command signals to driver-specific command signals and to convert driver-specific event signals to driver-agnostic event signals; and an application interface that is configured to interface one or more applications with the application-driver framework, the application interface being configured to communicate application-agnostic command signals and application-agnostic event signals with the application-driver framework and to communicate application-specific event signals and application-specific command signals with the one or more applications and the application-driver framework, the application interface being configured to perform application-specific filtering to convert application-agnostic event signals to application-specific event signals, wherein a first application of the one or more applications being related to interacting with a physical environment, by using changes in Wi-Fi signals for spatial diagnostics or motion detection.
- 2 . The wireless network device of claim 1 , wherein: at least one application of the one or more applications includes a library; the application-driver framework is configured to implement a user-space background process; and the at least one application is dynamically loaded by the user-space background process.
- 3 . The wireless network device of claim 1 , wherein at least one application is implemented as: a dynamically loadable library; or a standalone process interfaced by an inter-process communication bus.
- 4 . The wireless network device of claim 1 , wherein: the one or more applications is configured to use wireless signal information associated with a wireless network or to invoke a wireless function implemented by the wireless network; and the wireless network is generated or supported by the wireless signal driver.
- 5 . The wireless network device of claim 4 , wherein the one or more applications includes one or more or a combination of: a home management application; a media access control (MAC) sublayer management entity (MLME) delegation; a client steering application; a channel and power management application; application management; a data path control application; and a spatial stream diagnostic application.
- 6 . The wireless network device of claim 4 , further comprising: a first chipset including a first chipset architecture; and a second chipset including a second chipset architecture, wherein: a first application of the one or more applications is run on the first chipset; a second application of the one or more applications is run on the second chipset; and the application-driver framework is configured to provide compatibility between the first application and the second application.
- 7 . The wireless network device of claim 1 , wherein the wireless signal driver, the application-driver framework, the bidirectional interface, and the application interface are configured as a Wi-Fi repeater, a wireless access point (WAP), or a Wi-Fi gateway.
- 8 . The wireless network device of claim 1 , wherein the application-driver framework is configured to initiate an asynchronous framework event that as the application agnostic event signal, the asynchronous framework event including at least one of a periodic application update, an application restart event, or an application quit event.
- 9 . The wireless network device of claim 1 , wherein the application-driver framework is configured to provide a compatible interface between a first application of the one or more applications and a second application of the one or more applications and the wireless signal driver, the first application and the second application developed by different developers and listed on a cloud server as usable with the wireless network device.
- 10 . A method performed by a wireless network device, the method comprising: providing a wireless network by the wireless network device using a wireless signal driver, the wireless signal driver configured to generate a Wi-Fi network; interfacing the wireless signal driver with a bi-directional interface, the bi-directional interface converting driver-agnostic command signals to driver-specific command signals and converting driver-specific event signals to driver-agnostic event signals; interfacing one or more applications with an application-driver framework of a bi-directional interface via an application interface, a first application of the one or more applications being related to interacting with a physical environment by using changes in Wi-Fi signals for spatial diagnostics or motion detection; communicating an application-agnostic command signal, via the application interface, to the application-driver framework; communicating an application-agnostic event signal, via the application interface, to the application-driver framework; communicating an application-specific command signal, via the application interface, to the one or more applications; and communicating an application-specific event signal, via the application interface, to the one or more applications, the application interface performing application-specific filtering to convert application-agnostic event signals to application-specific event signals.
- 11 . The method of claim 10 , further comprising: implementing a user-space background process by the application-driver framework; and dynamically loading at least one application of the one or more applications by the user-space background process, the at least one application including a library.
- 12 . The method of claim 10 , further comprising implementing at least one application of the one or more applications as a dynamically loadable library or a standalone process interfaced by an inter-process communication bus.
- 13 . The method of claim 10 , further comprising: using, by the one or more applications, wireless signal information associated with a wireless network generated or supported by the wireless signal driver; or invoking, by the one or more applications, a wireless function implemented by the wireless network.
- 14 . The method of claim 13 , wherein the one or more applications includes one or more of or a combination of: a home management application; a media access control (MAC) sublayer management entity (MLME) delegation; a client steering application; a channel and power management application; application management; a data path control application; and a spatial stream diagnostic application.
- 15 . The method of claim 10 , wherein the application-agnostic event signal includes an asynchronous framework event, the method further comprising: filtering, by the application interface, the asynchronous framework event to generate the application-specific event signal from the application-agnostic event signal.
- 16 . The method of claim 15 , wherein the asynchronous framework event includes at least one of a periodic application update, an application restart event, or an application quit event.
- 17 . The method of claim 10 , further comprising: communicating a signal to the application interface from a first application of the one or more applications, the signal including an application-specific invoke command; and filtering, by the application interface, the application-specific invoke command to generate an application-agnostic invoke command, wherein the application-agnostic invoke command is the application-agnostic command signal communicated via the application interface to the application-driver framework.
- 18 . The method of claim 17 , wherein the application-specific invoke command includes a command to update the first application, restart the first application, or quit the first application.
- 19 . The method of claim 10 , further comprising: communicating a signal to the application interface from a first application of the one or more applications, the signal including a first application-specific command signal; filtering, by the application interface, the first application-specific command to generate the application-agnostic command signal that is communicated to the application-driver framework; performing processing of the application-agnostic command signal by the application-driver framework; communicating a framework event from the application-driver framework to the application interface as at least part of the application-agnostic event signal, the framework event based on the processing of the application-agnostic command signal; and filtering, by the application interface, the application-agnostic event signal to generate the application-specific event signal that is communicated to the one or more applications, wherein the application-specific event signal is specifically compatible with a second application of the one or more applications that is different from the first application; and wherein communicating the application-specific event signal to the one or more applications includes communicating the application-specific event signal to the second application.
- 20 . One or more non-transitory computer-readable media within a wireless network device, the non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause the wireless network device to perform one or more operations, the operations comprising: providing a wireless network by the wireless network device using a wireless signal driver, the wireless signal driver configured to generate a Wi-Fi network; interfacing the wireless signal driver with a bi-directional interface, the bi-directional interface converting driver-agnostic command signals to driver-specific command signals and converting driver-specific event signals to driver-agnostic event signals; interfacing one or more applications with an application-driver framework of a bi-directional interface via an application interface, a first application of the one or more applications being related to interacting with a physical environment by using changes in Wi-Fi signals for spatial diagnostics or motion detection; communicating an application-agnostic command signal, via the application interface, to the application-driver framework; communicating an application-agnostic event signal, via the application interface, to the application-driver framework; communicating an application-specific command signal, via the application interface, to the one or more applications; and communicating an application-specific event signal, via the application interface, to the one or more applications, the application interface performing application-specific filtering to convert application-agnostic event signals to application-specific event signals.
Description
CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. patent application Ser. No. 16/724,222, filed on Dec. 21, 2019; which claims the benefit of and priority to U.S. Provisional Application No. 62/788,922 filed Jan. 6, 2019, which is incorporated herein by reference in its entirety. FIELD The embodiments discussed herein are related to frameworks for wireless driver and application interfaces. BACKGROUND Home, outdoor, and office networks, a.k.a. wireless local area networks (WLAN) are established using a device called a Wireless Access Point (WAP). The WAP may include a router. The WAP wirelessly couples one or more the devices of the home network, e.g. wireless stations such as: computers, printers, televisions, digital video (DVD) players, security cameras and smoke detectors to one another and to the Cable or Subscriber Line through which Internet, video, and television is delivered to the home. The WAP may also couple one or more the devices of the home network via one or more wired connections. Most WAPs implement the IEEE 802.11 standard which is a contention based standard for handling communications among multiple competing devices for a shared wireless communication medium on a selected one of a plurality of communication channels. The frequency range of each communication channel is specified in the corresponding one of the IEEE 802.11 protocols being implemented, e.g. “a”, “b”, “g”, “n”, “ac”, “ad”, “ax”. Communications follow a hub and spoke model with a WAP at the hub and the spokes corresponding to the wireless links to each ‘client’ device. WAP chipsets are generally designed to handle tasks associated with different layers of the seven-layer Open Systems Interconnection (OSI) networking model. The OSI model developed by the International Standards Organization (ISO) includes physical layer 1, data link layer 2, network layer 3, transport layer 4, session layer 5, presentation layer 6, and application layer 7. The OSI layers 1-4 are considered the lower layers directed to moving data, layers 5-7 (e.g., the upper layers) are directed to application-level data. The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced. SUMMARY According to an aspect of an embodiment of the invention, a wireless network device may include a wireless signal driver and an application-driver framework. The wireless signal driver, the application-driver framework, the bidirectional interface, and the application interface are configured as a Wi-Fi repeater, a wireless access point (WAP), or a Wi-Fi gateway. The application-driver framework may be configured for application-agnostic and driver-agnostic communication. The application-driver framework may include a bidirectional interface and an application interface. The bidirectional interface may communicatively couple the wireless signal driver to the application-driver framework. The bidirectional interface may include an abstraction layer via which driver-agnostic command signals and driver-agnostic event signals are communicated with the application-driver framework and via which driver-specific command signals and driver-specific event signals are communicated with the wireless signal driver. The application interface may be configured to interface one or more applications with the application-driver framework. The application interface may be configured to communicate application-agnostic command signals and application-agnostic event signals with the application-driver framework. The application interface may be configured to communicate application-specific event signals and application-specific command signals with the one or more applications and the application-driver framework. The wireless network device may comprise a processor, such as a central processing unit (CPU). The wireless signal driver and the bidirectional interface may be included in the application-driver framework and the application-driver framework may be included on the CPU. In an example, the wireless network device may include a first chipset and a second chipset. In detail, the wireless signal driver may be separate and distinct from the bidirectional interface and from the application-driver framework, the bidirectional interface and the application-driver framework are included on the first chipset, the second chipset, or both the first and second chipsets, and the wireless signal driver is included on the second chipset. The wireless signal driver, the application-driver framework, the bidirectional interface, and the application interface may be included on a single CPU. The first chipset and the second chipset may be from different vendors, have different architectures, or have different versions. The first wireless