Abstract:
A method includes subsequent to a client associating with a first access node and the client being communicatively coupled with a first controller through the first access node: storing information on one or more of: active broadcast sessions for the client or active multicast sessions for the client. The method further includes subsequent to the client associating with a second access node and the client being communicatively coupled with a second controller through the second access node: the second controller establishing one or more of: the active broadcast sessions for the client or the active multicast sessions for the client using the information.

Description:
BENEFIT CLAIM; INCORPORATION BY REFERENCE 
       [0001]    This application claims priority as a Continuation of application Ser. No. 12/429,983 filed on Apr. 24, 2009, the contents of which are hereby incorporated by reference. 
         [0002]    The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advice the USPTO that the claims in this application may be broader than any claim in the parent application(s). 
     
    
     BACKGROUND OF THE INVENTION 
       [0003]    The present invention relates to wireless systems, and in particular, to the problem of synchronizing multicast data streams to mobile clients in the wireless environment. 
         [0004]    Modern wireless systems operating under IEEE 802.11 standards are called upon to support a wide range of clients operating over a wide range of data rates, using different modulation types, and different protocols. 
         [0005]    The users of these networks see, or desire to see a set of services, available on demand, wherever they are. They expect these services to operate reliably, and continue to operate as they move, for example, from one area to another in an office environment, or from one building or floor to another in a corporate campus. 
         [0006]    Broadcast/multicast (BCMC) traffic in an 802.11 wireless network belongs to a single broadcast domain, such as one or more wireless access nodes connected to a controller. This BCMC traffic cannot be leaked or shared across multiple different domains. This BCMC traffic is usually managed according through the well known Internet Group Management Protocol (IGMP) as defined for example in RFC 1112 (IGMP V1), RFC 2236 (IGMP V2) and RFC 3376 (IGMP V3), each incorporated herein by reference. 
         [0007]    When a mobile client crosses a Layer 3 (L3) boundary, for example moving from an area covered by one controller and its wireless access nodes to an area covered by a different controller and its wireless access nodes, existing protocols allow the wireless client to retain its IP address. 
         [0008]    But the BCMC traffic to and from the client is restricted to a single broadcast domain. When the mobile client crosses a L3 boundary, these BCMC sessions are dropped until the client rejoins these BCMC sessions. 
         [0009]    What is needed is a way to maintain multicast membership and sessions as wireless clients move across boundaries. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    The invention may be best understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention in which: 
           [0011]      FIG. 1  shows a wireless 802.11 network. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    Embodiments of the invention relate to methods of synchronizing mobile client multicast membership in wireless data networks. According to an aspect of the invention, a controller supports one or more wireless access nodes, the access nodes supporting wireless clients. A Mobility Manager (MM) in the controller monitors the activity of the wireless clients. When a wireless client attempts to join a multicast group using an IGMP multicast join, an IGMP proxy in the controller intercepts these IGMP control messages, joining the multicast group for the client, and establishing itself as the client&#39;s home agent (HA). This activity is tracked by the Mobility Manager. Subsequent IGMP messages from that or other clients on the controller are handled by the IGMP proxy acting on their behalf, and are also tracked by the Mobility Manager. The IGMP proxy in the controller performs joins and acts as a host for each BCMC client of its wireless access nodes. 
         [0013]    When a client moves from its home agent (HA) controller to a foreign agent (FA) controller, downstream multicast traffic for the client is still received by the IGMP proxy at the HA. The Mobility Manager in the FA contacts the Mobility Manager in the HA and receives information on any active multicast traffic associated with the client; the Mobility Manger in the FA then establishes those multicast connections for the client through its own IGMP proxy, which forwards the multicast streams to the client. 
         [0014]    As shown in  FIG. 1 , a wireless network operating according to 802.11 standards supports connections of wireless clients  400  to a wired network. Wired network  100 , such as a wired IEEE 802.3 Ethernet network, is connected to layer 3 router  150 , which supports controllers  200   a,    200   b.  Controllers  200  support connections  250  to access nodes  300   a,    300   b,    300   c.  These access nodes provide wireless communications to wireless clients such as wireless client  400 . 
         [0015]    As is understood in the art, controllers  200  are a purpose-built digital devices having a CPU  210 , memory hierarchy  220 , and a plurality of network interfaces  230 ,  240 . CPU  210  may be a MIPS-class processor from companies such as Raza Microelectronics or Cavium Networks, although CPUs from companies such as Intel, AMD, IBM, Freescale, or the like may also be used. Memory hierarchy  220  includes read-only memory for device startup and initialization, high-speed read-write memory such as DRAM for containing programs and data during operation, and bulk memory such as hard disk or compact flash for permanent file storage of programs and data. Network interface  230  is typically an IEEE 802.3 Ethernet interface to copper, although high-speed optical fiber interfaces may also be used. Controller  200  typically operates under the control of purpose-built embedded software, typically running under a Linux operating system, or an operating system for embedded devices such as VXWorks. Network interface  240  is typically a wireless interface operating under IEEE 802.11 standards. 
         [0016]    Similarly, as understood by the art, wireless access nodes  300   a,    300   b  and  300   c,  are also purpose-built digital devices. These access nodes include CPU  310 , memory hierarchy  320 , wired interface  330 , and wireless interface  340 . As with controller  200 , the CPU commonly used for such access nodes is a MIPS-class CPU such as one from Raza Microelectronics or Cavium Networks, although processors from other vendors such as Intel, AMD, Freescale, and IBM may be used. The memory hierarchy comprises read-only storage for device startup and initialization, fast read-write storage such as DRAM for holding operating programs and data, and permanent bulk file storage such as compact flash. Wireless access nodes  300  typically operate under control of purpose-built programs running on an embedded operating system such as Linux or VXWorks. Wireless interface  340  is typically an interface operating to the family of IEEE 802.11 standards including but not limited to 802.11a, b, g, and/or n. 
         [0017]    Wireless client  400  is also a digital device, similarly having CPU  410 , memory hierarchy  420 , wireless interface  430 , and I/O devices  440 . As examples, wireless device  500  may be a general purpose computer such as a laptop, or may be a purpose-built device such as a Wi-Fi phone or a handheld scanner. In a general-purpose computer, CPU  410  may be a processor from companies such as Intel, AMD, Freescale, or the like. In the case of purpose-built devices, Acorn or MIPS class processors may be preferred. Memory hierarchy  420  comprises the similar set of read-only memory for device startup and initialization, fast read-write memory for device operation and holding programs and data during execution, and permanent bulk file storage using devices such as flash, compact flash, and/or hard disks. Additional I/O devices  440  may be present, such as keyboards, displays, speakers, barcode scanners, and the like. 
         [0018]    According to an aspect of the invention, Mobility Manager (MM)  270  operates in controller  200   a,  monitoring the activity of connected wireless clients. Assuming client  400  is connected to controller  200   a  through access node  300   a,  when wireless client  400  issues an IGMP control message, this IGMP control message is intercepted by controller  200   a.  If an IGMP proxy process  250  does not exist on controller  200   a,  one is started. This IGMP Proxy  250  will trap and handle all IGMP messages from wireless clients of controller  200   a,  and act in their behalf. 
         [0019]    As an example, if client  400  sends an IGMP join to join a multicast, IGMP Proxy  250  on controller  200   a  will trap this request, and then send its own IGMP join request upstream, joining the multicast as a proxy for client  400 . The IGMP Proxy on controller  200   a  can act as a host for other wireless clients wishing to join the same (or a different) multicast. 
         [0020]    The activity of IGMP Proxy  250  is monitored by Mobility Manager  270 . As is understood by the art, this may be through the use of shared data structures or other software methods whereby Mobility Manager  270  tracks the activities of client  400  including any activity of client  400  through IGMP proxy  250 . It is understood that Mobility Manager  270  is a software process running in controller  200 . Mobility Manager  270  may be written in any number of different computer languages such as C or C++, depending on the implementation requirements of the other software components of the controller. 
         [0021]    If client  400  moves to a different wireless access node and controller, for example controller  200   b  through access node  300   c,  downstream unicast traffic for client  400  will be forwarded to client  400  through the new controller  200   b.  Multicast traffic, however, is not forwarded. 
         [0022]    According to an aspect of the invention, when client  400  roams from home agent (HA) controller  200   a  to foreign agent (FA) controller  200   b,  the Mobility Manager  270  in FA controller  200   b  sends queries to Mobility Managers  270  in all controllers  200  in its mobility domain to determine the HA controller for client  400 . When the Mobility Manager  270  in controller  200   a  identifies itself as the HA for client  400 , the Mobility Manager  270  in HA controller  200   a  sends information to Mobility Manager  270  in FA controller  200   b,  including information on any open IGMP multicasts being handled for client  400  through the IGMP proxy  250  in HA  200   a.  Mobility Manager  270  in FA controller  200   b  then uses this information with its own IGMP proxy to join the required multicasts and send the multicast traffic to client  400 . 
         [0023]    This process is facilitated by having the IGMP proxy  250  in each controller  200  keep multicast databases of the clients  400  it serves and sharing this information with the Mobility Manager in the controller. When a client roams from its home agent to a foreign agent, the Mobility Manager in the foreign agent locates the home agent and receives information from the Mobility Manager in the home agent, including information on active multicast streams for the client. 
         [0024]    While the invention has been described in terms of various embodiments, the invention should not be limited to only those embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is this to be regarded as illustrative rather than limiting.