# Patent

## Title
Method, apparatus and system for obtaining and retaining a mobile node home address

## Abstract

A method, apparatus and system which enable a mobile node to request dynamic allocation of a home address and to maintain that home address when roaming between a home subnet and a foreign subnet. According to one embodiment, the mobile node may acquire a home address from its home agent by using a Network Access Identifier (“NAI”) extension in a registration request. The mobile node may send out this registration request when it first starts up, regardless of whether it is on its home subnet or a foreign subnet. Additionally, the mobile node may set a bit in the registration request to inform the home agent that it is on its home network. If the bit is not set, the home agent may deduce that the mobile node is on a foreign network. In either instance, the mobile node may continue to use its originally acquired home address.

## Background
FIELD
The present invention relates to the field of mobile computing, and, more particularly to a method, apparatus and system for enabling a mobile node to dynamically obtain a home address and to retain the home address while roaming between its home subnet and foreign subnets.
BACKGROUND
Use of mobile computing devices (hereafter “mobile nodes”) such as laptops, notebook computers, personal digital assistants (“TDAs”) and cellular telephones is becoming increasingly popular today. These mobile nodes enable users to move from one location to another (“roam”), while continuing to maintain their connectivity to the same network. Given its increasing popularity, it is unsurprising that most corporate (“enterprise”) networks today attempt to facilitate fast and secure mobile computing.
In order to roam freely, networks typically conform to one or more industry-wide mobile IP standards. More specifically, the Internet Engineering Task Force (“IETF”) has promulgated roaming standards (Mobile IPv4, IETF RFC 3344, August 2002, hereafter “Mobile IPv4,” and Mobile IPv6, IETF Mobile IPv6, Internet Draft draft-ietf-mobileip-ipv6-24.txt (Work In Progress), June 2003, hereafter “Mobile IPv6”) to enable mobile node users to move from one location to another while continuing to maintain their connectivity to the same network.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements, and in which:
FIG. 1 illustrates a known corporate intranet structure;
FIG. 2 is a flow chart illustrating an embodiment of the present invention.



