Multiple packet data network support over trusted access

A media access gateway comprises a wireless network interface, an authorization module, a filter information module, and a proxy mobility agent module. The wireless network interface selectively establishes a wireless link with a first interface of a wireless terminal that has a plurality of wireless interfaces. The authorization module determines a home agent corresponding to the wireless terminal. The filter information module receives filter information from one of the wireless terminal and a server and generates output filter information. The proxy mobility agent module transmits a binding update to the home agent. The binding update includes the output filter information.

FIELD

The present disclosure relates to connecting to multiple packet data networks and more particularly to providing data over multiple packet data networks.

BACKGROUND

Referring now toFIG. 1, a functional block diagram of a wireless communications system is presented. A home network102receives packets from and sends packets to a distributed communications system104, such as the Internet. A wireless terminal106wirelessly connects to the home network102. For example only, the wireless terminal106may be a mobile phone, and the home network102may be the cellular network of a mobile phone operator.

The wireless terminal106is configured to work with the home network102, and may be unable to connect to the networks of other carriers. In various implementations, the wireless terminal106may be able to view content from the distributed communications system104via the home network102. The home network102may interconnect with the networks of other service providers and/or core networks.

Referring now toFIG. 2, a functional block diagram of a wireless communications system offering mobility is presented. The home network102is connected to one or more visited networks110. For example only,FIG. 2depicts three visited networks110-1,110-2, and110-3. In various implementations, the visited networks110may be the networks of other service providers, including service providers in other countries.

A mobile wireless terminal120includes mobility features that allow it to communicate with the visited networks110. For example, inFIG. 2, the mobile wireless terminal120has established a wireless connection to the visited network110-1. The mobile wireless terminal120includes the code and data used to communicate with the home network102via the visited network110-1. In this way, the mobile wireless terminal120can interface with the home network102even when connected to one of the visited networks110. Because the mobile wireless terminal120itself includes mobility features, the mobile wireless terminal120may be described as supporting client mobile internet protocol (CMIP).

For example, mobile internet protocol (IP) for IP version 6 (IPv6) is described in request for comment (RFC) 3775, titled “Mobility Support in IPv6,” the disclosure of which is hereby incorporated by reference in its entirety. Mobile IP for IP version 4 (IPv4) is described in RFC 3344, entitled “IP Mobility Support for IPv4,” the disclosure of which is hereby incorporated by reference in its entirety.

Referring now toFIG. 3, a functional block diagram depicts a wireless communications system that provides proxy mobility to the wireless terminal106. A home network150communicates with visited networks160-1,160-2, and160-3. The visited networks160provide transparent mobility to wireless terminals, such as the wireless terminal106, which do not include mobility functionality. This may be referred to as proxy mobile IP (PMIP) or network mobile IP. Proxy mobility in IPv6 is described in an Internet Engineering Task Force (IETF) draft titled “Proxy Mobile IPv6” (published Jun. 18, 2007 and available as “draft-ietf-netlmm-proxymip6-01.txt”), the disclosure of which is hereby incorporated by reference in its entirety.

When the wireless terminal106attempts to establish a link with the visited network160-1, the visited network160-1determines the network to which the wireless terminal106belongs. In this case, the visited network160-1determines that the home network150is the appropriate network. The visited network160-1then forwards packets from the wireless terminal106to the home network150and passes packets from the home network150to the wireless terminal106. The wireless terminal106can therefore be oblivious to the fact that it is connected to the visited network160-1instead of to the home network150.

Referring now toFIG. 4A, a functional block diagram and timeline of an implementation of client mobility are presented. The home network102includes a home agent (HA)180. The HA180establishes the logical location of the mobile wireless terminal120. Packets ultimately destined for the mobile wireless terminal120are sent to the HA180, while packets from the mobile wireless terminal120will appear to originate from the location of the HA180.

The mobile wireless terminal120may establish a connection to an access router (AR)182within the visited network110-1. In various implementations, additional ARs (not shown) may be present. The AR182may communicate with other networks, including the home network102.

When the mobile wireless terminal120connects to the visited network110-1, the mobile wireless terminal120performs authentication and authorization with the access router182. This may include communicating with an authentication, authorization, and accounting (AAA) server. The AAA server may retrieve information based on an identifier of the mobile wireless terminal120, such as a network address identifier, that uniquely identifies the mobile wireless terminal120. The AAA server may indicate to the AR182whether the mobile wireless terminal120should be allowed access and what services should be provided.

The mobile wireless terminal120receives a local address from the AR182. Using this address, the mobile wireless terminal120can communicate with various network elements, including the HA180. The mobile wireless terminal120transmits a binding update message to the HA180. The HA180allocates a global home address HoA to the mobile wireless terminal120. The HA180may create a binding cache entry that records information about the mobile wireless terminal120, such as the current address of the mobile wireless terminal120and the allocated address HoA.

