# Patent

## Title
Wireless geographic routing protocol

## Abstract

A method of operating a communication system comprises, in a wireless communication device, acquiring a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmitting the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network. The method further comprises, in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, querying the database with the packet address to determine the device identifier and the location of the wireless communication device, processing the location to select a plurality of output ports of the packet router, and broadcasting the data packet over the plurality of output ports.

## Background
TECHNICAL BACKGROUND
Wireless communications have become increasingly prominent for sending and receiving information. For example, individuals may utilize a wireless communication device for voice communications, research, entertainment, or for conducting critical business transactions. As wireless communications have increased, so have the number of wireless access modes used to support these communications. For example, many modern wireless communication devices are capable of communicating over both third generation (3G) and fourth generation (4G) wireless networks, often referred to as “dual-mode” devices. In addition, a wireless communication device may also communicate using other wireless protocols, such as Wi-Fi or Bluetooth.
In order to utilize a wireless communication device, a user typically operates the device to register with a communication network operated by a wireless communication service provider. Upon successful registration, a communication session is established in a particular wireless protocol. During the communication session, the user may send and receive data via the access network of the communication service provider. However, if a dual-mode wireless communication device transitions between access media, a new communication session is typically established. For example, when a wireless communication device transitions to a different access mode by switching from a 3G network to a 4G network, the 3G communication session would typically be torn down and a new communication session for the 4G network would be established.
Overview
A method of operating a communication system comprises, in a wireless communication device, acquiring a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmitting the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network. The method further comprises, in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, querying the database with the packet address to determine the device identifier and the location of the wireless communication device, processing the location to select a plurality of output ports of the packet router, and broadcasting the data packet over the plurality of output ports.
A communication system comprises a wireless communication device and packet router. The wireless communication device is configured to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmit the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network. The packet router is configured to receive a data packet with a destination address of the packet address assigned to the wireless communication device, query the database with the packet address to determine the device identifier and the location of the wireless communication device, process the location to select a plurality of output ports of the packet router, and broadcast the data packet over the plurality of output ports.
A method of operating a communication system comprises, in a wireless communication device, transmitting a packet address, a media access control address, and a location of the wireless communication device for delivery to a database in a communication network. The method further comprises, in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, querying the database with the packet address to determine the media access control address and the location of the wireless communication device, processing the location to select a plurality of output ports of the packet router, wherein each output port of the plurality of output ports communicates using a different wireless protocol of a plurality of wireless protocols, and broadcasting the data packet over the plurality of output ports. The method further comprises, in the wireless communication device, identifying the media access control address in the data packet, and receiving the data packet based on the media access control address.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram that illustrates a communication system.
FIG. 2 is a flow diagram that illustrates an operation of the communication system.
FIG. 3 is a block diagram that illustrates a communication system in an exemplary embodiment.
FIG. 4 illustrates tables in a wireless device information database and a router port database in an exemplary embodiment.
FIG. 5 is a sequence diagram that illustrates an operation of the communication system in an exemplary embodiment.
FIG. 6 is a block diagram that illustrates a packet router.
FIG. 7 is a block diagram that illustrates a wireless communication device.



