# US 8,788,715 B2 · Network and interface selection on a computing device capable of establishing connections via multiple network communications media

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,715 B2
- Document ID: US8788715B2
- Status: Granted
- Kind: B2
- Application number: 13/181,363
- Filed: 2011-07-12
- Published: 2011-11-17
- Granted: 2014-07-22
- Earliest claimed: 2003-10-24
- Assignees: Microsoft Corporation
- Applicants: Anton Krantz; Warren V. Barkley; Dan Knudson; Florin Teodorescu; Mohammad Shabbir Alam; Vivek Bhanu; Edwin A. Hernandez-Mondragon; Taroon Mandhana; Timothy M. Moore; Abhishek Abhishek
- Inventors: Anton Krantz; Warren V. Barkley; Dan Knudson; Florin Teodorescu; Mohammad Shabbir Alam; Vivek Bhanu; Edwin A. Hernandez-Mondragon; Taroon Mandhana; Timothy M. Moore; Abhishek Abhishek
- Web page: https://patentgrep.com/patent/US8788715B2

## CPC

- H04W 48/18: Selecting a network or a communication service
- H04L 12/5692: {Selection among different networks}
- H04W 88/10: adapted for operation in multiple networks, e.g. multi-mode access points
- H04W 88/06: adapted for operation in multiple networks {or having at least two operational modes}, e.g. multi-mode terminals
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for carrying out network and interface selections across multiple media is disclosed. The disclosed system facilitates automated network interface configuration decision-making that spans a set of networks supporting communications via differing media. A set of media specific modules associated with differing communications media acquire network interface status/capabilities information. A rules engine thereafter applies a designated network selection rule(s) to the acquired network interface status/capabilities information, and any other appropriate parameters attributable to either an interface or network, to select one or more networks and interfaces with which to establish/maintain a connection.

## Claims

### Claim 1

A system comprising:
a plurality of media specific drivers individual ones of which being associated with individual, respective network interface cards, individual media specific drivers being configured to obtain network interface status/capabilities information from individual associated network interface cards;
a rules engine configured to:
obtain the network interface status/capabilities information from the individual media specific drivers,
cause the network interface status/capabilities information to be stored in a rule store,
access network and interface selection rules spanning multiple communication media from the rule store,
apply an order of precedence to sources of rules, and
apply a set of selection rules to accumulated network interface status/capabilities information to make network and interface selection decisions;
an application program interface configured to enable access to the network interface status/capabilities information to one or more applications, one or more provisioning services, one or more group-policy services, or a user interface;
a set of media specific modules configured to support automatic network and interface selection, under the influence of the rules engine, relating to particular media types, individual media specific modules being configured to receive, from the rules engine, network interface configuration commands to connect to a particular network or networks; and
a media specific module interface configured to enable communication between the media specific modules and the rules engine, the media specific module interface including a normalization module to facilitate communication standardization between the rules engine and different types of the media specific modules.

### Claim 2 (depends on 1)

The system of claim 1, wherein the application program interface is callable for querying and changing one or more of: preference lists, visible lists, media configurations, device states, user authentication data, or network configuration.

### Claim 3 (depends on 1)

The system of claim 1, wherein the order of precedence favors rules provided by group-policy services over rules provided by the user interface.

### Claim 4 (depends on 1)

The system of claim 1, wherein the network and interface selection rules are based upon one or more of the following parameters: resource, speed, network provider service preference order, cost, power consumption, or location.

### Claim 5 (depends on 1)

The system of claim 1, wherein the set of media specific modules comprises at least: a LAN module, a WLAN module, a WWAN module, and a personal area network.

### Claim 6 (depends on 1)

The system of claim 1, wherein individual media specific modules of the set of media specific modules are configured to request network interface status/capabilities information from individual respective media specific drivers, on behalf of the rules engine.

### Claim 7 (depends on 6)

The system of claim 6, wherein the individual media specific modules are configured to invoke scanning of network interfaces by associated media specific drivers of a supported media type.

### Claim 8 (depends on 6)

The system of claim 6, wherein the individual media specific modules are configured to pass the network interface status/capabilities information to the rules engine.

### Claim 9 (depends on 1)

The system of claim 1, wherein each of the media specific modules incorporates a state machine for carrying out connectivity functionality.

### Claim 10 (depends on 1)

The system of claim 1, wherein the normalization module is configured to provide driver capabilities/status information from the media specific modules to the rules engine.

### Claim 11 (depends on 1)

The system of claim 1, wherein the normalization module is configured to facilitate specification, by the rules engine, of network interface configuration commands to the media specific drivers.

### Claim 12 (depends on 1)

The system of claim 1, wherein the normalization module is configured to: provide driver capabilities/status information from the media specific modules to the rules engine; and facilitate specification, by the rules engine, of network interface configuration commands to the media specific drivers.

### Claim 13 (depends on 1)

The system of claim 1, wherein the media specific modules comprise user mode modules.

### Claim 14 (depends on 1)

The system of claim 1, wherein the media specific drivers comprise kernel mode drivers.

### Claim 15 (depends on 1)

The system of claim 1, wherein the set of media specific modules is extensible.

### Claim 16 (depends on 1)

The system of claim 1, wherein individual media specific modules are loadable and un-loadable as needed to accommodate installed network interfaces/drivers.

### Claim 17 (depends on 1)

The system of claim 1, wherein the rules engine is configured to register with a notification service that monitors installation/removal of devices from an associated computing device.

### Claim 18 (depends on 1)

The system of claim 1, wherein the rules engine is configured to receive a notification from the notification service that the new network interface/device has been installed and make a determination whether to load a media specific module to handle a media type of the new network interface/device.

### Claim 19

A method for selecting a network and interface combination, to which a computing system will initiate a connection via the network interface, the method comprising:
accumulating network interface information spanning multiple communication media, the accumulated network interface information being associated with a set of networks and a set of network interfaces, each network interface for connecting the computing system to a network in the set of networks;
designating one of the set of networks by applying a network selection criterion to the accumulated network interface information;
acquiring network interface information pertaining to network interfaces associated with particular media types, the network interface information acquired from media specific drivers associated with particular interfaces;
receiving network interface configuration commands to connect to one of the set of networks;
converting standardized communication requests into media specific communications that meet media specific implementation requirements; and
directing the media specific communications to respective network interfaces.

### Claim 20

A method comprising:
using a plurality of media specific drivers to obtain network interface status/capabilities information from individual, respective associated network interface cards;
operating a rules engine to:
obtain the network interface status/capabilities information from the individual media specific drivers,
cause the network interface status/capabilities information to be stored in a rule store,
access network and interface selection rules spanning multiple communication media from the rule store,
apply an order of precedence to sources of rules, and
apply a set of selection rules to accumulated network interface status/capabilities information to make network and interface selection decisions;
using an application program interface to enable access to the network interface status/capabilities information to one or more applications, one or more provisioning services, one or more group-policy services, or a user interface;
operating a set of media specific modules to support automatic network and interface selection, under the influence of the rules engine, relating to particular media types, individual media specific modules being configured to receive, from the rules engine, network interface configuration commands to connect to a particular network or networks; and
operating a media specific module interface to enable communication between the media specific modules and the rules engine, the media specific module interface including a normalization module to facilitate communication standardization between the rules engine and different types of the media specific modules.