The HA180transmits a binding acknowledgement message to the mobile wireless terminal120. The binding acknowledgement message includes HoA so that the mobile wireless terminal120is aware of its global home address. Packets sent from other network devices, such as other wireless terminals, are sent to that home address. The HA180receives those packets and forwards them to the mobile wireless terminal120. Similarly, packets from the mobile wireless terminal120are first sent to the HA180. The HA180then forwards the packets with a source address of HoA. To allow for packets to be exchanged between the mobile wireless terminal120and the HA180, a tunnel is established between the mobile wireless terminal120and the HA180.

Referring now toFIG. 4B, a functional block diagram and timeline of an implementation of proxy mobility are presented. The wireless terminal106may establish a connection to a media access gateway (MAG)190in the visited network160-1. In various implementations, additional MAGs (not shown) may be present in the visited network160-1. The MAG190may communicate with other networks, including the home network150.

When the wireless terminal106connects to the MAG190, the MAG190may authenticate the wireless terminal106and determine what services the wireless terminal106is authorized to access. The wireless terminal106then requests an address from the MAG190. The MAG190determines a local mobility anchor (LMA) to which the wireless terminal106belongs. For example only, the MAG190may consult a home subscriber server (HSS) to determine the appropriate LMA.

The MAG190then sends a proxy binding update identifying the wireless terminal106to the identified LMA, which in this case is LMA192, located in the home network150. The LMA192allocates a home address HoA to the wireless terminal106. The LMA192may also create a binding cache entry to record information about the wireless terminal106. The LMA192sends a proxy binding acknowledgement including HoA to the MAG190.

The MAG190and LMA192establish a tunnel for transfer of packets to and from the wireless terminal106. The MAG190then assigns HoA to the wireless terminal106. When the wireless terminal106transmits a packet, the MAG190sends that packet through the tunnel to the LMA192. The LMA192then forwards the packet with a source address of HoA. When a packet arrives at the LMA192with a destination address of HoA, the LMA192sends the packet to the MAG190through the tunnel. The MAG190then forwards the packets to the wireless terminal106.

Using this architecture, the wireless terminal106can be unaware of the mobility services provided by the MAG190. The wireless terminal106has been assigned a home address and does not need to be aware that it is actually connected to the visited network160-1instead of the home network150.

SUMMARY

A media access gateway comprises a wireless network interface, an authorization module, a filter information module, and a proxy mobility agent module. The wireless network interface selectively establishes a wireless link with a first interface of a wireless terminal that has a plurality of wireless interfaces. The authorization module determines a home agent corresponding to the wireless terminal. The filter information module receives filter information from one of the wireless terminal and a server and generates output filter information. The proxy mobility agent module transmits a binding update to the home agent. The binding update includes the output filter information.

The wireless link is a first type and the binding update includes an identifier of the first type. The first type is one of cellular, wireless local area network, wireless metropolitan area network, and wireless personal area network. The wireless link is a first type. The filter information module receives the filter information from the server and generates the output filter information by removing filter information that is not associated with the first type. The wireless link is a first type. The filter information module transmits an identifier of the first type to the server, receives the filter information from the server, and outputs the filter information as the output filter information.

The proxy mobility agent module receives an additional interface flag from the wireless terminal. The binding update includes the additional interface flag. The home agent maintains previous state information for the wireless terminal when the binding update includes the additional interface flag. The authorization module determines authorization of the wireless terminal by querying the server and determines the home agent by querying the server.

A communications system comprises the media access gateway and the home agent. The home agent comprises a home agent module that receives the binding update; a binding cache module that stores an entry corresponding to the wireless terminal, where the entry includes the output filter information; and a network processor that selectively forwards packets based on the output filter information. The home agent module selectively receives an additional interface flag. The binding cache module selectively replaces a previous entry in the binding cache when the additional interface flag is in a first state. The binding cache module supplements a previous entry in the binding cache when the additional interface flag is in a second state.

The home agent module allocates a home internet protocol (IP) address to the wireless terminal when the binding cache module first creates the entry for the wireless terminal. The network processor evaluates the output filter information for packets having a destination address of the home IP address. The network processor selectively forwards packets that match the output filter information to the media access gateway.

The communications system further comprises the wireless terminal, which comprises a control module that controls the plurality of wireless interfaces. The plurality of wireless interfaces selectively establish wireless links with a plurality of media access gateways including the media access gateway. The control module stores filter information for each of the plurality of wireless interfaces. When one of the plurality of wireless interfaces establishes a wireless link with one of the plurality of media access gateways, the control module transmits filter information for the one of the plurality of wireless interfaces to the one of the plurality of media access gateways.

The filter information is included in a message that requests a Layer 3 address from the one of the plurality of media access gateways. The control module transmits an additional connection flag having a first state when one of the plurality of wireless interfaces replaces one wireless link with another wireless link. The control module transmits the additional connection flag having a second state when the one of the plurality of wireless interfaces establishes a new wireless link.

A media access gateway comprises wireless network interfacing means for selectively establishing a wireless link with a first interface of a wireless terminal that has a plurality of wireless interfaces; authorization means for determining a home agent corresponding to the wireless terminal; filter information means for receiving filter information from one of the wireless terminal and a server and for generating output filter information; and proxy mobility agent means for transmitting a binding update to the home agent. The binding update includes the output filter information.