DETAILED DESCRIPTION
The following description and associated drawings teach the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects of the best mode may be simplified or omitted. The following claims specify the scope of the invention. Some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Thus, those skilled in the art will appreciate variations from the best mode that fall within the scope of the invention. Those skilled in the art will appreciate that the features described below can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific examples described below, but only by the claims and their equivalents.
FIG. 1 is a block diagram that illustrates communication system 100. Communication system 100 includes wireless communication device 101, wireless access node 110, communication network 120, packet router 130, and database 140. Wireless communication device 101 and wireless access node 110 are in communication over wireless communication link 111. Wireless access node 110 and communication network 120 communicate over communication link 121. Communication network 120 and packet router 130 are in communication over communication link 131, while database 140 and communication network 130 communicate over communication link 141.
FIG. 2 is a flow diagram that illustrates an operation of communication system 100. The steps of the operation are indicated below parenthetically.
In FIG. 2, wireless communication device 101 acquires a packet address from communication network 120 (201). Communication network 120 assigns the packet address to wireless communication device 101 (201). In some examples, the packet address assignment to wireless communication device 101 could be static or dynamic, and wireless communication device 101 may acquire the packet address only once, such as during initial provisioning.
Wireless communication device 101 transmits the packet address, a device identifier, and a location of wireless communication device 101 for delivery to database 140 in communication network 120 (202). The device identifier could comprise any identifier associated with wireless communication device 101 and/or its user. For example, the device identifier could comprise a Media Access Control (MAC) address, Mobile Station International Subscriber Directory Number (MSISDN) or some other telephone number, Electronic Serial Number (ESN), Mobile Station Identifier (MSID), Mobile Equipment Identifier (MEID), International Mobile Equipment Identity (IMEI), International Mobile Subscriber Identity (IMSI), Media Access Control Identifier (MACID), User Identifier (UID), or some other identifier that uniquely identifies wireless communication device 101 and/or a user of device 101—including combinations thereof. The location of wireless communication device 101 could comprise any level of specificity, from precise coordinates to a larger geographic area. For example, the location of wireless communication device 101 could be identified by global positioning system (GPS) coordinates or other GPS data, latitude/longitude, a sector of wireless access node 110 serving device 101, or any other technique that determines a location of wireless communication device 101. In some examples, the location is identified by a GPS range.
Once database 140 has been populated with the packet address, device identifier, and location of wireless communication device 101, packet router 130 receives a data packet with a destination address of the packet address assigned to wireless communication device 101 (203). The data packet received by packet router 130 could comprise any datagram or other message intended for delivery to wireless communication device 101. Responsive to receiving the data packet, packet router 130 queries database 140 with the packet address to determine the device identifier and the location of wireless communication device 101 (204). Since database 140 relates the packet address to the device identifier and the location of wireless communication device 101 as provided by device 101 in operation 202, packet router 130 receives the device identifier and the location of wireless communication device 101 in response to the query.
Packet router 130 processes the location of wireless communication device 101 to select a plurality of output ports of the packet router 130 (205). Thus, packet router 130 typically selects the output ports based on the location of wireless communication device 101. In some examples, each output port of the plurality of output ports on packet router 130 communicates using a different wireless protocol of a plurality of wireless protocols. In this case, packet router 130 could select output ports associated with the wireless protocols that have coverage in the location of wireless communication device 101. In other examples, packet router 130 may select the output ports based on wireless protocols of which wireless communication device 101 is capable of communicating. For example, packet router 130 could process the device identifier of wireless communication device 101 to determine the wireless capabilities of device 101, and select output ports that are associated with the wireless capabilities of wireless communication device 101.
Packet router 130 typically serves an area including the location of wireless communication device 101, so that the output ports selected by packet router 130 are within range of device 101. However, in some examples, wireless communication device 101 may be traveling away from the location at some velocity. In this case, packet router 130 could determine the velocity of wireless communication device 101 based on a series of location updates associated with device 101 and timestamps corresponding to the location updates. Packet router 130 could then process the location to select the output ports of packet router 130 by determining if the velocity of wireless communication device 101 exceeds a threshold. For example, if the velocity of wireless communication device 101 exceeds ten miles per hour, packet router 130 would typically select a larger number of output ports to increase the likelihood that wireless communication device 101 will receive the packet.
Once the output ports have been selected, packet router 130 broadcasts the data packet over the plurality of output ports (206). Packet router 130 typically broadcasts the data packet by wirelessly propagating the data packet over the plurality of output ports. In some examples, the data packet is broadcast over the plurality of output ports in a plurality of wireless protocols. In examples that consider the velocity of wireless communication device 101, packet router 130 could broadcast the data packet using the plurality of output ports of the packet router if the packet router serves an area including the location and if the velocity of the wireless communication device exceeds the threshold.
Advantageously, packet router 130 processes the location of wireless communication device 101 to select a plurality of output ports on which to broadcast a data packet to wireless communication device 101. In this manner, wireless communication device 101 may monitor for data packets that are broadcast by packet router 130. For example, wireless communication device 101 could identify its MAC address in the data packet, and receive the data packet based on the MAC address. Since packet router 130 may broadcast data packets intended for wireless communication device 101 in a plurality of different wireless protocols, communication sessions between device 101 and communication network 120 may be maintained, even while transitioning across different access media that support the different wireless protocols.
Referring back to FIG. 1, wireless communication device 101 comprises any device having wireless communication connectivity with hardware and circuitry programmed to function as a telecommunications device, such as Radio Frequency (RF) communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, modulator, and signal processing circuitry. Wireless communication device 101 may also include a user interface, memory device, software, processing circuitry, or some other communication components. For example, wireless communication device 101 could comprise a telephone, transceiver, mobile phone, cellular phone, smartphone, computer, personal digital assistant (PDA), e-book, game console, mobile Internet device, wireless network interface card, media player, or some other wireless communication apparatus—including combinations thereof. Wireless network protocols that may be utilized by wireless communication device 101 include Code Division Multiple Access (CDMA) 1xRTT, Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Evolution-Data Optimized (EV-DO), EV-DO rev. A, Third Generation Partnership Project Long Term Evolution (3GPP LTE), Worldwide Interoperability for Microwave Access (WiMAX), IEEE 802.11 protocols (Wi-Fi), Bluetooth, Internet, telephony, or any other wireless network protocol that facilitates communication between wireless communication device 101 and wireless access node 110.
Wireless access node 110 comprises RF communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, RF modulator, and signal processing circuitry. Wireless access node 110 may also comprise a router, server, memory device, software, processing circuitry, cabling, power supply, network communication interface, structural support, or some other communication apparatus. Wireless access node 110 could comprise a base station, Internet access node, telephony service node, wireless data access point, or some other wireless communication system—including combinations thereof. Some examples of wireless access node 110 include a base transceiver station (BTS), base station controller (BSC), radio base station (RBS), Node B, enhanced Node B (eNode B), and others. Wireless network protocols that may be utilized by wireless access node 110 include CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other communication format—including combinations thereof.
Communication network 120 comprises the core network of a wireless communication provider, and could include routers, gateways, telecommunication switches, servers, processing systems, or other communication equipment and systems for providing communication and data services. Communication network 120 could comprise wireless communication nodes, telephony switches, Internet routers, network gateways, computer systems, communication links, or some other type of communication equipment—including combinations thereof. Communication network 120 may also comprise optical networks, asynchronous transfer mode (ATM) networks, packet networks, radio access networks (RAN), local area networks (LAN), metropolitan area networks (MAN), wide area networks (WAN), or other network topologies, equipment, or systems—including combinations thereof. Communication network 120 may be configured to communicate over metallic, wireless, or optical links. Communication network 120 may be configured to use time-division multiplexing (TDM), Internet Protocol (IP), Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In some examples, communication network 120 includes further access nodes and associated equipment for providing communication services to many wireless communication devices across a large geographic region.
Packet router 130 comprises a processing system and communication transceiver. Packet router 130 may also include other components such as a router, server, data storage system, and power supply. Packet router 130 may reside in a single device or may be distributed across multiple devices. Packet router 130 may be a discrete system or may be integrated within other systems—including other systems within communication system 100. In some examples, packet router 130 could comprise a mobile switching center, router, switching system, packet gateway, network gateway system, Internet access node, application server, service node, firewall, or some other communication system—including combinations thereof.
Database 140 comprises a processing system and communication transceiver. Database 140 may also include other components such as a router, server, data storage system, and power supply. Database 140 may reside in a single device or may be distributed across multiple devices. Database 140 may be a discrete system or may be integrated within other systems—including other systems within communication system 100. In some examples, database 140 could comprise a network database system, network-attached storage, storage area network, home location register, visitor location register, packet gateway, mobile switching center, network gateway system, Internet access node, application server, service node, firewall, or some other communication system—including combinations thereof.
Wireless communication link 111 uses the air or space as the transport medium. Wireless communication link 111 may use various protocols, such as CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other communication format—including combinations thereof. Wireless communication link 111 may comprise many different signals sharing the same link. For example, wireless communication link 111 could include multiple signals operating in a single propagation path comprising multiple communication sessions, frequencies, timeslots, transportation ports, logical transportation links, network sockets, IP sockets, packets, or communication directions—including combinations thereof.
Communication links 121, 131, and 141 use metal, air, space, optical fiber such as glass or plastic, or some other material as the transport media—including combinations thereof. Communication links 121, 131, and 141 could use various communication protocols, such as TDM, IP, Ethernet, telephony, optical networking, hybrid fiber coax (HFC), communication signaling, wireless protocols, or some other communication format—including combinations thereof. Communication links 121, 131, and 141 may be direct links or could include intermediate networks, systems, or devices.
FIG. 3 is a block diagram that illustrates communication system 300. Communication system 300 includes wireless communication device 301, wireless access node 310, communication network 320, packet router 330, wireless device information database 340, and router port database 350. Wireless communication device 301 and wireless access node 310 are in communication over wireless communication link 311. Wireless access node 310 and communication network 320 communicate over communication link 321. Communication network 320 and wireless device information database 340 are in communication over communication link 341, while packet router 330 and communication network 320 communicate over communication link 331. Packet router 330 and router port database 350 are in communication over communication link 351. Packet router 330 comprises ports A, B, and C, over which packet router 330 may wirelessly transmit data packets. In this example, ports A, B, and C of packet router 330 each communicate using a different wireless protocol. Although wireless device information database 340 and router port database 350 are shown on FIG. 3 as separate databases, the information in each database 340 and 350 could all be related in a single database or some other storage system in some examples. Also, although router port database 350 is shown external to packet router 330, database 350 could be stored in an internal storage system of packet router 330 in some examples.
FIG. 4 illustrates tables in wireless device information database 340 and router port database 350 in an exemplary embodiment. The table shown in wireless device information database 340 includes columns labeled IP ADDRESS, MAC ADDRESS, and GPS. Each row in the table represents related data, such that the values in the MAC ADDRESS and GPS fields are associated with the IP ADDRESS from the corresponding row. Typically, the values in wireless device information table 340 are populated by wireless communication devices, such as wireless communication device 301, that transmit the data for delivery to wireless device information database 340. Thus, the four rows shown in wireless device information database 340 represent four different wireless communication devices at different locations, as indicated by the GPS ranges for each of the IP and MAC address pairs. One of skill in the art will understand that the GPS ranges in the GPS field would typically comprise actual values of GPS coordinates or other position information, but are referred to herein simply as RANGE 1 though RANGE 4 for clarity. The information in wireless device information database 340 is utilized by packet router 330 to assist in routing packets to the wireless communication devices identified in database 340.
The table shown in router port database 350 comprises two columns labeled GPS and ROUTER PORTS. Thus, in this example, the table in router port database 350 maps GPS ranges to router ports of packet router 330. The GPS field shown in router port database 350 typically corresponds to the GPS field in wireless device information database 340, so that a GPS range received by querying wireless device information database 340 can be used to query router port database 350 to determine the appropriate router ports of packet router 330 on which to broadcast a packet. Note that GPS ranges 2, 3, and 4 are associated with multiple ports of packet router 330: B+C, A+C, and A+B+C, respectively. It should be understood that although the tables shown in databases 340 and 350 on FIG. 4 only comprise four rows each in this example, the number of rows of information in these tables would typically be much greater.
FIG. 5 is a sequence diagram that illustrates an operation of communication system 300 in an exemplary embodiment. Prior to the steps shown on FIG. 5, wireless communication device 301 has acquired an IP address from communication network 320 and has determined its current location by utilizing GPS satellites. To begin, wireless communication device 301 transmits its IP address, MAC address, and a GPS range indicating the current location of device 301 for delivery to wireless device information database 340. In this example, wireless communication device 301 has an IP address of 64.173.211.241, a MAC address of 00:1D:FE:22:B2:DF, and a GPS of “RANGE 3”, which corresponds to the third row down in the table of wireless device information database 340 as shown in FIG. 4. Thus, this information is provided by wireless communication device 301 and entered into wireless device information database 340, as shown in FIG. 5.
After the database 340 has been updated with the information from wireless communication device 301, packet router 330 receives a data packet with a destination address corresponding to the IP address of device 301. Packet router 330 therefore queries wireless device information database 340 with the destination IP address of the received packet to determine the MAC address and GPS range associated with this IP address. Wireless device information database 340 responds to the query with the MAC address and GPS range that are stored therein for wireless communication device 301 based on the IP address in the query. Once packet router 330 receives the MAC address and GPS range for wireless communication device 301, packet router 330 queries router port database 350 with the GPS range received from wireless device information database 340. As discussed above, the GPS range in this case is “RANGE 3”, so when packet router 330 queries router port database 350 with this GPS range, router port database 350 returns router ports A and C to packet router 330, as shown in the table of router port database 350 in FIG. 4.
Once packet router 330 receives a response from router port database 350 indicating that router ports A and C correspond to the GPS “RANGE 3”, packet router 330 broadcasts the data packet over both ports A and C with the MAC address for wireless communication device 301. The MAC address for device 301 was previously received by packet router 330 in response to the query to wireless device information database 340. Packet router 330 broadcasts the data packet with the MAC address for wireless communication device 301 to enable device 301 to detect the packets intended for it based on its MAC address. Thus, wireless communication device 301 is configured to listen for data packets having this MAC address on all wireless networks that are in communication with device 301. In this example, router port A communicates over a third generation (3G) CDMA wireless network, while router port C communicates over a fourth generation (4G) WiMAX wireless network, and wireless communication device 301 is a dual-mode 3G/4G device. Thus, wireless communication device 301 is configured to identify data packets having its MAC address on both the 3G CDMA network and the 4G WiMAX network in this example. Note that although wireless communication device is only shown in FIG. 5 as listening for packets with its MAC address at the time packet router 330 broadcasts the packet, device 301 would typically be configured to continually listen for packets with its MAC address at all times.
Although packet router 330 broadcasts the data packet simultaneously over both ports A and C, wireless communication device 301 first receives the data packet over the 4G WiMAX wireless network via port C of packet router 330. Subsequently, wireless communication device 301 receives the same packet from packet router 330 over the 3G CDMA wireless network via port A. In this example, wireless communication device 301 is configured to determine whether any data packets received have already been received over a different access medium. Therefore, wireless communication device 301 processes the two packets and determines that the packet received over the 3G CDMA wireless network was already received by device 301 over the 4G WiMAX network. Thus, wireless communication device 301 discards the duplicate packet and presents only one copy of the packet to the network layer (layer 3) interface of device 301. In this manner, wireless communication device 301 may receive packets over a plurality of wireless access media as device 301 transitions between them. The received packets are processed to ensure that any duplicate packets are discarded, and the packets are then transparently presented to the layer 3 network layer of device 301, so that the layer 3 interface of device 301 is unaware over which wireless network or networks the packets were received.
In some examples, packet router 330 could be configured to broadcast data packets over multiple router ports only when the packet is in the proximity of its target destination. This proximity determination could be based on comparing the location of wireless communication device 301 to threshold values. For example, if wireless communication device 301 is currently located in a geographic area served by a different router than packet router 330, packet router 330 would simply forward packets to the router that is currently serving device 301 based on the GPS range or other location information in the wireless device information database 340. When the router that is serving the area in which wireless communication device 301 is located receives the packets from packet router 330, that router could query wireless device information database 340 to determine that the location of device 301 is within a proximity threshold, and would therefore broadcast the packets over the ports indicated in its router port database. Effectively, as packets near their destination, a packet router that is closer to the target device will tend to broadcast the packets over a greater number of ports than a router that is farther away from the destination.
FIG. 6 is a block diagram that illustrates packet router 600. Packet router 600 provides an example of packet routers 130 and 330, although routers 130 and 330 may use alternative configurations. Packet router 600 comprises communication transceiver 601 and processing system 603. Processing system 603 is linked to communication transceiver 601. Processing system 603 includes processing circuitry 605 and memory device 606 that stores operating software 607.
Communication transceiver 601 comprises components that communicate over communication links, such as network cards, ports, RF transceivers, processing circuitry and software, or some other communication components. Communication transceiver 601 may be configured to communicate over metallic, wireless, or optical links. Communication transceiver 601 may be configured to use TDM, IP, Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In some examples, communication transceiver 601 could be configured to receive a data packet with a destination address of a packet address assigned to a wireless communication device, and broadcast a data packet over a plurality of output ports.
Processing circuitry 605 comprises microprocessor and other circuitry that retrieves and executes operating software 607 from memory device 606. Memory device 606 comprises a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Operating software 607 comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software 607 may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software.
When executed by circuitry 605, operating software 607 directs processing system 603 to operate as described herein for packet router 130. In particular, operating software 607 may direct processing system 603 to direct communication transceiver 601 to receive a data packet with a destination address of a packet address assigned to a wireless communication device. In addition, operating software 607 directs processing system 603 to query a database with the packet address to determine a device identifier and a location of the wireless communication device, and process the location to select a plurality of output ports of packet router 600. Further, operating software 607 may direct processing system 603 to direct communication transceiver 601 to broadcast the data packet over the plurality of output ports.
In some examples, operating software 607 could comprise a packet receiver software module that receives a data packet with a destination address of a packet address assigned to a wireless communication device. Additionally, operating software 607 could comprise a port selection software module that queries a database with the packet address to determine a device identifier and a location of the wireless communication device, and process the location to select a plurality of output ports of packet router 600. Further, operating software 607 could comprise a packet broadcast software module that broadcasts a data packet over the plurality of output ports.
FIG. 7 is a block diagram that illustrates wireless communication device 700. Wireless communication device 700 provides an example of wireless communication devices 101 and 301, although devices 101 and 301 could use alternative configurations. Wireless communication device 700 comprises wireless communication transceiver 701, processing system 702, and user interface 703. Processing system 702 is linked to wireless communication transceiver 701 and user interface 703. Processing system 702 includes processing circuitry 704 and memory device 705 that stores operating software 706. Wireless communication device 700 may include other well-known components such as a battery and enclosure that are not shown for clarity. Wireless communication device 700 may comprise a telephone, computer, e-book, mobile Internet appliance, media player, game console, wireless network interface card, or some other wireless communication apparatus—including combinations thereof.
Wireless communication transceiver 701 comprises RF communication circuitry and an antenna. The RF communication circuitry typically includes an amplifier, filter, RF modulator, and signal processing circuitry. Wireless communication transceiver 701 may also include a memory device, software, processing circuitry, or some other communication device. Wireless communication transceiver 701 may use various protocols, such as CDMA, GSM, UMTS, HSPA, EV-DO, EV-DO rev. A, 3GPP LTE, WiMAX, Wi-Fi, Bluetooth, Internet, telephony, or some other wireless communication format. Wireless communication transceiver 701 could be configured to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device 700, and transmit the packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in the communication network.
User interface 703 comprises components that interact with a user to receive user inputs and to present media and/or information. User interface 703 may include a speaker, microphone, buttons, lights, display screen, touch screen, touch pad, scroll wheel, communication port, or some other user input/output apparatus—including combinations thereof. User interface 703 may be omitted in some examples.
Processing circuitry 704 comprises microprocessor and other circuitry that retrieves and executes operating software 706 from memory device 705. Memory device 705 comprises a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Processing circuitry 704 is typically mounted on a circuit board that may also hold memory device 705 and portions of communication transceiver 701 and user interface 703. Operating software 706 comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software 706 may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by processing circuitry 704, operating software 706 directs processing system 702 to operate wireless communication device 700 as described herein for wireless communication devices 101 and 301. In particular, operating software 706 directs processing system 702 to direct wireless communication transceiver 701 to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device 700, and transmit the packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in the communication network. In some examples, operating software 706 could comprise a database update software module that transmits a packet address, a device identifier, and a location of the wireless communication device 700 for delivery to a database in a communication network. Further, in some examples, operating software 706 could direct processing system 702 identify a media access control address in a data packet, and direct wireless communication transceiver 701 to receive the data packet based on the media access control address.
The above description and associated figures teach the best mode of the invention. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.