DETAILED DESCRIPTION
Embodiments of the present invention provide a method, apparatus and system for mobile nodes to dynamically discover configuration information while roaming. Reference in the specification to “one embodiment” or “an embodiment” of the present invention means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment,” “according to one embodiment” or the like appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
FIG. 1 illustrates a known corporate intranet (“Corporate Intranet 100”) structure. Corporate Intranet 100 may include both wired and wireless networks and may comprise multiple subnets. Typically, an organization's network is comprised of one or more subnets. A subnet refers to a portion of an organization's network interconnected to other subnets by a routing element. Subnets are well known to those of ordinary skill in the art and further description thereof is omitted herein.
Mobile nodes that conform to Mobile IPv4 standards today may roam freely across subnets within Corporate Intranet 100. Thus, for example, when a mobile node (“MN 140”) exits its home subnet, it may continue to maintain its current transport connections and constant reachability by registering with a home agent (“HA 130”). During the registration process, MN 140 informs HA 130 of MN 140's home address (i.e., the invariant address assigned to MN 140) and its “care-of address” (hereafter “COA”), namely MN 140's address on its new subnet. MN 140 may obtain COAs via Dynamic Host Configuration Protocol (“DHCP”) or other similar protocols. Immediately after the registration process completes, HA 130 may broadcast a series of unsolicited ARP packets on behalf of MN 140 (hereafter referred to as “gratuitous ARPing”). HA 130 may also respond to ARP requests targeted to MN 140 (hereafter referred to as “proxy ARPing”). Both gratuitous ARPing and proxy ARPing have the effect of causing traffic addressed to MN 140 to be delivered to HA 130. HA 130 thereafter intercepts all IP packets addressed to MN 140 and reroutes the packets to MN 140's COA using IP tunneling. IP tunneling is well known to those of ordinary skill in the art and further description thereof is omitted. As MN 140 moves from one foreign subnet to another, to ensure that HA 130 is able to properly route packets to MN 140, MN 140 must continuously update HA 130 with its new COA. If MN 140 moves to its home subnet, it deregisters with HA 130, causing HA 130 to cease performing the proxy ARP and IP tunneling functions.
As previously described, in order for MN 140 to register with HA 130, it typically provides HA 130 with an invariant home address that uniquely identifies it to HA 130. In other words, HA 130 requires both a home address and a COA for MN 140 in order to properly perform IP tunneling. Typically, home addresses are assigned statically to mobile nodes, e.g., by a system administrator on Corporate Intranet 100. A proposed IETF solution (IETF RFC 2794, March 2000, hereafter referred to as “RFC 2794”) enables MN 140 to acquire a home address dynamically by using a NAI extension. More specifically, when MN 140 first attaches to a foreign subnet (i.e., when it exits its home subnet or starts up on a foreign subnet), it sends a registration request to HA 130 to register its COA; the registration request may also include a NAI extension requesting a home address assignment. HA 130 may dynamically assign a home address to MN 140 from a pool of addresses maintained by HA 130, or acquire a home address on behalf of MN 140 from a DHCP server (“DHCP Server 150”) on Corporate Intranet 100. HA 130 may return the home address to MN 140 via a registration reply and MN 140 may thereafter utilize this home address in subsequent registration requests each time it moves within the network.
RFC 2794 includes several shortcomings. Specifically, RFC 2794 does not address the situation when initially MN 140 starts up on its home subnet. Since the methodology described in RFCs 2794 and 3344 to acquire a home address do not allow MN 140 to register with HA 130 until it exits its home subnet, MN 140 has no way of obtaining a home address when it starts on its home subnet. Additionally, according to RFC 2794, MN 140 must deregister when it roams back to its home subnet. Even assuming MN 140 does obtain a home address for use, the deregistration process in RFC 2794 effectively releases MN 140's home address back to HA 130's address pool or back to DHCP Server 150. More specifically, HA 130 removes all bindings for MN 140 in its binding table and may release MN 140's home address, making MN 140's home address available for assignment to other mobile nodes. Concurrently, MN 140 may continue to use its home address on its home subnet, possibly leading to an address conflict if its home address was subsequently re-assigned to another mobile node.
Embodiments of the present invention alleviate the shortcomings of RFC 2794 by enabling MN 140 to dynamically acquire and retain a home address regardless of whether it starts up on its home subnet or a foreign subnet, and regardless of whether it subsequently moves from a foreign subnet to its home subnet. In one embodiment, MN 140 may be configured to register with HA 130 regardless of whether it is on its home subnet or on a foreign subnet. When it initially starts up, MN 140 may send a NAI extension with its registration request, and HA 130 may assign MN 140 a home address from its local pool of addresses or obtain a home address for MN 140 from DHCP Server 150. This initial registration on its home subnet addresses one of MN 140's problems, namely that of obtaining a home address dynamically while starting operation on its home subnet.
Additionally, according to an embodiment of the present invention, MN 140 may also be configured to inform HA 130 whether MN 140 is on its home subnet or on a foreign subnet. The registration request process as described in RFC 2794 currently includes various reserved bits that are not utilized. In one embodiment, MN 140 may set one of the reserved bits (hereafter referred to as the “OnHomeSubnet” bit) to a predetermined value to enable HA 130 to determine whether MN 140 is on its home subnet or on a foreign subnet. In one embodiment MN 140 may leave the OnHomeSubnet bit unchanged (i.e., at zero) when it is on a foreign subnet and set the bit to one when it is on its home subnet. MN 140 may then send the registration request to HA 130. When HA 130 receives the registration request, it may examine the OnHomeSubnet bit, and upon identifying whether the bit is set to one, determine whether MN 140 is on its home subnet or on a foreign subnet.
HA 130 may utilize the information obtained from the OnHomeSubnet bit to appropriately determine how handle gratuitous and proxy ARPing on behalf of MN 140, and how to forward communications to MN 140. More specifically, if HA 130 determines that MN 140 is on a foreign subnet (i.e., the OnHomeSubnet bit is zero), it may perform its typical role as a home agent, i.e., maintain a binding for MN 140's home address and COA in its binding table, perform proxy ARPing on behalf of MN 140, and tunneling packets to MN 140. If, however, HA 130 determines that MN 140 is on its home subnet (i.e., the OnHomeSubnet bit is set to one), HA 130 may process MN 140's registration request as a special registration request. HA 130 may therefore release the binding for MN 140's home address and COA in its binding table, but not release MN 140's home address. In other words, MN 140 may retain its home address while roaming on its home subnet, but HA 130 may no longer be performing its proxy ARPing and/or IP tunneling functions on behalf of MN 140. Regardless of whether MN 140 is on its home subnet or on a foreign subnet, it may periodically re-register with HA 130 to ensure that it retains its home address.
The following example describes an embodiment of the present invention further. Specifically, the example assumes that MN 140 starts up on its home subnet, roams to a foreign subnet, and then returns to its home subnet. When MN 140 initially starts up on its home subnet, in one embodiment, it may send a registration request to HA 130, with a NAI extension requesting a home address assignment. The registration request may additionally include the OnHomeSubnet bit set to one. Since it is on its home subnet, MN 140 may not acquire and send a COA to HA 130 with this registration request. MN 140 may, for example, utilize broadcast “agent solicitation” messages and receive “agent discovery” messages from HA 130 to discover whether it is on its home subnet. These types of broadcast messages are well known to those of ordinary skill in the art and further description thereof is omitted herein in order not to unnecessarily obscure embodiments of the present invention.
Upon receiving the registration request from MN 140, HA 130 may assign a home address to MN 140 from HA 130's local pool of addresses or acquire a home address for MN 140 from DHCP Server 150. This home address may be returned to MN 140 via a registration reply. Since HA 130 is aware that MN 140 is on its home subnet (because the OnHomeSubnet bit is set to one), HA 130 may not perform any proxy and gratituous ARPing on behalf of MN 140. MN 130 does, however, maintain information for MN 140 in its binding table, and does not release the home address it had assigned to MN 140.
When MN 140 exits its home subnet, it may acquire a COA from DHCP Server 150 (or other COA source), and use this COA and its home address in a registration request to HA 130. Additionally, in the registration request, MN 140 sets the OnHomeSubnet bit to zero, since MN 140 is now on a foreign subnet. When HA 130 receives the registration request, the OnHomeSubnet bit will inform it that MN 140 is on a foreign subnet. HA 130 may therefore create a binding for MN 140 in its binding table and perform typical home agent routing and/or proxy ARPing on behalf of MN 140. HA 130 may continue functioning as a typical home agent for as long as MN 140 continues to roam on foreign subnets.
When MN 140 returns to its home subnet, it may once again set the OnHomeSubnet bit to one. According to one embodiment, instead of deregistering with HA 130 as specified by RFC 2794, MN 140 may instead send another registration request to HA 130. HA 130 may identify from the OnHomeSubnet bit in the registration request that MN 140 is once again on its home subnet. In one embodiment, since MN 140 is on its home subnet and does not require a COA, the COA value in the registration request may be zeroed out. Upon recognizing that MN 140 is on its home subnet, HA 130 may treat this registration request as a special request and instead of releasing the home address assigned to MN 140, it may instead only stop sending proxy and gratuitous ARPs on behalf of MN 140; it will still maintain the binding for MN 140 in its binding table. This effectively stops HA 130 from tunneling packets to MN 140 and performing proxy ARPing, but enables MN 140 to retain its home address while on its home subnet.
Although the above description assumes that MN 140 roams only within Corporate Intranet 100, embodiments of the present invention are not so limited. Embodiments of the present invention may be applicable in any roaming scenarios, e.g., if MN 140 roams across a corporate demilitarized zone (“DMZ”) onto an external network. For the purposes of embodiments of the present invention, it is only necessary for HA 130 to determine whether MN 140 is on its home subnet or on a foreign subnet (either within Corporate Intranet 100 or on an external network) Additionally, although the above description assumes that the OnHomeSubnet bit is set to one when MN 140 is on its home subnet, it will be readily apparent to those of ordinary skill in the art that the bits may be reversed (i.e., set to one when MN 140 is on a foreign subnet) without affecting embodiments of the present invention. In such a situation, the OnHomeSubnet bit may zeroed when MN 140 is on its home subnet. Furthermore, it will be apparent to those of ordinary skill in the art that although the above description assumes that Corporate Intranet 100 is a Mobile IPv4 compliant network, embodiments of the present invention are not so limited and may also be implemented on other similar networks with minimal changes.
FIG. 2 is a flow chart illustrating an embodiment of the present invention. Although the following operations may be described as a sequential process, many of the operations may in fact be performed in parallel and/or concurrently. In addition, the order of the operations may be re-arranged without departing from the spirit of embodiments of the invention. In 201, MN 140 may initially start up and in 202, MN 140 may determine whether it is on its home subnet. If MN 140 determines that it is on its home subnet, in 203, MN 140 may send a registration request to HA 130, including a NAI extension requesting a home address assignment. MN 140 may additionally set the OnHomeSubnet bit in the registration request to one. In 204, HA 130 may send MN 140 a registration reply with a home address (either from a local pool of addresses or an address acquired from a DHCP server). Since HA 130 is aware from the OnHomeSubnet bit that MN 140 is on its home subnet, it may not perform any additional “home agent” type tasks, such as proxy ARPing, gratuitous ARPing and/or IP tunneling. MN 140 may, however, periodically re-register with HA 130 (with the OnHomeSubnet bit set to one) until it identifies that it has moved off its home subnet in 206.
If, however, MN 140 identifies in 202 that it is not on its home subnet, in 207, MN 140 may acquire a COA from a DHCP server, and send a registration request to HA 130 with the COA. In the registration request, MN 140 may also request a home address and leave the OnHomeSubnet bit set to zero. When HA 130 receives the registration request, it may respond with a registration reply in 208. Since HA 130 may determine that MN 140 is on a foreign subnet, it may act as a typical home agent for MN 140 (e.g., creating a binding entry in its binding table and performing gratuitous ARPing and proxy ARPing on behalf of MN 140). In 209, MN 140 may periodically re-register with HA 130 (including the OnHomeSubnet bit left at zero), until it identifies that it has moved back to its home subnet in 206. In 205 and 209, if MN 140 senses that it has moved off or back to its home subnet, it may change the value of the OnHomeSubnet bit and re-register with HA 130. This informs HA 130 that MN 140 moved off or back to its home subnet and HA 130 may behave accordingly.
The mobile nodes and home agents according to embodiments of the present invention may be implemented on a variety of data processing devices. It will be readily apparent to those of ordinary skill in the art that these data processing devices may include various types of software, and may comprise any devices capable of supporting mobile networks, including but not limited to mainframes, workstations, personal computers, laptops, portable handheld computers, PDAs and/or cellular telephones. In an embodiment, mobile nodes may comprise portable data processing systems such as laptops, handheld computing devices, personal digital assistants and/or cellular telephones. According to one embodiment, home agents may comprise data processing devices such as personal computers, workstations and/or mainframe computers. In alternate embodiments, home agents may also comprise portable data processing systems similar to those used to implement mobile nodes.
According to an embodiment of the present invention, data processing devices may include various components capable of executing instructions to accomplish an embodiment of the present invention. For example, the data processing devices may include and/or be coupled to at least one machine-accessible medium. As used in this specification, a “machine” includes, but is not limited to, any data processing device with one or more processors. As used in this specification, a machine-accessible medium includes any mechanism that stores and/or transmits information in any form accessible by a data processing device, the machine-accessible medium including but not limited to, recordable/non-recordable media (such as read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media and flash memory devices), as well as electrical, optical, acoustical or other form of propagated signals (such as carrier waves, infrared signals and digital signals).
According to an embodiment, a data processing device may include various other well-known components such as one or more processors. The processor(s) and machine-accessible media may be communicatively coupled using a bridge/memory controller, and the processor may be capable of executing instructions stored in the machine-accessible media. The bridge/memory controller may be coupled to a graphics controller, and the graphics controller may control the output of display data on a display device. The bridge/memory controller may be coupled to one or more buses. A host bus controller such as a Universal Serial Bus (“USB”) host controller may be coupled to the bus(es) and a plurality of devices may be coupled to the USB. For example, user input devices such as a keyboard and mouse may be included in the data processing device for providing input data.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be appreciated that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A method comprising:
setting a bit indicating whether a mobile node is on a home subnet or a foreign subnet;
enabling a mobile device to acquire or retain a home address whether it starts up on the home subnet or the foreign subnet, or whether the mobile device moves between the home subnet and the foreign subnet, wherein the enabling of the mobile device includes requesting the home address from a home agent in a registration request, the registration request including the bit indicating whether the mobile node is on the home subnet or the foreign subnet, wherein if the mobile node is on the foreign subnet; and
receiving a registration reply including the home address to allow the mobile node to roam within a plurality of networks, wherein the mobile node and the home agent are coupled via a network.