The wireless link is a first type and the binding update includes an identifier of the first type. The first type is one of cellular, wireless local area network, wireless metropolitan area network, and wireless personal area network. The wireless link is a first type. The filter information means receives the filter information from the server and generates the output filter information by removing filter information that is not associated with the first type.

The wireless link is a first type. The filter information means transmits an identifier of the first type to the server, receives the filter information from the server, and outputs the filter information as the output filter information. The proxy mobility agent means receives an additional interface flag from the wireless terminal. The binding update includes the additional interface flag. The home agent maintains previous state information for the wireless terminal when the binding update includes the additional interface flag.

The authorization means determines authorization of the wireless terminal by querying the server and determines the home agent by querying the server. A communications system comprises the media access gateway of claim1and the home agent. The home agent comprises home agent means for receiving the binding update; binding cache means for storing an entry corresponding to the wireless terminal, where the entry includes the output filter information; and network processing means for selectively forwarding packets based on the output filter information.

The home agent means selectively receives an additional interface flag. The binding cache means selectively replaces a previous entry in the binding cache when the additional interface flag is in a first state. The binding cache means supplements a previous entry in the binding cache when the additional interface flag is in a second state. The home agent means allocates a home internet protocol (IP) address to the wireless terminal when the binding cache means first creates the entry for the wireless terminal. The network processing means evaluates the output filter information for packets having a destination address of the home IP address. The network processing means selectively forwards packets that match the output filter information to the media access gateway.

The communications system further comprises the wireless terminal, which comprises control means for controlling the plurality of wireless interfaces. The plurality of wireless interfaces selectively establish wireless links with a plurality of media access gateways including the media access gateway. The control means stores filter information for each of the plurality of wireless interfaces. When one of the plurality of wireless interfaces establishes a wireless link with one of the plurality of media access gateways, the control means transmits filter information for the one of the plurality of wireless interfaces to the one of the plurality of media access gateways.

The filter information is included in a message that requests a Layer 3 address from the one of the plurality of media access gateways. The control means transmits an additional connection flag having a first state when one of the plurality of wireless interfaces replaces one wireless link with another wireless link. The control means transmits the additional connection flag having a second state when the one of the plurality of wireless interfaces establishes a new wireless link.

A method comprises selectively establishing a wireless link with a first interface of a wireless terminal that has a plurality of wireless interfaces; determining a home agent corresponding to the wireless terminal; receiving filter information from one of the wireless terminal and a server; generating output filter information based on the filter information; and transmitting a binding update to the home agent. The binding update includes the output filter information.

The wireless link is a first type and the binding update includes an identifier of the first type. The first type is one of cellular, wireless local area network, wireless metropolitan area network, and wireless personal area network. The wireless link is a first type, the filter information is received from the server, and the output filter information is generated by removing filter information that is not associated with the first type.

The wireless link is a first type and the filter information is received from the server, and further comprises outputting the filter information as the output filter information and transmitting an identifier of the first type to the server. The method further comprises receiving an additional interface flag from the wireless terminal and including the additional interface flag in the binding update. The home agent maintains previous state information for the wireless terminal when the binding update includes the additional interface flag.

The method further comprises determining authorization of the wireless terminal by querying the server and determining the home agent by querying the server. The method further comprises receiving the binding update; storing an entry corresponding to the wireless terminal in a binding cache. The entry includes the output filter information; and selectively forwarding packets based on the output filter information. The binding update selectively includes an additional interface flag, and further comprises selectively replacing a previous entry in the binding cache when the additional interface flag is in a first state, and supplementing a previous entry in the binding cache when the additional interface flag is in a second state.

The method further comprises allocating a home internet protocol (IP) address to the wireless terminal when the entry for the wireless terminal is stored. The method further comprises evaluating the output filter information for packets having a destination address of the home IP address. The method further comprises selectively forwarding packets that match the output filter information.

The method further comprises selectively establishing wireless links between the plurality of wireless interfaces of the wireless terminal and a plurality of media access gateways. The method further comprises storing filter information for each of the plurality of wireless interfaces; and transmitting filter information for one of the plurality of wireless interfaces to one of the plurality of media access gateways when the one of the plurality of interfaces establishes a wireless link with the one of the plurality of media access gateways.

The filter information is transmitted in a message that requests a Layer 3 address from the one of the plurality of media access gateways. The method further comprises transmitting an additional connection flag having a first state when one of the plurality of wireless interfaces establishes a wireless link that replaces another wireless link; and transmitting the additional connection flag having a second state when the one of the plurality of wireless interfaces establishes a new wireless link.

A computer program stored on a computer-readable medium for use by a processor comprises selectively establishing a wireless link with a first interface of a wireless terminal that has a plurality of wireless interfaces; determining a home agent corresponding to the wireless terminal; receiving filter information from one of the wireless terminal and a server; generating output filter information based on the filter information; and transmitting a binding update to the home agent. The binding update includes the output filter information.

The wireless link is a first type and the binding update includes an identifier of the first type. The first type is one of cellular, wireless local area network, wireless metropolitan area network, and wireless personal area network. The wireless link is a first type, the filter information is received from the server, and the output filter information is generated by removing filter information that is not associated with the first type.