## Claims

1. A method of operating a communication system, the method comprising:
in a wireless communication device, acquiring a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device;
in the wireless communication device, transmitting the packet address, a device identifier, and a geographic location of the wireless communication device for delivery to a database in the communication network;
in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, and querying the database with the packet address to determine the device identifier and the geographic location of the wireless communication device;
in the packet router, processing the geographic location to select a plurality of output ports of the packet router; and
in the packet router, broadcasting the data packet over the plurality of output ports.

2. The method of claim 1 wherein the packet router serves an area including the location.

3. The method of claim 1 wherein broadcasting the data packet over the plurality of output ports comprises broadcasting the data packet by wirelessly propagating the data packet over the plurality of output ports.

4. The method of claim 1 wherein each output port of the plurality of output ports communicates using a different wireless protocol of a plurality of wireless protocols.

5. The method of claim 1 wherein the device identifier comprises a media access control address.

6. The method of claim 5 further comprising, in the wireless communication device, identifying the media access control address in the data packet, and receiving the data packet based on the media access control address.

7. The method of claim 1 wherein the location is identified by a global positioning system range.

8. The method of claim 1 wherein processing the location to select a plurality of output ports of the packet router comprises determining a velocity of the wireless communication device, and determining if the velocity of the wireless communication device exceeds a threshold.