2. The method according to claim 1 wherein the bit in the registration request is set to a first predetermined value when the mobile node is on the home subnet and to a second predetermined value when the mobile node is on the foreign subnet.

3. The method according to claim 1 wherein the home agent assigns the home address to the mobile node from at least one of a pool of addresses
maintained by the home agent and a Dynamic Host Control Protocol (“DHCP”) server accessible by the home agent.

4. The method according to claim 1 wherein the mobile node roams from the home subnet to the foreign subnet and sends a second registration request to the home agent, the second registration request including the bit set to the second predetermined value.

5. The method according to claim 1 wherein the mobile node roams from the foreign subnet to the home subnet and sends a third registration request to the home agent, the third registration request including the bit set to the first predetermined value.

6. A tangible machine-readable storage medium comprising instructions which, when executed, cause a machine to:
set a bit indicating whether a mobile node is on a home subnet or a foreign subnet;
enable mobile device to acquire or retain a home address whether it starts up on the home subnet or the foreign subnet, or whether the mobile device moves between the home subnet and the foreign subnet, wherein the enabling of the mobile device includes requesting the home address from a home agent in a registration request, the registration request including the bit indicating whether the mobile node is on the home subnet or the foreign subnet, wherein if the mobile node is on the foreign subnet; and
receive a registration reply including the home address to allow the mobile node to roam within a plurality of networks, wherein the mobile node and the home agent are coupled via a network.