The wireless link is a first type and the filter information is received from the server, and further comprises outputting the filter information as the output filter information and transmitting an identifier of the first type to the server. The computer program further comprises receiving an additional interface flag from the wireless terminal and including the additional interface flag in the binding update. The home agent maintains previous state information for the wireless terminal when the binding update includes the additional interface flag.

The computer program further comprises determining authorization of the wireless terminal by querying the server and determining the home agent by querying the server. The computer program further comprises receiving the binding update; storing an entry corresponding to the wireless terminal in a binding cache. The entry includes the output filter information; and selectively forwarding packets based on the output filter information. The binding update selectively includes an additional interface flag, and further comprises selectively replacing a previous entry in the binding cache when the additional interface flag is in a first state, and supplementing a previous entry in the binding cache when the additional interface flag is in a second state.

The computer program further comprises allocating a home internet protocol (IP) address to the wireless terminal when the entry for the wireless terminal is stored. The computer program further comprises evaluating the output filter information for packets having a destination address of the home IP address. The computer program further comprises selectively forwarding packets that match the output filter information.

The computer program further comprises selectively establishing wireless links between the plurality of wireless interfaces of the wireless terminal and a plurality of media access gateways. The computer program further comprises storing filter information for each of the plurality of wireless interfaces; and transmitting filter information for one of the plurality of wireless interfaces to one of the plurality of media access gateways when the one of the plurality of interfaces establishes a wireless link with the one of the plurality of media access gateways.

The filter information is transmitted in a message that requests a Layer 3 address from the one of the plurality of media access gateways. The computer program further comprises transmitting an additional connection flag having a first state when one of the plurality of wireless interfaces establishes a wireless link that replaces another wireless link; and transmitting the additional connection flag having a second state when the one of the plurality of wireless interfaces establishes a new wireless link.

In still other features, the systems and methods described above are implemented by a computer program executed by one or more processors. The computer program can reside on a computer readable medium such as but not limited to memory, nonvolatile data storage, and/or other suitable tangible storage mediums.

DETAILED DESCRIPTION

When a wireless terminal includes multiple wireless interfaces, the multiple interfaces may all establish wireless links. For example, a cellular interface of the wireless terminal may be associated with a base station while a wireless local area network (WLAN) interface of the wireless terminal may be associated with an access point.

As part of proxy mobility, a home agent assigns home addresses to interfaces of the wireless terminal that connect to access networks. In various implementations, more than one interface may receive the same home address. The wireless terminal can determine which interface should be used to send the packets based upon application or network preferences. However, when the home agent receives a packet destined for the shared home address, the home agent does not know which interface of the wireless terminal should receive the packet.

Filtering rules can be stored in the home agent to determine what traffic will be transmitted to which wireless interface. The wireless terminal may provide filter information specific to each of its interfaces. Alternatively, the wireless terminal may be implemented without awareness of filter information, such as when the wireless terminal does not support CMIP and relies upon PMIP for mobility. In this case, the home agent may receive filter information from a server that stores filter information corresponding to various wireless terminals. This server may be implemented as part of the home agent and/or may be an authentication/authorization/accounting (AAA) server.

The visited network to which each interface of the wireless terminal connects can specify to the home agent the type of interface that has been connected. For example, one visited network may report that a WLAN interface has been connected. The home agent may then retrieve and/or generate filtering rules corresponding to a WLAN interface.

Alternatively, the visited network may consult a distributed or centralized repository, such as an AAA server. The AAA server may store rules for all anticipated wireless terminal interfaces. The visited network can then select the appropriate rules based on which interface is connected to the visited network. These selected rules may be modified and are then sent to the home agent. When the home agent receives a packet destined for the wireless terminal, the home agent determines the interface to send the packet to by identifying which set of filtering rules the packet matches.

In brief,FIG. 5is an exemplary functional block diagram of a system of proxy mobility for a multi-interface wireless terminal.FIG. 6is a functional block diagram of an exemplary home agent that establishes rules for multiple wireless terminal interfaces in a proxy mobility environment.FIG. 7depicts an exemplary rule structure and exemplary rules for a wireless terminal having two interfaces.FIG. 8depicts exemplary operation of the home agent.FIG. 9depicts exemplary operation of a media access gateway in the visited network andFIGS. 10A-10Bdepict exemplary operation of the media access gateway.FIG. 11depicts a mobile phone that implements the principles of the present disclosure.

Referring back toFIG. 5, a functional block diagram of an exemplary wireless communications system is presented. A wireless terminal202includes a first wireless interface204and a second wireless interface206, which are controlled by a control module208. The wireless terminal202may establish wireless links with first and second visited networks220-1and220-2. The visited networks220are able to communicate with a home network230of the wireless terminal202and may provide proxy mobility to the wireless terminal202.

The first wireless interface204may establish a link with a media access gateway242of the visited network220-1. This link may include, for example, a cellular link, such as a third generation partnership project (3GPP) link or a global system for mobile communications (GSM) link. The 3GPP link may use the universal mobile telecommunications system (UMTS) and/or a long-term evolution (LTE) radio access network (RAN).