9. The method of claim 8 wherein broadcasting the data packet over the plurality of output ports comprises broadcasting the data packet using the plurality of output ports of the packet router if the packet router serves an area including the location and if the velocity of the wireless communication device exceeds the threshold.

10. The method of claim 8 wherein determining if the velocity of the wireless communication device exceeds the threshold comprises determining the velocity of the wireless communication device based on a series of location updates associated with the wireless communication device and timestamps corresponding to the location updates, and comparing the velocity to the threshold.

11. A communication system comprising:
a wireless communication device configured to acquire a packet address from a communication network, wherein the communication network assigns the packet address to the wireless communication device, and transmit the packet address, a device identifier, and a location of the wireless communication device for delivery to a database in the communication network; and
a packet router configured to receive a data packet with a destination address of the packet address assigned to the wireless communication device, query the database with the packet address to determine the device identifier and the location of the wireless communication device, process the location to select a plurality of output ports of the packet router, and broadcast the data packet over the plurality of output ports.

12. The system of claim 11 wherein the packet router serves an area including the location.

13. The system of claim 11 wherein the packet router configured to broadcast the data packet over the plurality of output ports comprises the packet router configured to wirelessly propagate the data packet over the plurality of output ports.

14. The system of claim 11 wherein each output port of the plurality of output ports communicates using a different wireless protocol of a plurality of wireless protocols.