7. The tangible machine-readable storage medium according to claim 6 wherein the registration request is set to a first predetermined value when the mobile node is on the home subnet and to a second predetermined value when the mobile node is on the foreign subnet.

8. The tangible machine-readable storage medium according to claim 6 wherein the home agent assigns the home address to the mobile node from at least one of a pool of addresses maintained by the home agent and a Dynamic Host Control Protocol (“DHCP”) server accessible by the home agent.

9. The tangible machine-readable storage medium according to claim 6 wherein the mobile node roams from the home subnet to the foreign subnet and sends a second registration request to the home agent, the second registration request including the bit set to the second predetermined value.

10. The tangible machine-readable storage medium according to claim 6 wherein the mobile node roams from the foreign subnet to the home subnet and sends a third registration request to the home agent, the third registration request including the bit set to the first predetermined value.

11. A system comprising:
a bit indicating whether a mobile node is on a home subnet or a foreign subnet, whether the mobile node capable of generating a registration request, the registration request including the bit indicating whether the mobile node is on the home subnet or the foreign subnet; and
a home agent capable of receiving and processing the registration request, the home agent further capable of enabling a mobile device to acquire or retain a home address whether it starts up on the home subnet or the foreign subnet, or whether the mobile device moves between the home subnet and the foreign subnet, wherein the enabling of the mobile device includes assigning the mobile node a home address and sending a registration reply having the home address to the mobile node to allow the mobile node to roam within a plurality of networks, wherein the mobile node and the home agent are coupled via a network, and wherein if the mobile node is on the foreign subnet.

12. The system according to claim 11 wherein the home agent is further capable of generating a binding entry for the mobile node in the binding cache when the bit indicates that the mobile node is on the foreign subnet.

13. The system according to claim 11 wherein home agent is capable of assigning the mobile node the home address from at least one of a pool of addresses maintained by the home agent and a Dynamic Host Control Protocol (“DHCP”) server accessible by the home agent.