The second wireless interface206may establish a link with a media access gateway244of the visited network220-2. For example only, this link may include a wireless local area network link (such as Wi-Fi or IEEE 802.11) and/or a wireless metro-area network (such as WiMAX or IEEE 802.16). The media access gateways242and244communicate with the home agent246. In various implementations, the media access gateway242may accept only a single wireless connection over a single wireless interface type. Alternatively, the media access gateway242may accept more than one wireless connection and may support multiple wireless access types.

The media access gateway242may provide proxy mobility for the first wireless interface204of the wireless terminal202. The media access gateway244may provide proxy mobility for the second wireless interface206of the wireless terminal202. In various implementations, the media access gateways242and244may both be located within a single visited network, such as the visited network220-1.

The media access gateway242performs authentication, authorization, and accounting (AAA) using an AAA server250. When the first wireless interface204establishes a connection, the media access gateway242passes identifying information about the wireless terminal202to the AAA server250. The AAA server250returns parameters indicating how to authenticate the wireless terminal202as well as the services and networks the wireless terminal202is authorized to use. The AAA server250also identifies the corresponding home agent, such as the home agent246.

The media access gateway242has address CoA1(care of address1), which is routable from the home agent246. Upon authorizing the wireless terminal202, the media access gateway242transmits a binding update message to the identified home agent246. The home agent246allocates address HoA1(home address1) to the wireless terminal202. The home agent246then transmits this address to the media access gateway242in a binding acknowledgment message. The media access gateway242then assigns HoA1to the first wireless interface204. The media access gateway242may establish a tunnel to the home agent246for packet traffic to and from the first wireless interface204.

The media access gateway244of the visited network220-2may function similarly to the media access gateway242. For purposes of illustration, the media access gateway244has an address CoA2, which is also routable from the home agent246. The media access gateway244transmits a binding update to the home agent246upon connection of the second wireless interface206. The binding acknowledgement from the home agent246allocates the same address HoA1to the second wireless interface206.

Once the first wireless interface204establishes a connection, the media access gateway242may obtain filtering information. Filtering information allows the home agent246to determine what traffic will be sent to the wireless terminal202via the first wireless interface204. The filtering information may be provided by a distributed or centralized repository, such as the AAA server250. For purposes of illustration only, the AAA server250will be described as the source of filter information.

The AAA server250may include sets of filters corresponding to specific access types. For example, one set of filters may apply to a WLAN interface. The AAA server250may also include filter sets that apply to multiple access types. These filter sets may specify that packets matching a filter within the filter set can be sent across any of the associated interfaces. These filter sets may also include priority information, specifying, for example, that a packet should be directed over a first access type or, if the first access type is not available, over a second access type.

Filters may be created and/or modified based on user subscription information and operator policies of the home network230and/or the visited networks220. The media access gateway242may modify or override filter information based on local policies and/or roaming agreements between the visited network220-1and the home network230.

The media access gateway242may receive all applicable filter information from the AAA server250and then select filter sets associated with the specific access type by which the wireless terminal204has connected. Alternatively, the media access gateway242may transmit the specific access type to the AAA server250, which then returns the filters associated with that access type.

The media access gateway242may support a single wireless interface type. The media access gateway242may then select filter sets corresponding to the same access type each time. However, the filter sets from which to select may vary with each wireless terminal that connects to the media access gateway242.

In various other implementations, the media access gateway242may offer multiple wireless interface types. The media access gateway242may then select filter information from the AAA server250based upon the type of wireless link the wireless terminal202has established with the media access gateway242.

The selected filter information is transmitted to the home agent246, and may be included in the binding update message. The media access gateway242may also transmit an access type identifier to the home agent246. The home agent246may use the access type identifier when evaluating filter information. As described in more detail below with respect toFIG. 7, the home, agent246may not know the mapping between the access type identifier and the actual access type, such as Wi-Fi or cellular, for example.

In various other implementations, the media access gateway242may send all received filter information to the home agent246along with the access type identifier. The home agent246can then select the appropriate filter information based on the access type identifier and any other information known to the home agent246.

In other implementations, the media access gateway242may transmit the access type identifier to the home agent246. The home agent246may then communicate with the AAA server250or some other storage system (not shown) to retrieve filter information. The home agent246may then select relevant filter sets based upon the access type identifier. In any event, the home agent246may replace, modify, and/or supplement filter information, whether received from the media access gateway242or from some other source.

Another source of filter information is the wireless terminal202. The wireless terminal202may be pre-programmed with filter information corresponding to each of the first and second wireless interfaces204and206. This filter information may be updated based on the user's service agreement and application requirements.

When the first wireless interface204connects to the media access gateway242, Layer 1 and 2 connections are established. For example, a media access control (MAC) address may be hard-coded into the first wireless interface204for use in Layer 2 communication. The first wireless interface204may then request a Layer 3 address, such as an IP address, from the media access gateway242.