15. The system of claim 11 wherein the device identifier comprises a media access control address.

16. The system of claim 15 further comprising the wireless communication device configured to identify the media access control address in the data packet, and receive the data packet based on the media access control address.

17. The system of claim 11 wherein the location is identified by a global positioning system range.

18. The system of claim 11 wherein the packet router configured to process the location to select a plurality of output ports of the packet router comprises the packet router configured to determine a velocity of the wireless communication device, and determine if the velocity of the wireless communication device exceeds a threshold.

19. The system of claim 18 wherein the packet router configured to broadcast the data packet over the plurality of output ports comprises the packet router configured to broadcast the data packet using the plurality of output ports of the packet router if the packet router serves an area including the location and if the velocity of the wireless communication device exceeds the threshold.

20. A method of operating a communication system, the method comprising:
in a wireless communication device, transmitting a packet address, a media access control address, and a location of the wireless communication device for delivery to a database in a communication network;
in a packet router, receiving a data packet with a destination address of the packet address assigned to the wireless communication device, and querying the database with the packet address to determine the media access control address and the location of the wireless communication device;
in the packet router, processing the location to select a plurality of output ports of the packet router, wherein each output port of the plurality of output ports communicates using a different wireless protocol of a plurality of wireless protocols;
in the packet router, broadcasting the data packet over the plurality of output ports; and
in the wireless communication device, identifying the media access control address in the data packet, and receiving the data packet based on the media access control address.