User account aware personal domain network binding
By assigning a separate layer 2 host address to each user account, the PAN binding perceived by user account is solved, and the problem that PAN binding in the prior art does not have user account perception is improved, and the security and operation efficiency of computing devices are improved.
Patent Information
- Application Number
- CN202111222337.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-07-02
- Filing Date
- 2021-10-20
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2041-10-20
AI Technical Summary
The prior art cannot realize the binding of user account perception in personal domain networks (PANs), resulting in data security and operational efficiency problems when computing devices are used among different users.
By assigning a separate layer 2 host address to each user account, the host computing device can establish independent PAN bindings for each user account to realize user account-aware PAN management.
This method improves the security and operational efficiency of the host computing device, reduces the data insecurity experienced by users, and avoids unnecessary resource consumption.
Smart Images

Figure CN113965933B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to user account-aware personal domain network binding. Background Art
[0002] A personal area network (PAN) enables local wireless connections (e.g., within 10 meters) between two or more devices, where such connections are generally referred to as links or PAN links. The use of PANs has facilitated a large number of use cases, such as allowing a wireless mouse and / or wireless keyboard to establish a wireless PAN link with a computing device to enable user input to the computing device. Given that such use cases often involve devices, such as a wireless mouse and / or wireless keyboard, used by multiple different users across varying user accounts, the PAN protocol typically pairs (or in other words, binds) such devices to the computing device itself and does not provide pairing that is different for any given user account. As a result, a computing device may appear to be paired via any user account present on the computing device to facilitate use of the device across user accounts, which can sometimes cause user confusion when different users have paired devices that are unknown to the user currently operating the computing device. Summary of the invention
[0003] In general, various aspects of the technology presented in this disclosure are directed to user account-aware personal area network (PAN) binding. Instead of binding a client computing device to a host computing device across user accounts, the technology described in this disclosure can enable a host computing device to establish a separate PAN binding for each user account supported by the host computing device. To facilitate such user account-aware PAN binding, the host computing device can assign a separate layer 2 host address to each user account, and the host computing device can program the PAN interface with the separate layer 2 host address. By programming the PAN interface to use the separate layer 2 host address for a specific user account, the client computing device receives a dedicated and separate PAN link, which effectively "sandboxes" the user account in terms of which device is displayed as being associated with the host computing device.
[0004] As such, various aspects of the technology may enable a host computing device to operate more securely while also facilitating more efficient operation. For example, by limiting PAN bindings to only those client computing devices that the user of the current client computing device knows are associated with the host computing device, the user may experience less confusion that creates a sense of data insecurity. As such, the user may not attempt to unpair (or in other words, unbind) an unfamiliar client computing device, which may involve the host computing device performing non-essential operations that consume computing resources (such as processor cycles, memory, memory bus bandwidth, etc., and the power that goes with them). In this regard, data security may be improved from the perspective of the user of the client computing device while also improving the operation of the host computing device.
[0005] In one example, aspects of the technology relate to a host computing device comprising: a personal domain network interface; a memory configured to store personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; and one or more processors configured to execute an operating system, the operating system being configured to, in response to a first user account in the plurality of user accounts logging into the operating system: obtain from the memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiate programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data, wherein the personal domain network interface is configured to establish a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0006] In another example, aspects of the technology relate to a method comprising: storing personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; executing an operating system, the operating system, in response to a first user account in the plurality of user accounts logging into the operating system: obtaining from a memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishing a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0007] In another example, aspects of the technology relate to a non-transitory computer-readable storage medium having instructions stored thereon, which, when executed, cause one or more processors of a host computing device to: store personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; execute an operating system, which, in response to a first user account in the plurality of user accounts logging into the operating system: obtains from a memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiates programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishes a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0008] In another example, aspects of the technology relate to an apparatus comprising: an apparatus for storing personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; an apparatus for executing an operating system, the operating system responsive to a first user account in the plurality of user accounts logging into the operating system: obtaining from a memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and an apparatus for establishing, using the first layer 2 host address, a first domain network link with a first client computing device associated with the first user account.
[0009] The details of one or more examples are set forth in the accompanying drawings and the description that follows. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 is a block diagram illustrating an example computing system configured to provide user account-aware personal domain network binding in accordance with various aspects of the technology described in this disclosure.
[0011] Figure 2 is a block diagram illustrating example operations of a personal domain network stack in performing various aspects of the user account-aware personal domain network binding techniques described in this disclosure.
[0012] Figure 3 It is a graphic Figure 1A flowchart of example operations of the system shown in the example of FIG. 1 when performing the pairing process of various aspects of the user account-aware personal domain network binding technology described in the present disclosure.
[0013] Figure 4 It is a graphic Figure 1 Another flowchart of further example operations of the system shown in the example of when performing various aspects of the user account-aware personal domain network binding technology described in the present disclosure. DETAILED DESCRIPTION
[0014] Figure 1 is a block diagram illustrating an example computing system configured to provide user account-aware personal domain network binding in accordance with various aspects of the technology described in this disclosure. Figure 1 As shown in the example of FIG. 1 , computing system 100 includes host computing device 102 and client computing device 202. Although described with respect to a vehicle, computing system 100 can be utilized in different contexts, including stand-alone computing systems (including laptops, desktop computers, workstations, etc.), gaming systems, cellular phones (including so-called “smart phones”), media systems (including streaming media systems), audio / visual (A / V) receivers, televisions (including so-called “smart TVs”), smart speakers, smart watches, thermostats (including so-called “smart thermostats”), smart glasses, or any other computing system.
[0015] In any case, host computing device 102 is an example of a vehicle computing device, such as a head unit or other vehicle computing system (such as an electronic control unit - ECU). Figure 1 Only one particular example of a host computing device 102 is illustrated, and other examples of host computing devices 102 may be used in other instances and may include a subset of the components included in the example computing device 102 or may include Figure 1 Additional components not shown.
[0016] like Figure 1 As shown in the example of FIG. 1 , the host computing device 102 includes a presence-sensitive display 112, one or more processors 140, one or more communication units 142, one or more input components 144, one or more output components 146, and one or more storage devices 184. The storage device 184 of the host computing device 102 may store (or otherwise include) software modules, such as an operating system (OS) 126 supporting a PAN stack 128 that operates according to a suite of personal area network (PAN) protocols, such as Bluetooth. TM and its various profiles, such as Bluetooth TMLow Power (BLE).
[0017] The communication channel 150 can interconnect each of the components 112, 140, 142, 146, and / or 184 for inter-component communication (physically, communicatively, and / or operationally) and thereby allow the components 112, 140, 142, 146, and 184 to communicate with each other. In some examples, the communication channel 150 can include a system bus, a network connection, one or more inter-process communication data structures, or any other means for communicating data (also referred to as information). Although shown as including components 112, 140, 142, 146, and 184, the host computing device 102 can include additional components or fewer components than those shown, where such components can be included in other control units such as a telematics control unit (TCU).
[0018] One or more communication units 142 of host computing device 102 may communicate with external devices by transmitting and / or receiving data. For example, host computing device 102 may use one or more communication units 142 to transmit and / or receive radio signals over a radio network, such as a cellular radio network. In some examples, communication unit 142 may transmit and / or receive satellite signals over a satellite network, such as a Global Positioning System (GPS) network. Examples of communication unit 142 include a network interface card (e.g., an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device capable of sending and / or receiving information. Other examples of communication unit 142 may include shortwave radios found in mobile devices (e.g., near field communication (NFC), personal area networks such as and its different configuration files, such as Low Power (BLE), GPS, 3G, 4G, 5G and radio, and Universal Serial Bus (USB) controllers, etc. Figure 1 In the example of FIG. 1 , the communication unit 142 is assumed to implement a personal area network (PAN) interface, through which a wireless local area network connection can be established with another computing device (eg, the client computing device 202 ).
[0019] One or more input components 144 of the host computing device 102 can receive input. Examples of input are tactile, audio, motion, and optical input, to name a few. In one example, the input components 144 of the host computing device 102 include a mouse, keyboard, touchpad, voice response system, video camera, button, scroll wheel, dial, control pad, microphone, or any other type of device for detecting input from a person or machine. The input components 144 may include a camera. In some examples, the input components 144 may be presence-sensitive input components, which may include a presence-sensitive screen, a touch-sensitive screen, etc. that is separate from the presence-sensitive display 112.
[0020] One or more output components 146 of host computing device 102 may generate output. Examples of output are tactile, audio, and video output. In some examples, output components 146 of host computing device 102 include a presence-sensitive screen (possibly separate from presence-sensitive display 112), a sound card, a video graphics adapter card, a speaker, a cathode ray tube (CRT) monitor, a liquid crystal display (LCD), an organic light emitting diode (OLED), or any other type of device for generating tactile, audio, and / or visual output to a person or machine.
[0021] In some examples, presence-sensitive display 112 of host computing device 102 may include functionality of input component 144 and / or output component 146. Figure 1 In an example of the present invention, the presence-sensitive display 112 may include a presence-sensitive input (PSI) component 104 ("PSI component 104"), such as a presence-sensitive screen or a touch-sensitive screen. In some examples, the presence-sensitive input component 104 may detect an object that is at or near the presence-sensitive input component. As an example range, the presence-sensitive input component 104 may detect an object, such as a finger or a stylus, that is within two inches or closer to the presence-sensitive input component 104. The presence-sensitive input component 104 may determine the location (e.g., (x, y) coordinates) of the presence-sensitive input component at which the object is detected. In another example range, the presence-sensitive input component 104 may detect an object that is two inches or closer to the presence-sensitive input component 104, and other ranges are possible. The presence-sensitive input component 104 may use capacitive, inductive, and / or optical recognition techniques to determine the location of the presence-sensitive input component 104 that is selected by the user's finger.
[0022] In some examples, presence-sensitive display 112 may also provide output to a user using tactile, audio, or visual stimulation as described with respect to output components 146. For example, presence-sensitive display 112 may include display component 103 that displays a graphical user interface. Display component 103 may be any type of output component that provides visual output, such as described with respect to output components 146. Although illustrated as an integrated component of host computing device 102, in some examples, presence-sensitive display 112 may be an external component that shares data or information paths with other components of host computing device 102 to transmit and / or receive input and output.
[0023] For example, presence-sensitive display 112 may be a built-in component of host computing device 102 that is located within and physically connected to an external enclosure of host computing device 102 (e.g., an in-vehicle screen mounted in a dashboard of a vehicle). In another example, presence-sensitive display 112 may be an external component of host computing device 102 that is located outside and physically separate from the enclosure of host computing device 102 (e.g., a monitor, projector, etc. that shares a wired and / or wireless data path with an electronic control unit of a vehicle). In some examples, when located outside and physically separate from the enclosure of host computing device 102, presence-sensitive display 112 may be implemented by two separate components: presence-sensitive input component 104 for receiving input and display component 103 for providing output.
[0024] One or more storage devices 184 within the host computing device 102 may store information for processing during operation of the host computing device 102 (e.g., the computing device 102 may store data accessed during execution of a module at the host computing device 102). In some examples, the storage device 184 is temporary storage, meaning that the primary purpose of the storage device 184 is not long-term storage. The storage device 184 on the host computing device 102 may be configured as volatile memory for short-term storage of information, and therefore does not retain stored contents when the device is powered off. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art.
[0025] In some examples, storage device 184 also includes one or more computer-readable storage media. In some examples, storage device 184 includes one or more non-transient computer-readable storage media. Storage device 184 can be configured to store a larger amount of information than volatile memory is usually stored. Storage device 184 can be further configured as non-volatile memory space for long-term storage of information and retain information after power-on / power-off cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, flash memory, or electrically programmable memory (EPROM) or electrically erasable programmable memory (EEPROM). Storage device 184 can store program instructions and / or information (e.g., data) associated with a module. Storage device 184 may include a memory configured to store data or other information associated with a module.
[0026] One or more processors 140 may implement functions associated with the host computing device 102 and / or execute instructions associated with the host computing device 102. Examples of processors 140 include application processors, display controllers, auxiliary processors, one or more sensor hubs, and any other hardware configured to act as a processor, processing unit, or processing device. A module may be operable (or in other words, executed) by the processor 140 to implement various actions, operations, or functions of the host computing device 102. That is, a module may form an executable byte code that, when executed, causes the processor 140 to implement specific operations in accordance with various aspects of the technology described herein (and thereby causes the host computing device 102 to become a special-purpose computer implemented therethrough). For example, the processor 140 of the host computing device 102 may retrieve and execute instructions stored by the storage device 184, which cause the processor 140 to implement the operations described herein that are attributed to the module. When executed by the processor 140, the instruction may cause the host computing device 102 to store information in the storage device 184.
[0027] The client computing device 202 may include components similar to the host computing device 102. Figure 1As further shown in the example of , the client computing device 202 may include one or more processors 240, one or more communication units 242, one or more input components 244, one or more output components 246, and one or more storage devices 284. Each of the components 212-284 can be similar to (if not substantially similar to) the corresponding components 112-184 described above. The client computing device 202 also includes a communication channel 250 that interconnects the modules 240-284. The communication channel 250 can be similar to (if not substantially similar to) the communication channel 150 discussed in more detail above. In addition, the storage device 284 can store an OS 226, which can be similar to (if not substantially similar to) the corresponding OS 126.
[0028] The host computing device 102 may be integrated or otherwise included within a vehicle. The vehicle may include a bicycle, a tricycle, a unicycle, an automobile, farm equipment (such as a tractor, a combine harvester, etc.), construction equipment (dump trucks, cranes, etc.), military vehicles or equipment (tanks, weaponry, etc.), a truck, a semi-tractor (or in other words, a semi-trailer), an aviation vehicle (such as an airplane), a marine vehicle (such as a boat, a carrier, etc.), or any other type of vehicle.
[0029] In this regard, the host computing device 102 may represent a vehicle head unit that is integrated into a dashboard or other component of a vehicle, wherein the host computing device 102 may alternatively be referred to as a vehicle head unit 102, a host vehicle head unit 102, and / or a host computing device 102. In this context, the processor 140 may retrieve and execute the OS 126, which may be referred to as an embedded OS, wherein the OS 126 is a fully dedicated OS that provides a full-function application execution environment in which local applications (so-called "apps," which are not shown for ease of illustration) may be stored locally (e.g., to the storage device 184) and executed by the processor 140 within the execution environment provided by the OS 126.
[0030] In this context, OS 126 may include a kernel that supports interaction between applications and underlying hardware, such as processor 140, communication unit 142, input component 144, output component 146, presence-sensitive display 112, and / or storage device 184. The kernel may execute in so-called kernel space (which refers to a privileged OS-level execution environment) that is separate from so-called user space that supports an application environment in which applications execute. The kernel may expose interfaces (such as application programming interfaces, APIs) through which user space (and applications executed therein) may access kernel space in a restricted manner (e.g., with less privileges than the kernel) in order to interface with underlying hardware.
[0031] In other words, OS 126 does not represent a thin client that supports shadowing, casting, or other processes by which output from an OS executed by a separate device (such as OS 226 executed by a separate client computing device 202) is mirrored. As mentioned above, OS 126 instead provides a complete execution environment separate from OS 226 executed by client computing device 202 (or any other separate device), which facilitates local execution of applications (e.g., execution on host computing device 102) rather than streaming applications within OS 226 during execution by client computing device 202.
[0032] In the context of an embedded OS 126 (which is another way to refer to OS 126), OS 126 may support a PAN link between a host computing device 102 and a client computing device 202 (or any other client computing device that supports a PAN link for wireless communication between the host computing device 102 and such computing devices). OS 126 implements a PAN stack 128 as a native function of OS 126 (which means within kernel space), thereby allowing OS 126 (and / or one or more applications executing within user space) to establish a PAN link with an external device such as client computing device 202 (and possibly via kernel APIs for applications executed natively by OS 126).
[0033] To establish a PAN link, OS 126 invokes PAN stack 128, which includes a discovery process by which PAN stack 128 configures communication unit 142 to accept incoming connection requests. An operator of the vehicle may interface with OS 126, for example, via presence-sensitive display 112 to initiate the discovery process, during which PAN stack 128 configures communication unit 142 (which may also implement a PAN interface and is therefore referred to as PAN interface 142) to accept incoming connection requests.
[0034] The operator of the vehicle may then, for example, interface with the client computing device 202 via the presence-sensitive display 212 to cause the OS 226 to call the PAN stack 228 to configure the communication unit 242 (which may also represent a PAN interface and therefore be referred to as the PAN interface 242) to initiate a pairing process that transmits a connection request to bind the client computing device 202 to (or in other words, pair with) the host computing device 102. The operator may then confirm that pairing should proceed (typically via selection of a user interface element presented via the presence-sensitive display 112 and / or the presence-sensitive display 212). The pairing of the client computing device 202 (or more specifically, the PAN interface 242) and the host computing device 102 (or more specifically, the PAN interface 142) may include the exchange of security keys that are used to encrypt or otherwise secure communications via the PAN link to be between the PAN interface 142 and the PAN interface 242.
[0035] Pairing in this manner results in a semi-permanent binding between PAN interface 142 and PAN interface 242, meaning that client computing device 202 is paired to host computing device 102 until the pairing is explicitly removed due to user authorization, either via host computing device 102 or client computing device 202. The pairing may also be user account agnostic, wherein other user accounts may recognize the pairing as having occurred even if such user account is not associated with client computing device 202.
[0036] In other words, OS 126 can support multiple different user accounts, such as a root user account (or in other words, an administrator user account), a guest user account, and one or more dedicated user accounts. Due to the properties of the PAN protocol, each of these user accounts can view computing devices that were previously semi-permanently paired to the host computing device 102, such as the client computing device 202.
[0037] For example, a first user logged into OS 126 under a first dedicated user account may view client computing devices that have been previously semi-permanently paired by a second user logged into OS 126 under a different second dedicated user account, even though the client computing devices paired by the second dedicated user account are not under the control of the first user or even locally available for a PAN link connection. Likewise, the second user account may access client computing devices that were previously semi-permanently paired by the first user account, even though the second user does not control those client computing devices (paired by the first user) or even locally available for a PAN link connection.
[0038] In the context of a vehicle (or other shared computing device such as a laptop, desktop, tablet, etc.), under a dedicated user account that is assumed to be private to the user, presentation by OS 126 of a complete list of all client computing devices that have been previously semi-permanently paired to host computing device 102 across user accounts may be confusing and cumbersome to the current user logged into OS 126 (since it may be difficult to identify the current client computing device that you want to pair with, such as client computing device 202). The user may interpret the complete list of all client computing devices as an invasion of privacy (especially given that the user may understand that the complete list of client computing devices is being presented to other dedicated user accounts).
[0039] However, most PAN protocol suites do not provide a mechanism to control the extent to which paired client computing devices are shared between user accounts. This lack of control over the extent to which paired client computing devices are shared between user accounts may be a property of the development of the PAN protocol. That is, the PAN protocol was developed for local connections, where a shared host computing device (e.g., a desktop computer, laptop computer, smart speaker, smart hub, smart TV, etc.) with which an input / output client computing device (such as a wireless PAN mouse, wireless PAN keyboard, wireless PAN headset, and other devices) has established a connection is shared across user accounts, thereby facilitating input and / or output to support interaction with the shared host client computing device.
[0040] Because the PAN protocol is implemented to facilitate interaction between a shared host computing device (e.g., a vehicle head unit 102) and a dedicated (single user account) client computing device (e.g., a smartphone as represented by client computing device 202), users begin to notice that client computing devices are presented across user accounts supported by OS 126. The private attributes of the dedicated (single user account) client computing devices are therefore inconsistent with the shared attributes of these host computing devices, which leads to privacy issues that cause a first user of a client computing device to remove a paired client computing device that is unfamiliar to the current first user. Such removal of a paired client computing device may result in a different second user having to re-pair the client computing device that is unfamiliar to the first user, which may unnecessarily consume both time (from the perspective of the first and second users) and resources (in terms of processor cycles, memory, memory bandwidth, etc. and the power that goes with it, from the perspective of the host computing device 102).
[0041] In accordance with various aspects of the techniques described in this disclosure, the host computing device 102 can establish a separate PAN binding for each user account supported by the host computing device 102. To facilitate such user account-aware PAN binding, the PAN stack 128 of the OS 126 can assign a separate layer 2 host address for each user account, which the PAN stack 128 can use to program the PAN interface 142. By programming the PAN interface 142 to use the separate layer 2 host address for a particular user account, the client computing device 202 receives a dedicated and separate PAN link, which effectively "sandboxes" the user account in terms of which devices are displayed as associated with the host computing device 102.
[0042] In this regard, various aspects of the technology can enable the host computing device 102 to operate more securely while also facilitating more efficient operation. For example, by limiting PAN bindings to only those client computing devices that a user of a current client computing device (e.g., client computing device 202) knows to associate with the host computing device 102, the user can experience less confusion leading to a perception of data insecurity. As such, the user may not attempt to unpair (or in other words, unbind) an unfamiliar client computing device, which would involve the host computing device performing unnecessary operations that consume computing resources (e.g., processor cycles, memory, memory bus bandwidth, etc., and the power that goes with them). In this regard, data security can be improved from the perspective of the user of the client computing device, while also improving the operation of the host computing device 102 itself.
[0043] In operation, the PAN stack 128 may store PAN configuration data (PCDs) 129A-129N ("PCDs 129"). Each of the PCDs 129 may represent a PCD for a separate user account supported by the OS 126. As mentioned above, the OS 126 may support a root user account, a guest user account, and one or more dedicated user accounts. The PAN stack 128 may include a PCD 129 for each user account, where, for example, the root user account may be associated with PCD 129N, the guest user account may be associated with PCD 129M, a first dedicated user account may be associated with PCD 129A, and a second dedicated user account may be associated with PCD 129B.
[0044] In this example, when a first user operating the client computing device 202 logs into the OS 126 under a first user account, the OS 126 calls the PAN stack 128, which may obtain the PCD 129A from the storage device 184. The PCD 129A may include a separate layer 2 (L2) host address for use by the PAN interface 142 in supporting the PAN link 143 with the client computing device 202, where such an L2 host address (L2HA) may be represented as L2HA 149A. The L2HA 149A may represent a media access control (MAC) address or any other L2 address. Layer 2, also referred to as the data link layer, may represent the second layer in the open systems interconnection (OSI) model that defines network communications.
[0045] In any case, OS 126 may call PAN stack 128, passing data indicating the first dedicated user account (e.g., an account identifier or other data that uniquely identifies the first user account). PAN stack 128 may use the data indicating the first dedicated user account as a key to retrieve PCD 129A to obtain PCD 129A. PAN stack 128 may parse PCD 129A to obtain L2HA 149A, which PAN stack 128 may use to initiate programming of PAN interface 142 to use L2HA 149A.
[0046] PAN interface 142 may then use L2HA 149A to establish a PAN link 143 of client computing device 202 associated with the first dedicated user account (assuming client computing device 202 has previously been paired to host computing device 102 while the first user was logged into OS 126 under the first user account). If client computing device 202 has not previously been paired to host computing device 102 while the first user was logged into OS 126 under the first user account, the first user may interface with PAN stack 128 via OS 126 system settings to initiate the discovery / pairing (or in other words, binding) process mentioned above.
[0047] In other words, the PAN stack 128 may determine whether the client computing device 202 has been previously associated with the first dedicated user account. The PAN stack 128 may determine whether the client computing device 202 has been previously associated with the first dedicated user account based on the PCD 129A. The PCD 129A may identify a list of one or more paired client computing devices that have been previously paired to the PAN interface 142 when the first user logs into the OS 126 under the first dedicated user account. The list of one or more paired client computing devices may identify the client computing device 202 using an L2 client address (L2CA) used by the PAN interface 242 when establishing a PAN link such as the PAN link 143. When the PAN interface 242 performs the discovery / pairing process, the PAN interface 242 may provide the L2CA to uniquely identify the PAN interface 242, which the PAN stack 128 may store to the PCD 129A (assuming that the first user logs into the OS 126 under the first dedicated user account).
[0048] In response to determining that the client computing device 202 has not been previously associated with the first user account (e.g., the L2CA provided by the PAN interface 242 does not match any L2CA in the list of L2CAs provided by the PCD 129A), the PAN stack 128 can initiate a pairing process between the PAN interface 142 of the host computing device 102 and the PAN interface 242 of the client computing device 202. In response to successfully pairing the PAN interface 142 with the PAN interface 242, the PAN stack 128 can store an indication to the PCD 129A that the PAN interface 242 of the client computing device 202 is bound to the PAN interface 142.
[0049] Once paired (which is also semi-permanent), the PAN stack 128 can indicate via the OS 126 system settings user interface that the client computing device 202 has been paired (or in other words, bound) to the client computing device 202. In addition, the OS 126 can present the client computing device 202 as bound to the PAN interface 142 under a user account-specific L2HA such as L2HA 149A, while not presenting any other client computing devices associated with the remaining user accounts (i.e., the root user account, the guest user account, or any other remaining dedicated user account in the above example). Such separation occurs because the PAN stack 128 maintains a separate PCD 129 for each user account, and as a result can present only the PCD 129 associated with a given user account, rather than storing the PCD 129 as an aggregate associated with all user accounts supported by the OS 126.
[0050] In this manner, various aspects of the technology support a more secure PAN that is user account-aware rather than user account-agnostic. When a user logs in under a given user account, the OS 126 can call the PAN stack 128 to present only those client computing devices that have been previously paired to the OS 126. This separate presentation can avoid user confusion and potentially provide more assurance of data security to the user in sharing data among paired client computing devices. By avoiding such confusion, the user may not have to disable, unpair (or in other words, unbind) unfamiliar client computing devices, which would otherwise result in multiple users potentially pairing, unpairing, re-pairing, etc., which would otherwise unnecessarily waste computing resources of the host computing device 102.
[0051] Although described with respect to the host computing device 102, various aspects of the technology can enable the client computing device 202 to provide individual user account binding. In other words, the PAN stack 228 of the client computing device 202 can implement similar techniques as described above with respect to the PAN stack 128. The OS 226 of the client computing device 202 can support multiple accounts, which can cause the PAN stack 228 to maintain a separate PCD 229 for each user account (although not shown for ease of illustration). Figure 1 ). As such, PAN stack 228 may operate similarly to that described above with respect to PAN stack 128 to initiate programming of PAN interface 242 to use L2CA when establishing PAN link 143. In this regard, client computing device 202 may operate similarly to host computing device 102 when establishing a PAN link such as PAN link 143.
[0052] Figure 2 is a block diagram illustrating example operations of a personal domain network stack in performing various aspects of the user account-aware personal domain network binding techniques described in the present disclosure. Figure 2 In the example of FIG. 1 , PAN stack 328 may represent an example of PAN stack 128 (or an example of PAN stack 228 when configured to perform user account-aware PAN binding in accordance with various aspects of the techniques described in this disclosure).
[0053] In any case, PAN stack 328 may include controller 350, host component interface (HCI) 352, and PAN controller 354. Controller 350 may generally control high-level PAN protocol stack operations, including TMIn the example, the Link Logical Control and Adaptation Layer Protocol (L2CAP) can be used to perform and support different PAN profiles, such as the Generic Attribute (GATT) profile, the Generic Access Protocol (GAP), the Attribute (ATT) protocol, and support services such as the Security Manager (SM).
[0054] The HCI 352 may represent a module configured to provide a command interface to a baseband controller (which is another way of referring to the PAN controller 354) that is implemented (as software and hardware, or as a hardware controller) on an underlying PAN interface, such as the PAN interface 142. The HCI 352 may generally represent a module that presents an interface (e.g., an API) to facilitate interaction between high-level protocol PAN protocol operations and low-level protocol PAN operations (in terms of a network stack as defined by the OSI model, where a layer may refer to different higher or lower layers in the OSI model).
[0055] PAN controller 354 may represent a module configured to perform low-level PAN protocol operations (e.g., L2 and L1 operations of PAN interface 142 and / or 242) in controlling aspects of baseband operations. PAN interface 142 may execute or otherwise implement (e.g., in hardware) PAN controller 354 to support low-level PAN protocol operations (such as baseband operations, which may also be referred to as L1 according to the OSI model, or in other words, physical layer operations). PAN controller 354 may manage physical links such as PAN link 143, providing packetization, channel control, and error correction along with data integrity and flow control operations.
[0056] As described above, OS 126 may call PAN stack 328 in response to a user logging into OS 126 under a first dedicated user account, which may refer to a first user account used exclusively by a first user. OS 126 may pass a user ID to PAN stack 328, which PAN stack 328 may use as a key to identify PCD 329A (which may represent an example of PCD 129A). PAN stack 328 may store a plurality of different PCDs 329A-329N ("PCDs 329") for different corresponding user accounts, each of which defines a different L2HA, such as L2HA 349A (which may represent an example of L2HA 149A). PAN stack 328 may associate each PCD 329 with a different user ID, and access PCD 329 to obtain a corresponding one of PCD 329 based on the passed user ID representing the user currently logged into OS 126 under the respective different user account.
[0057] More specifically, the PAN stack 328 may receive the first user ID and invoke the controller 350, which accesses storage (possibly within the PAN interface 142 and generally represented by the storage device 184) to obtain the PCD 329A associated with the first user ID. The controller 350 may be configured to parse the PCD 329A to obtain the L2HA 329A and the associated security key 351A that enables encryption and other security features of the PAN link 143. As such, the PCD 329A may include the L2HA 349A and the security key 351A ("key 351A," which may also be referred to as "link key 351A").
[0058] The controller 350 may then interface with the PAN controller 354 via the HCI 352 to initiate programming of the L2HA 349A within the PAN controller 354. The controller 350 interfaces with the HCI 352 to issue a write address command (including the L2HA 349A) to the PAN controller 354 (or in other words, the PAN interface 142) to program the PAN controller 354 to use the L2HA 329A, which may include a MAC address as one example. The PAN controller 354 may then initiate or otherwise establish a PAN link 143 with the client computing device 202 associated with the first user account.
[0059] In some instances, the second user may interface with OS 126 to log into OS 126 under a different second dedicated user account. OS 126 may process the login under the second dedicated user account and call PAN stack 328, passing a second user ID associated with the second dedicated user account. Controller 350 of PAN stack 328 may identify PCD 329B based on the second user ID and retrieve PCD 329B from storage, wherein PCD 329B includes L2HA 349B and key 351B (which may also be referred to as “security key 351B” or “link key 351B”).
[0060] Controller 350 may then interface with PAN controller 354 via HCI 352 to replace L2HA 349A with L2HA 349B, thereby connecting PAN link 143 to host computing device 102 and a different second client computing device (not shown for ease of illustration) when a second user logs into OS 126 under a different second dedicated user account. Figure 1 143B, while the previous PAN link may be represented as PAN link 143A).
[0061] The different second client computing device may be similar (if not substantially similar) to the first client computing device 202. As such, the second client computing device may be denoted as client computing device 202B, while the first client computing device may be denoted as client computing device 202A. As such, components of the second client computing device 202B may be denoted using the label “B” (e.g., “PAN interface 242B”), while components of the first client computing device 202A may be denoted using the label “A” (e.g., “PAN interface 242A”).
[0062] In other words, the controller 350 may obtain from a memory (such as the storage device 184) a PCD 329B in the PCD 329 that is specific to the second user account (and associated with the second user account via the user ID). The controller 350 may initiate programming of the PAN controller 354 to use the L2HA 349B included in the PCD 329B via the write command mentioned above. The PAN controller 354 may then use the L2HA 349B to establish a second PAN link 143B with the client computing device 202B associated with the second user account.
[0063] In some examples, the client computing device 202B may be the same as the client computing device 202A. That is, since the PCD 329 is unique to a given user of the OS 126, the same client computing device may be associated with multiple different user accounts of the OS 126, so this may require that the same client computing device, such as the client computing device 202, be individually paired (or in other words, bound) with the host computing device 102. In this regard, the client computing device 202A may be associated with the host computing device 102 under a first user account, and the same client computing device (e.g., the client computing device 202B) may be associated with the host computing device 102 under a second user account. However, the PAN controller 354 may be programmed to use different L2HAs 349A / 349B depending on which user is logged into the OS 126 under the separate first and second dedicated user accounts.
[0064] In addition, by maintaining a separate PCD 129 for each user account, the PCD 129 can be transferred separately between host computing devices 102 (where a first host computing device can be represented as host computing device 102A and a second host computing device can be represented as host computing device 102B). Host computing device 102A and host computing device 102B can each include components similar to those described above with respect to host computing device 102.
[0065] The OS 126 of the host computing device 102A may initiate the transfer of the PCD 129A (as an example) to a different host computing device 102B. In some examples, the OS 126 of the host computing device 102A may store a copy of the PCD 129A to a network server (e.g., in the so-called cloud) in an online account associated with a user of the client computing device 202, and initiate the transfer of the PCD 129A to the OS 126 of the host computing device 102B, which may pass the PCD 129A to the PAN stack 128. In other examples, the OS 126 of the host computing device 102B may initiate the transfer of the PCD 129A via a wired (e.g., via Ethernet, Universal System Bus, USB, such as with a thumb drive or other portable storage media, etc.) or wireless (e.g., wireless LAN, cellular, etc.) connection.
[0066] The PAN stack 128 of the host computing device 102B may install the PCD 129A, associate the PCD 129A with a given user account supported by the OS 126 of the host computing device 102B. When the user logs into the given user account, the OS 126 of the host computing device 102B may access the PCD 129A and establish the PAN link 143 via the PAN interface 142 without requiring the client computing device 202 to perform a pairing process, because the client computing device 202 already has knowledge of the L2HA 149A and all keys (e.g., key 351A) and other data associated with the client computing device 202 already exist in the form of the PCD 129A. In this way, the OS 126 of the host computing device 102A may initiate the transmission of the PCD 129A to the host computing device 102B, thereby enabling the host computing device 102B to establish the PAN link 143 with the client computing device 202 without performing a pairing process with the client computing device 202.
[0067] Figure 3 It is a graphic Figure 1 A flowchart of an example operation of the system shown in the example of performing a pairing process according to various aspects of the user account-aware PAN binding technology described in the present disclosure. Figure 3 In the example of , OS 126 may initially log into a first user account ( 300 ), at which point OS 126 may call PAN stack 128 and pass a user ID associated with the first user account to PAN stack 128 .
[0068] The PAN stack 128 may determine whether there are any PCDs 129 associated with the user ID. Assuming that a PCD 129 has not been created for the first user, the PAN stack 128 may obtain an L2HA (e.g., L2HA 149A) for use by the first user account (302). The PAN stack 128 may interface with the OS 126 to obtain the L2HA 149A, wherein the OS 126 may include a pool of L2HAs that the OS 126 may assign to the PAN stack 128. In some examples, each user account is statically defined by the OS 126 (such as a root user account, a guest user account, a first dedicated user account, and a second dedicated user account). In these instances of statically defined user accounts, the OS 126 may statically allocate an L2HA for each user account for use by the PAN stack 128, wherein the PAN stack 128 may define a PCD 129 for each user account that defines the L2HA for use by each user account. In any case, the PAN stack 128 may program the PAN interface 142 to use the L2HA 149A of the first user account (wherein “programming” should be understood to mean initiating such programming by issuing a write address command to the PAN controller 354 via the HCI 352 ) ( 304 ).
[0069] Once the PAN interface 142 is programmed to use the L2HA 149A of the first user account, the OS 126 may allow the user to initiate a discovery / pairing mode, in which the PAN interface 142 may enter the discovery / pairing mode 306. The user may then interface with the client computing device 102 to perform a pairing process by which a semi-permanent binding between the PAN interface 142 (using the L2HA 149A specific to the user account) and the PAN interface 242 is established 308.
[0070] The PAN stack 228 may update the PCD 229 to indicate that the semi-permanent binding coexists with the PAN interface 142, store the associated security key (e.g., key 351A), and any other information necessary to re-establish the binding therewith when the PAN interface 142 is programmed with the L2HA 149A without having to perform the pairing process again. In this manner, the PAN stack 228 updates the PCD 229 to store the binding with the L2HA 149A for the first user account (310). Likewise, the PAN stack 128 may store or otherwise update the PCD 129A to indicate the L2HA associated with the first user account (and perform similar operations with respect to storing the security key 351A and any other information necessary to re-establish the binding therewith when the PAN interface 242 is programmed with the L2HA 149A without having to perform the pairing process again).
[0071] After performing the pairing process, the PAN stack 128 may interface with the PAN interface 142 to establish the PAN link 143 using the L2HA 149A of the first user account (314). The OS 226 may interface with the PAN stack 228 to initiate data transmission via the PAN link 143. The PAN stack 228 may interface with the PAN interface 242 to communicate data via the PAN link 143 (316). Such data communication may continue until the PAN link is terminated at some point. The PAN stack 228 may terminate the PAN link 143 (318).
[0072] Figure 4 It is a graphic Figure 1 Another flow chart of further example operations of the system shown in the example of performing various aspects of the user account-aware PAN binding technology described in the present disclosure. Figure 4 In the example of FIG. 1 , assume that client computing device 102A (which, as noted above, is referred to as a first client computing device) and client computing device 102B (which, also as noted above, is referred to as a second client computing device that is similar, if not substantially similar, to client computing device 102A) have been previously paired to host computing device 102. As such, PCDs 129A and 129B have already been established via a previous pairing process.
[0073] Initially, OS 126 may log into a first user account (400). OS 126 may call PAN stack 128, passing a user ID associated with the first user account. Using the user ID, PAN stack 128 may obtain PCD 129A for the first user account, which includes L2HA 149A (402). PAN stack 128 may then program PAN interface 142 to use L2HA 149A for the first user account (404). PAN stack 128 may then interface with PAN interface 142 to establish PAN link 143A using L2HA 149A for the first user account (406). Client computing device 202A may communicate data via PAN link 143A (408), wherein OS 126 of host computing device 102 may present such data via one or more of the various outputs discussed in more detail above (410).
[0074] In some instances, OS 126 may switch user accounts, where, for example, OS 126 may log into a different second user account (420). In response to switching user accounts, OS 126 may again call PAN stack 128, passing a user ID associated with the second user account. Using the user ID associated with the second user account, PAN stack 128 may obtain PCD 129B for the second user account, which includes L2HA 149B (422). PAN stack 128 may program PAN interface 142 to use L2HA 149B for the second user account (which replaces L2HA 149A) (424). PAN stack 128 may then interface with PAN interface 142 to establish PAN link 143B using L2HA 149B for the second user account (426). Client computing device 202B may communicate data via PAN link 143B ( 428 ), where OS 126 of host computing device 102 may present such data via one or more of the various outputs discussed in more detail above ( 430 ).
[0075] By using separate L2HAs 149A and L2HAs 149B for different user accounts, the PAN stack 128 can maintain (or in other words, store or update) separate PCDs 129A and 129B, which allows the PAN stack 128 to only provide bindings with client computing devices that have been specifically bound to the corresponding user account (rather than bound to the host computing device 102 in general). Individual users can still bind a single client computing device 102 to each individual user account, but will have to pair the client computing device 102 with each individual user account individually. However, the pairing process is relatively simple and benefits the user by making the binding clear and unambiguous from the user's perspective, thereby avoiding any confusion that would result in unnecessary operations that affect the operation of the host computing device 102 (and potentially the client computing device 202) (as a result of deleting the binding and having to re-establish such binding). In this way, as mentioned above, the technology improves the operation of the host computing device 102 itself.
[0076] In this manner, various aspects of the technology described in this disclosure may support the following examples.
[0077] Example 1. A host computing device, comprising: a personal domain network interface; a memory configured to store personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; and one or more processors configured to execute an operating system, the operating system being configured to, in response to a first user account in the plurality of user accounts logging into the operating system: obtain from the memory a first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiate programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data, wherein the personal domain network interface is configured to establish a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0078] Example 2. A host computing device according to Example 1, wherein the operating system is further configured to, when the first user account has logged into the operating system and after the personal domain network interface has been programmed to use the first layer 2 host address: determine whether the first client computing device has been previously associated with the first user account; in response to determining that the first client computing device has not been previously associated with the first user account, initiate a pairing process between the personal domain network interface and the first client computing device; in response to successfully pairing the personal domain network interface and the first client computing device, store an indication of binding the first client computing device to the personal domain network interface to the first domain network configuration data.
[0079] Example 3. The host computing device of Example 2, wherein the operating system is further configured to present the first client computing device as bound to the domain network interface without presenting any other client computing devices associated with remaining user accounts in the plurality of different user accounts.
[0080] Example 4. A host computing device according to any combination of Examples 1-3, wherein the operating system is further configured to, in response to a second user account among the multiple different user accounts logging into the operating system: obtain from the memory second domain network configuration data that is specific to the second user account; and initiate programming of the individual domain network interface to use a second layer 2 host address included in the second domain network configuration data, wherein the individual domain network interface is configured to establish a second domain network link with a second client computing device associated with the second user account using the second layer 2 host address.
[0081] Example 5. The host computing device of Example 4, wherein the second client computing device is the same as the first client computing device, and wherein the first layer 2 host address is different from the second layer 2 host address.
[0082] Example 6. A host computing device according to any combination of Examples 1-5, wherein when configured to initiate programming of the personal domain network interface, the operating system is configured to connect to the host controller interface to issue a write address command to the personal domain network interface, thereby programming the personal domain network interface to use the first layer 2 host address.
[0083] Example 7. The host computing device of any combination of Examples 1-6, wherein the layer 2 host address comprises a media access control address.
[0084] Example 8. The host computing device of any combination of Examples 1-7, wherein the first domain network configuration data includes a first link key for establishing the first domain network link.
[0085] Example 9. A host computing device according to any combination of Examples 1-8, wherein the host computing device includes a vehicle head unit, wherein the one or more processors execute the operating system to enable a user to control control functions associated with the vehicle.
[0086] Example 10. A host computing device according to any combination of Examples 1-9, wherein the first client computing device includes one or more of a smart phone, a smart watch, smart glasses, a laptop computer, a tablet computer, and a portable gaming system.
[0087] Example 11. A method comprising: storing personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; executing an operating system, the operating system, in response to a first user account in the plurality of user accounts logging into the operating system: obtaining from a memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishing a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0088] Example 12. The method of Example 11, wherein the operating system is further configured to, when the first user account has logged into the operating system and after the personal domain network interface has been programmed to use the first layer 2 host address: determine whether the first client computing device has been previously associated with the first user account; in response to determining that the first client computing device has not been previously associated with the first user account, initiate a pairing process between the personal domain network interface and the first client computing device; and in response to successfully pairing the personal domain network interface and the first client computing device, store an indication of binding the first client computing device to the personal domain network interface to the first domain network configuration data.
[0089] Example 13. The method of Example 12, wherein the operating system is further configured to present the first client computing device as bound to the domain network interface without presenting any other client computing devices associated with remaining user accounts in the plurality of different user accounts.
[0090] Example 14. A method according to any combination of Examples 11-13, wherein the operating system is further configured to, in response to a second user account among the multiple different user accounts logging into the operating system: obtain second domain network configuration data specific to the second user account in the individual domain network configuration data from the memory; and initiate programming of the individual domain network interface to use a second layer 2 host address included in the second domain network configuration data, wherein the method further includes using the second layer 2 host address to establish a second domain network link with a second client computing device associated with the second user account.
[0091] Example 15. The method of Example 14, wherein the second client computing device is the same as the first client computing device, and wherein the first layer 2 host address is different than the second layer 2 host address.
[0092] Example 16. A non-transitory computer-readable storage medium having instructions stored thereon, which when executed cause one or more processors of a host computing device to: store personal domain network configuration data for each user account in a plurality of different user accounts, the personal domain network configuration data including a separate layer 2 host address for use by the personal domain network interface when supporting a personal domain network link with a client computing device associated with a corresponding user account in the plurality of user accounts; execute an operating system, which, in response to a first user account in the plurality of user accounts logging into the operating system: obtains from a memory first domain network configuration data in the personal domain network configuration data that is specific to the first user account; and initiates programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishes a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address.
[0093] Example 17. A non-transitory computer-readable storage medium according to Example 16, wherein when configured to initiate programming of the personal domain network interface, the operating system is configured to connect to the host controller interface to issue a write address command to the personal domain network interface, thereby programming the personal domain network interface to use the first layer 2 host address.
[0094] Example 18. The non-transitory computer-readable storage medium of any combination of Examples 16 and 17, wherein the layer 2 host address comprises a media access control address.
[0095] Example 19. The non-transitory computer-readable storage medium of any combination of Examples 16-18, wherein the first domain network configuration data includes a first link key for establishing the first domain network link.
[0096] Example 20. A non-transitory computer-readable storage medium according to any combination of Examples 16-19, wherein the host computing device includes a vehicle head unit, wherein the one or more processors execute the operating system to enable a user to control control functions associated with the vehicle.
[0097] In one or more examples, the described functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored on or transmitted through a computer-readable medium as one or more instructions or codes and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium corresponding to a tangible medium such as a data storage medium, or a communication medium including any medium that facilitates the transmission of a computer program from one place to another, such as according to a communication protocol. In this manner, a computer-readable medium may generally correspond to (1) a tangible computer-readable storage medium that is non-transient, or (2) a communication medium such as a signal or carrier wave. A data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to obtain instructions, codes, and / or data structures to implement the techniques described in the present disclosure. A computer program product may include a computer-readable medium.
[0098] As an example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store the desired program code in the form of instructions or data structures and can be accessed by a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, if the instruction is transmitted from a website, server or other remote source using a coaxial cable, optical fiber cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio and microwave, the coaxial cable, optical fiber cable, twisted pair, DSL, or wireless technology such as infrared, radio and microwave are included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals or other transient media, but refer to non-transient tangible storage media. Disks or discs as used herein include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks and blue discs, ultra blue light, etc., where disks are usually magnetically online data, while discs use lasers to optically online data. Combinations of the above should also be included within the scope of computer-readable media.
[0099] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used herein may refer to any of the above structures or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functions described herein may be provided within dedicated hardware and / or software modules. Moreover, the technology may be implemented entirely with one or more circuits or logic elements.
[0100] The techniques of the present disclosure may be implemented in a variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or collections of ICs (e.g., chipsets). Various components, modules, or units are described in the present disclosure to emphasize the functional aspects of devices configured to perform the disclosed techniques, and do not necessarily require implementation by different hardware units. Instead, as described above, the various units may be combined in a hardware unit or provided by a collection of interoperating hardware units in combination with appropriate software and / or firmware, the hardware units including one or more processors as described above.
[0101] Various examples have been described. These and other examples are within the scope of the following claims.
Claims
1. A host computing device, comprising: A domain network interface; a memory configured to store personal area network configuration data for each user account of a plurality of user accounts, the personal area network configuration data for each particular user account including a particular layer 2 host address for use by the personal area network interface when supporting a particular personal area network link with a particular client computing device associated with the particular user account; as well as one or more processors configured to execute an operating system, the operating system configured to: in response to a first user account of the plurality of user accounts logging into the operating system: Obtaining from the memory a first domain network configuration data of the individual domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data, wherein the first domain network interface is configured to establish a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address, Wherein the operating system is further configured to, when the first user account has logged into the operating system and after the personal network interface has been programmed to use the first layer 2 host address: determining whether the first client computing device has been previously associated with the first user account; In response to determining that the first client computing device has not been previously associated with the first user account, initiating a pairing process between the personal domain network interface and the first client computing device; In response to successfully pairing the personal area network interface and the first client computing device, storing an indication of binding the first client computing device to the personal area network interface to the first area network configuration data; as well as presenting the first client computing device as bound to the personal domain network interface without presenting any other client computing devices associated with remaining user accounts in the plurality of user accounts, Wherein the host computing device comprises a vehicle head unit, wherein the one or more processors execute the operating system to enable a user to control control functions associated with a vehicle.
2. The host computing device of claim 1 , wherein the operating system is further configured to, in response to a second user account of the plurality of user accounts logging into the operating system: Obtaining from the memory second domain network configuration data in the individual domain network configuration data that is specific to the second user account; and initiating programming of the personal domain network interface to use a second layer 2 host address included in the second domain network configuration data, The personal domain network interface is configured to establish a second personal domain network link with a second client computing device associated with the second user account using the second layer 2 host address.
3. The host computing device of claim 2, wherein the second client computing device is the same as the first client computing device, and Wherein the first layer 2 host address is different from the second layer 2 host address.
4. A host computing device according to any one of claims 1-3, wherein when configured to initiate programming of the personal area network interface, the operating system is further configured to connect to the host controller interface to issue a write address command to the personal area network interface, thereby programming the personal area network interface to use the first layer 2 host address.
5. The host computing device of any of claims 1-3, wherein the specific layer 2 host address comprises a media access control address.
6. The host computing device of any one of claims 1-3, wherein the first domain network configuration data includes a first link key for establishing the first domain network link.
7. The host computing device of any one of claims 1-3, wherein the first client computing device comprises one or more of a smart phone, a smart watch, smart glasses, a laptop computer, a tablet computer, and a portable gaming system.
8. A host computing device according to any one of claims 1 to 3, wherein the host computing device is a first host computing device, and wherein the one or more processors are further configured to: Initiating transmission of the personal domain network configuration data to a second host computing device, thereby enabling the second host computing device to establish a third domain network link with the first client computing device without performing a pairing process with the first client computing device.
9. A method performed by a vehicle head unit, the method comprising: storing personal area network configuration data for each user account of a plurality of user accounts, the personal area network configuration data for each particular user account including a particular layer 2 host address for use by a personal area network interface of the vehicle head unit when supporting a particular personal area network link with a particular client computing device associated with the particular user account; executing, by one or more processors of the vehicle head unit, an operating system to enable a user to control control functions associated with the vehicle, wherein the operating system is configured to: in response to a first user account of the plurality of user accounts being logged into the operating system; Obtaining from the memory a first domain network configuration data of the domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishing a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address, Wherein the operating system is further configured to, when the first user account has logged into the operating system and after the personal network interface has been programmed to use the first layer 2 host address: determining whether the first client computing device has been previously associated with the first user account; In response to determining that the first client computing device has not been previously associated with the first user account, initiating a pairing process between the personal domain network interface and the first client computing device; In response to successfully pairing the personal area network interface and the first client computing device, storing an indication of binding the first client computing device to the personal area network interface in the first area network configuration data, and The first client computing device is presented as bound to the personal domain network interface without presenting any other client computing devices associated with remaining user accounts of the plurality of user accounts.
10. The method of claim 9, wherein the operating system is further configured to, in response to a second user account of the plurality of user accounts logging into the operating system: Obtaining from the memory second domain network configuration data in the individual domain network configuration data that is specific to the second user account; and initiating programming of the personal domain network interface to use a second layer 2 host address included in the second domain network configuration data, The method further includes establishing a second domain network link with a second client computing device associated with the second user account using the second layer 2 host address.
11. The method according to claim 10, wherein the second client computing device is the same as the first client computing device, and Wherein the first layer 2 host address is different from the second layer 2 host address.
12. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a host computing device to: storing personal area network configuration data for each user account of a plurality of user accounts, the personal area network configuration data for each particular user account including a particular layer 2 host address for use by a personal area network interface of the host computing device when supporting a particular personal area network link with a particular client computing device associated with the particular user account; executing an operating system configured to: in response to a first user account of the plurality of user accounts logging into the operating system: Obtaining from the memory a first domain network configuration data of the domain network configuration data that is specific to the first user account; and initiating programming of the personal domain network interface to use a first layer 2 host address included in the first domain network configuration data; and establishing a first domain network link with a first client computing device associated with the first user account using the first layer 2 host address, Wherein the operating system is further configured to, when the first user account has logged into the operating system and after the personal network interface has been programmed to use the first layer 2 host address: determining whether the first client computing device has been previously associated with the first user account; In response to determining that the first client computing device has not been previously associated with the first user account, initiating a pairing process between the personal domain network interface and the first client computing device; In response to successfully pairing the personal area network interface and the first client computing device, storing an indication of binding the first client computing device to the personal area network interface to the first area network configuration data; as well as presenting the first client computing device as bound to the personal domain network interface without presenting any other client computing devices associated with remaining user accounts in the plurality of user accounts, Wherein the host computing device comprises a vehicle head unit, wherein the one or more processors execute the operating system to enable a user to control control functions associated with a vehicle.
13. The non-transitory computer-readable storage medium of claim 12, wherein when configured to initiate programming of the personal area network interface, the operating system is further configured to interface with the host controller interface to issue a write address command to the personal area network interface, thereby programming the personal area network interface to use the first layer 2 host address.
14. The non-transitory computer-readable storage medium of claim 12, wherein the specific layer 2 host address comprises a media access control address.
15. The non-transitory computer-readable storage medium of any one of claims 12-14, wherein the first domain network configuration data comprises a first link key for establishing the first domain network link.
Citation Information
Patent Citations
Transferring information to a mobile device
US20150365817A1