Filter information may be sent during negotiation for a Layer 3 address. For example, the first wireless interface204may use dynamic host configuration protocol (DHCP) to request an IP address. Filter information may be transmitted within the DHCP request packet and/or the DHCP discover packet. When using IP version 6 (IPv6) stateless address autoconfiguration, the first wireless interface204may transmit filter information in a router solicitation request message and/or in a neighbor solicitation message.

The media access gateway244may function similarly to the media access gateway242, and may also provide filter information to the home agent246. As shown inFIG. 7, the home agent246stores filter information corresponding to both the first and second wireless interfaces204and206when they are both attached to the visited networks220or the home network230.

When two interfaces of a wireless terminal connect to visited networks, the home agent246receives a first binding update and then a second binding update from the same wireless terminal. The home agent246may normally interpret this as a handoff from one network to another. For example, the wireless terminal202may have moved from within range of the visited network220-1to within range of the visited network220-2.

However, in this case, the wireless terminal202desires to establish simultaneous connections with the visited networks220. The home agent246should therefore maintain both the first and second link information. The home agent246may realize that a binding update represents an additional interface connection when the access type identifier from the two binding updates is different.

Alternatively, the wireless terminal202may signal that the additional link should be treated as an additional connection instead of a handoff. This indication of an additional connection can be passed on to the home agent246by the media access gateway244. The home agent246is thereby made aware that multiple interfaces of the wireless terminal202have established connections, and the first connection should not be removed.

Referring now toFIG. 6, a functional block diagram of an exemplary implementation of the home agent246, also known as a local mobility agent (LMA), is presented. The home agent246includes a network processor302, which communicates with a network interface304. In various implementations, additional network interfaces (not shown) may be included in the home agent246.

Via the network interface304, the network processor302can communicate with the media access gateways242and244and other network elements within the home network230and/or other networks. For example only, the other networks may include core networks (CNs). The network processor302receives various packets, including ones that are destined for the wireless terminal202.

These packets arrive at the home agent246with a destination address of HoA1. The network processor302references a binding cache module310to determine where to forward packets with a destination address of HoA1. The binding cache module310may include entries for each wireless terminal associated with the home agent246, including the wireless terminal202. Each wireless terminal may be assigned a unique home address.

A home agent module312processes binding updates, such as from the media access gateways242and244. The home agent module312updates the binding cache module310to reflect new wireless terminals and interfaces of those terminals that are being served by the home agent246. The home agent module312may receive filter information from a media access gateway, and this information may be located within the binding update message.

The home agent module312provides the filter information to the binding cache module310. The home agent module312also passes any received indication as to whether the additional connection is a hand-off or the connection of an additional interface. For an additional interface, the binding cache module310may supplement the binding cache entry for the corresponding wireless terminal instead of replacing the entry.

The home agent module312may also transmit binding acknowledgement messages. The binding acknowledgement messages may include allocated home addresses, such as HoA1for the wireless terminal202. A tunneling module314may establish tunnels between the home agent246and the media access gateways242and244ofFIG. 5.

Referring now toFIG. 7, an exemplary binding cache table is displayed. Each binding cache entry may be numbered in column350. For ease of illustration only, a single binding cache entry is shown inFIG. 7. A binding cache entry may be created for each wireless terminal that is being served by the home agent246. Column352may include the home address of the wireless terminal.

Column354may store the address to which packets destined for the packet destination column352should be forwarded. Column354includes multiple forwarding addresses for HoA1, indicating that the corresponding wireless terminal has multiple interfaces connected. The forwarding addresses, CoA1and CoA2, correspond to the media access gateway242and the media access gateway244, respectively, ofFIG. 5. In various implementations, more than two forwarding addresses may be supported in a single binding cache entry to accommodate wireless terminals with more than two interfaces.

An access type designation may be stored for each of the wireless terminal interfaces in column356. For example, access types1and2may map to cellular (such as a cellular implementation of 3GPP) and wireless local area network (WLAN), such as Wi-Fi, respectively. However, it may not be necessary for the home agent246to be aware of this mapping. Further access types may be supported, such as access type3for a wireless metropolitan area network (such as WiMAX), for example. Other examples of access types include, but are not limited to, wireless personal area network (such as Bluetooth), infrared, microwave, and satellite.

Column358may store one or more filter sets for each forwarding address. For example only, a first filter set may correspond to the specific access type, while a second filter set corresponds to any access interface. Each filter set includes filters that have identifying information used to match incoming packets. For example, a filter may match a packet having a specified source address, source port number, destination port number, and/or other header or payload characteristics.

Filters may allow ranges and/or masks to be defined, such as subnet masks. If a packet matches a filter, the packet may be forwarded to the corresponding forwarding address. Alternatively, filters may include a corresponding action, which may include forwarding to the corresponding interface, dropping the packet, and other actions.

For example only, filter set1corresponds to access type1, while filter set2corresponds to access type2. Filter set3may correspond to any access type. In other words, filters within filter set3may match any incoming packet. Alternatively, filters within filter set3may match any packet that would match either filter set1or filter set2.

Overlapping filter sets may be used when fewer than all of the available interfaces of a wireless terminal are connected. For example, if the second wireless terminal interface were not connected, binding cache entry1would include only the forwarding address CoA1. Packets that might have matched filter set2, were it present, may match filter set3.

For example only, filter set1may match voice traffic, filter set2may match data traffic, and filter set3may match either voice or data traffic. If filter set3were not present, and the second wireless interface was not connected (filter set2would also be absent), data traffic would not be forwarded. The inclusion of filter set3, which matches remaining packets, allows data traffic to be transmitted over CoA1when CoA2is not available.

Once the second wireless terminal interface is connected, filter set2will be added to binding cache entry1. Then voice traffic can be transmitted over CoA1while data traffic is transmitted over CoA2. Similarly, when the first wireless terminal interface disassociates from the home agent246, the home agent246may no longer forward packets via CoA1. At this point, voice traffic may be forwarded over CoA2based on the filter set3corresponding to CoA2.

Priority information may be stored to prioritize evaluation of the filter sets. In this way, traffic is routed over the desired interface when both interfaces are connected, while all traffic is routed over the remaining interface when no others are connected. Access type priority may be stored in column360. The home agent246may be configured to evaluate any access-specific filters, such as filter sets1and2, prior to evaluating promiscuous filters, such as filter set3. A single bit may be stored for each filter set to identify whether the filter set is access-specific or promiscuous. The access-specific filter sets may be evaluated in the order they were added to the binding cache entry, and then the promiscuous filter sets may be evaluated in the order they were added.

Alternatively, as shown inFIG. 7, finer granularity of control may be provided. For example, if a packet matches a filter in filter set1, the access priority information in column360corresponding to filter set1indicates that the packet should be sent over access type1. This means that packets matching filter set1will be forwarded to CoA1.

Similarly, packets matching filter set2will be forwarded to CoA2. If a packet matches filter set3, the access priority information in column350indicates that the packet should be forwarded over access type2. If access type2is unavailable, access type1should be used. Further, if access type1is unavailable, access type3should be used. Therefore, when access types1and2are present, a packet matching filter set3will be sent to CoA2.

In various implementations, filter set3and the access priority information corresponding to filter set3may be the same for both forwarding addresses. In such implementations, the home agent246may choose to store a single copy of filter set3and associated access priority information. When the wireless terminal disassociates from either CoA1or CoA2, the filter set corresponding to only that wireless terminal interface may be deleted while retaining the common filter set3. The home agent246may accomplish this by evaluating the access priority information in column360. Filter sets may be deleted when their access priority information indicates that the filter set corresponds only to access types that are no longer present in binding cache entry1.

Referring now toFIG. 8, a flowchart depicts exemplary operation of the home agent246ofFIG. 6. Control begins in step402, where control determines whether a binding update message has been received. If so, control transfers to step404; otherwise, control transfers to step406. In step404, filter information from the binding update is added to the binding cache. For example, a set of filters corresponding to the link established between a wireless terminal and the media access gateway may be added to a table entry corresponding to that wireless terminal.

Control continues in step408, where control sends a binding acknowledgement message to the media access gateway. The binding acknowledgement message includes a home address that control has allocated for the wireless terminal. Control continues in step410, where control sets up a tunnel to the source of the binding update, such as a media access gateway.

Control continues in step412, where control determines whether an additional interface flag was set in the binding update message. The additional interface flag is set when the wireless terminal is establishing a wireless link using another wireless interface. The additional interface flag will be cleared when the wireless terminal is disconnecting from one media access gateway and connecting to another media access gateway. If the additional interface flag is set, control transfers to step406; otherwise, control transfers to step414.

In step414, because this binding update is a result of a handoff, some or all of the previous filter information is removed from the binding cache. For example, the filter entries corresponding only to the previous wireless connection may be deleted from the binding cache entry for the wireless terminal. Control then continues in step406.

In step406, control determines whether a packet has been received from the media access gateway. If so, control transfers to step416; otherwise, control transfers to step418. In step416, the packet is decapsulated and forwarded to its destination. Control then continues in step418.

In step418, control determines whether a packet has been received from a source other than the media access gateway. If so, control transfers to step420; otherwise, control returns to step402. In step420, control determines whether the packet matches any entry in the binding cache. First, control may identify a binding cache entry having the home address indicated by the destination of the packet.

The filter sets for that binding cache entry may then be evaluated against the packet. If the packet matches a filter, the filter may specify an action to be performed on the packet. There may also be default actions for filter matches. Control continues in step422, where control determines whether the identified action includes forwarding. If so, control transfers to step424; otherwise, control transfers to step426. For example, other actions may include replicating the packet, storing the packet, and/or dropping the packet.

In step424, the packet is encapsulated and sent to the appropriate media access gateway as indicated by the binding cache. Control then continues in step426, where any other actions specified by the binding cache are performed. Control then returns to step402.

Referring now toFIG. 9, a functional block diagram of an exemplary implementation of the media access gateway242is presented. The media access gateway244may be implemented similarly. The media access gateway242includes a network processor500that communicates with other network devices, such as the home agent246, via a network interface502. A wireless interface504interfaces with wireless terminals. In various implementations, the wireless interface504may support a single access type, such as Wi-Fi.

The media access gateway242includes a proxy mobility agent (PMA) module506that communicates with the network processor500. The PMA module506receives access requests from wireless terminals and generates binding update messages based on these access requests. The binding updates are sent to a corresponding home agent, which may be selected based upon AAA information. The PMA module506processes received binding acknowledgements and provides assigned addresses to wireless terminals.

An authorization module508may interact with an AAA server. The authorization module508may determine whether a wireless terminal requesting access is authorized to connect to the media access gateway242. The authorization module508may also receive identifying home agent information and filter information from the AAA server. Alternatively, the PMA module506may receive filter information from the wireless terminal.

Once the PMA module506has received a binding acknowledgement, the PMA module506may establish a tunnel with the corresponding home agent using a tunneling module510. The tunneling module510may encapsulate packets for transmission to the home agent and may decapsulate packets received from the home agent.

A filter information module512may analyze filter information obtained from the AAA server and/or from the wireless terminal. The access type by which the wireless terminal is accessing the media access gateway242may be used to select appropriate filter sets. The filter information module512may modify and/or replace filter information based upon information from the authorization module508and/or local settings of the media access gateway242. The filter information module512provides tailored filter information to the PMA module506, which transmits this tailored filter information to the corresponding home agent. This filter information may be included in the binding update message sent to the home agent.

Referring now toFIG. 10A, a flowchart depicts exemplary steps performed by the media access gateway242ofFIG. 9. Control begins in step602, where control determines whether an access request has been received. If so, control transfers to step604; otherwise, control transfers to step606. In step604, control performs authentication and authorization, which may involve a query to an AAA server. If the wireless terminal is authorized, control transfers to step608; otherwise, control transfers to step606.

In step608, control retrieves filter information from the AAA server based on the access type. The filter information may already have been provided as part or the authentication and authorization of step604. The AAA server may provide all available filter sets for the wireless terminal, from which filter sets are selected based on the access type for the media access gateway242.

Control continues in step610, where control determines whether the wireless terminal has indicated that this is an additional connection. If so, control transfers to step612; otherwise, control transfers to step614. An additional connection is present when an additional interface of the wireless terminal connects to a network, instead of an interface switching from one network to another.

In step612, control transmits a binding update to the home agent identified by the AAA information. The binding update may include the selected filter information as well as the additional interface flag. The additional interface flag indicates that the home agent should add the present interface to the binding cache entry, instead of replacing the binding cache entry, as would occur with a handoff. Control continues in step606.

In step614, control transmits a binding update to the selected home agent. The binding update includes the selected filter information, and control continues in step606. In step606, control determines whether a binding acknowledgement has been received. If so, control transfers to step616; otherwise, control transfers to step618. In step616, control sets up a tunnel to the corresponding home agent and control continues in step620. In step620, control assigns the IP address received in the binding acknowledgement to the wireless terminal. Control continues in step618.

In step618, control determines whether a packet has been received from the wireless terminal. If so, control transfers to step622; otherwise, control transfers to step624. In step622, control encapsulates the packet, sends the packets to the home agent, and continues in step624. In step624, control determines whether a packet has been received from the home agent. If so, control transfers to step626; otherwise, control returns to step602. In step626, control decapsulates the packet and sends the decapsulated packet to the wireless terminal. Control then returns to step602.

Referring now toFIG. 10B, a flowchart depicts alternative exemplary operation of the media access gateway242. Control may be similar to that ofFIG. 10A. Control begins in step702, where control determines whether an access request is received from a wireless terminal. If so, control transfers to step704; otherwise, control transfers to step606.

In step704, filter information is received from the wireless terminal. In various implementations, the filter information may be received as part of the access request. Control then continues in step604. Step612ofFIG. 10Ais replaced with step706. In step706, instead of retrieving filter information from the AAA server, control analyzes the filter information received from the wireless terminal. Control may replace, prune, and/or modify this information. Control then continues in step610.

Referring now toFIG. 11, the teachings of the disclosure can be implemented in the teachings of the disclosure can be implemented in a phone control module860of a mobile phone858. The mobile phone858includes the phone control module860, a power supply862, memory864, a storage device866, and the cellular network interface867. The mobile phone858may include a network interface868, a microphone870, an audio output872such as a speaker and/or output jack, a display874, and a user input device876such as a keypad and/or pointing device. If the network interface868includes a wireless local area network interface, an antenna (not shown) may be included.

The phone control module860may receive input signals from the cellular network interface867, the network interface868, the microphone870, and/or the user input device876. The phone control module860may process signals, including encoding, decoding, filtering, and/or formatting, and generate output signals. The output signals may be communicated to one or more of memory864, the storage device866, the cellular network interface867, the network interface868, and the audio output872.

Memory864may include random access memory (RAM) and/or nonvolatile memory. Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device866may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). The power supply862provides power to the components of the mobile phone858. The teachings of the disclosure can be implemented similarly in other devices such as a personal digital assistant, a media player, a laptop computer, a gaming console, or other mobile computing device.