A DEVICE AND METHOD FOR MULTICASTING PACKETS IN A
SUBSCRIBER NETWORK
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of the provisional patent application filed on September 10, 2004, and assigned application number 60/608803.
FIELD OF THE INVENTION
[0002] The present invention relates to a delivery of information in a communication network, and more particularly to a delivery of a multicast packet of information in a subscriber network.
BACKGROUND OF INVENTION
[0003] Multicasting is widely used in communication networks to provide data, such as television (TV) video streams, toward multiple subscribers. A hierarchical configuration of routers is used to facilitate multicasting by having a multicast router that is coupled to a multicast traffic source send data toward subsequent multicast routers. The multicast traffic source is any suitable device that provides traffic to the multicast router. "Traffic" refers to a packet, message, data streams, or other suitable forms of data. Subsequent multicast routers are routers capable of multicasting and that are coupled to a subscriber device that has requested the data. This is repeated in the network until the data reaches a terminal device.
[0004] In the subscriber network, the traffic from a communication network is routed toward a terminal device based on the type of traffic. At a subscriber's premises, such as an office or home, a gateway routes Internet Protocol (IP) packets from the communication network towards devices in the subscriber network. The devices in the subscriber network communicate between each other using IP packets and Ethernet frames. This is also known as "bridging" where packets are transparent between each other on the subscriber network as well as the internal interface to the gateway function. Multicast packets are forwarded toward all the devices in the subscriber network because
the packets have a multicast destination address. This is in contrast to a unicast packet having a destination address for a single device, wherein the unicast packet is forwarded toward the single device.
[0005] There is a need for an improvement on multicasting in a subscriber network. Hereinafter, the term "multicast router" includes subsequent multicast router.
SUMMARY OF INVENTION
[0006] In one aspect of the invention, an intelligent multicast device for use in a subscriber network comprising a modified network layer, a volatile memory device, and an over- subscription mechanism. The modified network layer communicates to a communication network over a communication link and receives a group multicast packet for a multicast group from the communication network The volatile memory device having a membership list and a provisioned subscription level. The volatile memory device in the modified network layer. The over- subscription mechanism selected from the group consisting of a fast leave and a session limit on a proxy interface, the over- subscription mechanism for generally avoiding subscribing to more multicast groups than provided by a provisioned subscription level.
[0007] In another aspect of the invention, an intelligent multicast device for use in a subscriber network comprising a modified network layer, a volatile memory device, and an intelligent bridge is provided. The modified network layer communicates to a communication network over a communication link and receives a group multicast packet for a multicast group from the communication network. The volatile memory device has a port identifier identifying a subscribed port and a group identifier identifying the multicast group. The intelligent bridge forwards the group multicast packet to the subscribed port identified by the port identifier.
[0008] In another aspect of the invention, a method for an over-subscription mechanism in a subscriber network is provided. The method comprising providing an over- subscription mechanism that generally avoids over- subscription on a subscriber network, and providing a first port and a subscribed port in a device in the subscriber network, the first port coupled to a first device and the subscribed port coupled to a
subscribed device.
[0009] In yet another aspect of the invention, a method of multicasting for a packet received from a communication network is provided. The method comprising providing a first port coupled to a first device and a second port coupled to a second device, detecting a subscribe group request for a multicast group from the first port, storing data in a table, the table having a port identifier identifying the first port and a group identifier that identifies the multicast group, selectively forwarding a packet received via the communication link.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above mentioned and other concepts of the present invention will now be described with reference to the drawings of the exemplary and preferred embodiments of the present invention. The drawings contain the following figures, in which like numbers refer to like parts throughout the description and drawings wherein:
Figure 1 is an exemplary prior art schematic diagram of a subscriber network; Figure 2 is an exemplary schematic diagram of a subscriber network in accordance with the present invention; Figure 3 is an exemplary table layout for storing multicast subscriptions in accordance with the present invention; Figure 4 is an exemplary flow diagram of an update table portion of a selective forward in accordance with the present invention; Figure 5 is an exemplary flow diagram of a forwarding portion of a selective forwarding in accordance with the present invention; Figure 6 is an exemplary flow diagram of a notification to an intelligent bridge from a modified IP layer of a group membership removal in accordance with the present invention; Figure 7 is an exemplary flow diagram for a fast leave to avoid an over- subscription in accordance with the present invention; Figure 8 is an exemplary flow diagram for a session limit on proxy interface to avoid an over- subscription in accordance with the present invention; and
Figure 9 is an exemplary flow diagram of a group query timeout part for a session limit on proxy interface in accordance with the present invention.
DETAILED DESCRIPTION OF INVENTION
[0011] The invention described herein may employ one or more of the following concepts. For example, one concept relates to an intelligent multicast device where a packet is not simply forwarded toward all ports but is forwarded toward a port having a device that is active in a multicast group. Another concept relates to an intelligent bridge that keeps track of the ports having a device that has requested a packet. Another concept relates to an intelligent bridge that monitors communication from a port to detect subscribe and unsubscribe requests. Another concept relates to a device sending a query response when the device is not a member of a multicast group. Yet another concept relates to an over- subscription mechanism to avoid allowing a specific number of multicast subscriptions beyond a provisioned threshold.
[0012] The present invention is disclosed in context of a multicast in a Digital Subscriber Line (DSL) modem. The principles of the invention, however, are not limited to use within a DSL modem but may be applied to other devices capable of multicasting toward a physical port, such as a cable modem or wireless modem. While the present invention is disclosed in terms of an IP, other network layer protocols of the Open Systems Interconnection (OSI) model may be used to send packets of data in a network. The present invention is disclosed in terms of Internet Group Management Protocol (IGMP) allowing an end user device to subscribe to or unsubscribe from a multicast service. For example, an IGMP join is used by a device to subscribe to receive a multicast service and an IGMP leave is used by the device to unsubscribe from the multicast service. However, protocols other than IGMP may be used by an end user device to subscribe to or unsubscribe from a multicast service. Also, other protocols other than IGMP may be used to query a device to determine if the device is subscribed to a multicast group. Additionally, while the present invention is described in context of the DSL modem having a modified IP layer and an intelligent bridge, the modified IP layer and intelligent bridge may be in separate devices. Furthermore, while the present invention is described in terms of subscribing to an IP Television (IPTV), other multicast
services that allow a subscription to a multicast group and use multicasting may be used, such as audio or video services other than IPTV.
[0013] Referring to Figure 1, an exemplary prior art schematic diagram of a subscriber network 10 having a communication link 28, a DSL modem 12, and a plurality of devices 20, 22 that are coupled to the DSL modem 12 via physical ports 30 is shown. The term "coupled" refers to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The term "communication link" refers to any system that suitably supports communication between coupled network elements such as wireless, wireline, electrical, optical and combinations thereof, and the like.
[0014] The subscriber network 10 may be any network having a device of an end user, wherein the end user device is capable of originating a request to subscribe to a multicast service. For example, a data processing unit such as a personal computer 22, a Set Top Box (STB) that decodes video streams for a coupled television (TV), or a TV 20 capable of decoding video streams. Although the end user device originates the request, the resulting traffic might not terminate at the end user device. For example, a STB that is coupled to a TV may originate the request and decode the traffic received; however, the decoded traffic is forwarded and subsequently displayed on the TV. The last device to receive the traffic, such as the TV, is referred to as the "terminal device".
[0015] The DSL modem 12 includes an IP layer 14 and a bridge 18. The bridge 18 uses a data- link layer of the OSI model and is coupled to the ports 30 and to the IP layer 14. The bridge 18 learns an address, such as a Media Access Control (MAC) address, of the device 20, 22 that is coupled to the port 30 to facilitate forwarding unicast packets toward the correct port. The bridge 18, however, floods the ports 30 with multicast packets by forwarding multicast packets towards all of the ports 30. The terms "toward" and "towards" refers to sending traffic from a sending point to a receiving point either directly or indirectly and wherein the sending point does not have to originate the traffic and wherein the traffic does not have to end at the receiving point. The IP layer 14 has membership tables 16 used in multicasting and the IP layer 14 is coupled to the communication network via a communication link 28. The communication network is
"upstream" and the device 20, 22 is "downstream" to the DSL modem 12.
[0016] When an end user prefers to receive channel 2 on TV 20(a), the TV 20(a) requests to receive channel 2 by sending an IGMP join request toward the DSL modem 12. Although in this example, the end user is a person, the end user may be a signal or a device that can communicate to the device. The IGMP join request is for a multicast group address. The multicast group address maps to a multicast service to which the device is subscribing, in this example the channel to be received. Sending the IGMP join allows the end user device to subscribe to a multicast group to receive the multicast service. For this example, TV 20(a) becomes a subscribed device to a multicast group to receive channel 2. The port that received the IGMP join is a subscribing port, for example port 30(a) is a subscribing port to the multicast group to receive channel 2. The term "subscribed device" refers to a device (20, 22) that is active in a multicast group and the term "subscribed port" refers to the port (30) that is coupled to subscribed device.
[0017] The IP layer 14 uses the IGMP join request to store information in the membership list 16 and informs the communication network via the communication link 28 of the request by sending a proxy IGMP join request. A proxy request is a request that appears to have originated from the device that "proxies" the request. In this example, the DSL modem 12 proxies the IGMP join request by using the IP address of the DSL modem 12 so that proxy IGMP join request sent by the DSL modem appears to have originated by the DSL modem 12 instead of the TV 20(a). The proxy IGMP join request allows multicast routers that are upstream to the DSL modem 12 to learn about subscription information.
[0018] After receiving a multicast packet for channel 2 from the communication link 28, the bridge 18 forwards the packet to every port because the packet has a multicast destination address. Therefore TV 20(b), and data processing units 22(a), 22(b) all receive the packet even though it was not requested because the bridge function must do so because the packet destination address uses a multicast address. Forwarding to every port regardless of subscription unnecessarily increases bandwidth usage and may cause congestion on subscriber network 10, resulting in loss and/or unacceptable delay of packets, and a degradation in the quality and integrity of the video streams and other
packet traffic transmitted in the subscriber network 10.
[0019] This problem is compounded if an end user then desires to receive channel 3 on TV 20(b). The requests and packets are handled in the same manner as the foregoing description for channel 2 on TV 20(a). However, now the bridge 18 is broadcasting packets for channel 2 and channel 3 to ports 30.
[0020] If the end user for TV 20(a) then decides to receive channel 5 instead of channel 2 on TV 20(a), the TV 20(a) requests to leave channel 2 and receive channel 5 by sending an IGMP leave request and an IGMP join request. The IGMP leave request allows the TV 20(a) to unsubscribe from the multicast service and quit receiving packets for channel 2. The IP layer 14 may update the membership list 16 based on the requests. Additionally, the IP layer 14 sends a proxy IGMP leave request for channel 2 and a proxy IGMP join request for channel 5 to communication network via the communication link 28. The leave request causes TV 20(a) to no longer be a subscribed device to channel 2 and the port 30(a) to no longer be a subscribed port to channel 2.
[0021] The communication network will process the join request without delay; however, there may be a delay by communication network to process the leave. This delay is caused by the upstream-multicast routers trying to determine if a leave request stops the forwarding of the packets for a multicast group downstream to another multicast router or the subscriber network 10. For this example, the communication network may send an IGMP query request to its downstream devices to determine if there are any subscribed devices to channel 2. The DSL modem 12 may receive on the communication link 28 packets for channel 2 in addition to receiving packets for channels 3, and 5 until the query is processed.
[0022] Referring now to Figure 2, an exemplary schematic diagram of a subscriber network 10 of the present invention is provided. The subscriber network 10 includes a DSL modem 24 and a plurality of devices 20, 22 that are coupled to the DSL modem 24 via physical ports 30. The ports 30 may be any type of port capable of allowing communication between the DSL modem 24 and the device 20, 22. For example the port 30 may be Ethernet, USB, cable, powerline (HomePlug), or wireless.
[0023] The DSL modem 24 includes a modified IP layer 32 and an intelligent bridge
34. The intelligent bridge 34 uses the data- link layer of the OSI model, and monitors as well as uses multicast group information used in multicasting. The intelligent bridge 34 is coupled to the ports 30 and the modified IP layer 32. The intelligent bridge 34 includes a volatile memory device 39 having a table 38 for storing subscriber information. The table 38 is described below in further detail.
[0024] The modified IP layer 32 is coupled to the communication network via a communication link 28 and is adapted to include functionalities of the upstream-multicast router. The modified IP layer 32 includes a memory device 41 that comprises membership list 16, a session limit 19, a current session count 21, and a queue 23. The membership list 16, the session limit 19, the current session count 21, and the queue 23 may be stored in memory segments of a volatile memory device as illustrated by Figure 2, in separate volatile memory devices or combinations thereof. The session limit 19 may, however, be stored in a nonvolatile memory device. The membership list 16, the session limit 19, the current session count 21, and the queue 23 are described below in further detail.
[0025] Although Figure 2 depicts a single device coupled to a single port, such as TV 20(a) coupled to port 30(a), multiple devices may be coupled to the port. Additionally, the DSL modem 24 may have more or fewer ports 30 than illustrated.
[0026] When an end user prefers to receive channel 2 on TV 20(a), the TV 20(a) requests to receive channel 2 by sending an IGMP join request to the DSL modem 24. The intelligent bridge 34 monitors traffic from the ports 30 and after an IGMP join request is detected, the intelligent bridge 34 uses the request to store information in the table 38. The IGMP join request is forwarded to the modified IP layer 32. The modified IP layer 32 updates its membership list 16 and sends a proxy IGMP join request to the communication network via the communication link 28.
[0027] After receiving a multicast packet for channel 2 from the communication link 28, the intelligent bridge 34 uses the table 38 to determine subscribed ports for channel 2. In this example, the intelligent bridge 34 determines that port 30(a) is the subscribed port for channel 2 and forwards the packet to the port 30(a). "Selective forward" refers to forwarding the multicast packet to the subscribed port. This is in contrast the DSL
modem 12 in Figure 1, wherein the ports 30 are flooded with the multicast packet, thus unnecessarily increasing bandwidth.
[0028] If an end user for TV 20(b) also desires to receive channel 2 on TV 20(b) the TV 20(b) subscribes as explained above. For this example, channel 2 is already being received by TV 20(a) so it is desirable that the join is not sent upstream because is not required because it was already sent when TV 20(a) joined. However, after the multicast packet for channel 2 is received by the DSL modem 24, the intelligent bridge 34 determines via the table 38 that ports 30(a) and 30(b) are subscribed ports for channel 2 and forwards the packet to ports 30(a) and 30(b).
[0029] If an end user for TV 20(b) desires to receive channel 7 on TV 20(b) instead of channel 2, the TV 20(b) requests to leave channel 2 and receive channel 7 by sending an IGMP leave request and an IGMP join request. The modified IP layer 32 may send proxy IGMP requests over the communication link 28 based on the requests received over the port 30(b). However, as described in the example for Figure 1, a delay may occur in the leave by the communication network. In one embodiment, the DSL modem 24 has a fast leave as described in more detail below.
[0030] Referring now to Figure 3, an exemplary table layout for storing multicast subscriptions to facilitate the subscription determination in accordance with the present invention is provided. The table 38 has a group record 100 that may comprise a group identifier 102, a subscriber list 104, and fast-forwarding list 106. The table 38 may comprise of an array of the group records 100. The group identifier 102 may be any suitable value used to identify the multicast group to which a device has subscribed. For example an IP address of the multicast group may be used as a group identifier 102. The subscriber list 104 provides a list of devices that are subscribed to the multicast group. The fast-forwarding list 106 provides a mechanism to quickly determine ports 30 having devices that are subscribed to the multicast group. In the exemplary illustration of Figure 3, the subscriber list is a pointer to a subscriber record 110 and the fast-forwarding list 106 is a pointer to a port record 120.
[0031] The subscriber record 110 may comprise a device identifier 112, port identifier 114, and next subscriber 116. The device identifier 112 identifies the subscribed
device. For example, a MAC address may be used to identify the subscribed device. The port identifier 114 identifies the subscribed port. The next subscriber 116 indicates the next subscriber record 110 having a subscribed device to the multicast group or indicates the end of the subscriber list. In the illustrated example, the next subscriber 116 is a pointer wherein the next subscriber 116(b) for subscriber record 110(b) points to subscriber record 110(a) and the next subscriber 116(a) indicates end of the subscriber list.
[0032] The port record 120 may comprise a port identifier 124 and a next port 125. The port identifier 124, like the port identifier 114, identifies the subscribed port. The next port 125 is a pointer to a next port record 120 in the fast-forwarding list 106. In the illustrated example the next port 125(b) for port record 120(b) points to port record 120(a) and the next port 125(a) indicates end of the subscriber list.
[0033] Although the port identifier 114 included in the subscriber record 110, and the port identifier 124 included in the port record 120 are redundant, it is advantageous to have a separate fast forward list 106 since multiple devices 20, 22 may subscribe to the same multicast group on the same port 30. If this occurs, it is possible that multiple subscriber records 110 will have the same port identifier 114. However, the fast- forwarding list 106 advantageously would only represent the subscribed port once to reduce the time to process the subscribed ports. If the fast-forwarding list 106 is not included, the subscriber record 110 could be traversed, preferably ignoring duplicate subscribed ports, to determine the port identifier 114 of the ports to forward the record. Conversely, the subscriber record 110 may be excluded for any number of reasons, such as in the case that a port 30 is adapted to only be coupled to a single device 20, 22.
[0034] Figure 3 illustrates 3 group records 100 and a group record 100 having 2 subscriber records 110 and 2 port records 120. Those skilled in the art would appreciate that there may be more or less subscriber records 110 as well as more or less port records 120 associated with a group record 100. Additionally, those skilled in the art would appreciate that there may be more or less group records 100 than what was illustrated in Figure 3.
[0035] Subsequent flow charts are described in terms of the exemplary table 38
illustrated in Figure 3. However, those skilled in the art would recognize that the table 38 might be represented using other data structure formats having more or less fields, records and combinations thereof than illustrated in Figure 3. For example, arrays may be used instead of link lists thus eliminating the need for the pointer in the link list. For another example, the fast- forwarding list 106 may be represented using a bit map representing the ports thus eliminating the port record 120. Records and individual fields may be statically defined or dynamically allocated.
[0036] Now referring to Figures 2, 3 and 4, an exemplary flow diagram of an update table portion 314(a) of the selective forward 314 in accordance to the present invention is provided. "Updating" a record means modifying the contents of an existing record or removing an existing record and creating a new record. "Removing" a record means modifying the record to make the record a spare record and may include deleting the record, such as deleting the record from memory. "Creating" a record means modifying the record so that the record is no longer a spare record and may include adding the record, such as adding the record to memory.
[0037] The intelligent bridge 34 monitors the communication received from a port 30 to determine if the packet is an "IGMP join request" 142 or an "IGMP leave request" 156. The intelligent bridge 34 advantageously updates the table 38 with the monitored information to facilitate selective forward 314.
[0038] In the event that the communication is an IGMP join request, a check if a "subscriber belongs to the group" 144 is made. If a group record 100 does not exist for the multicast group or if by traversing the subscriber list 104 in the group record 100, the device identifier identifying the subscribing device is not represented in a device identifier 112 then the subscriber does not belong to the group. Otherwise, the subscriber belongs to the group. "Subscribing device" refers to the device (20, 22) subscribing to the multicast group. If the subscriber does not belong to the group, an "include device in group" 150 to represent the IGMP join request is done. The include of the device may comprise creating the group record 100 if the group record 100 does not exist for the group as well as creating a subscriber record 110 using a device identifier identifying the subscribing device and using a port identifier identifying a subscribing port. "Subscribing
port" refers to a port (30) coupled to the subscribing device". If the subscriber device belongs to the group, a check to determine if the "port changed" 146 is made. The port changed if the port identifier 114 in the subscriber record 110 does not represent the port identifier identifying the subscribing port. If the port has changed an "update port in group" 148 is made by changing the port identifier 114 in the subscriber record 110 to the port identifier identifying the subscribing port. If the port has changed or if the subscriber does not belong to the group a "port identifier in fast forwarding" 152 check is made. The port identifier is in fast forwarding if the fast-forwarding list 106 includes the subscribing port as a port identifier 124 in the group record 100. If the subscribing port is not in the fast-forwarding list 106 for the group record 100 an "include port identifier in fast forwarding" 154 is done by including the port identifier representing the subscribing port to the fast-forwarding list 106. The include of the port identifier 120 may comprise creating the port record 120.
[0039] In the case that the communication is an IGMP leave request, a check if a "subscriber belongs to the group" 158 is made. If a group record 100 does not exist for the multicast group or if by traversing the subscriber list 104 in the group record 100 the device identifier identifying the subscribed device is not represented in a device identifier 112 then the subscriber does not belong to the group. Otherwise, the subscriber belongs to the group. If the subscriber belongs to the group a "remove device from group" 160 is done by removing the subscriber record 110 that represents the IGMP join request from the subscriber list 104 of the group record 100. The remove of the subscriber record 110 may include a remove of the group record 100 if the subscriber list 104 is empty. After the remove of the subscriber record, a check to determine if there are "more subscribed device(s) for the same port" 162 is made. There is another subscribed device if subscriber record 110 having the port identifier identifying the subscribed port exists in the subscriber list 104 of the group record 100. If another subscribed device does not exist, a "remove port identifier from fast forwarding" 164 is done by removing the port record 120 for the subscriber port from the fast-forwarding list 106 of the group record 100.
[0040] Referring now to Figures 2, 3, and 5, a flow diagram of a forwarding portion 314(b) of a selective forwarding in accordance with the present invention is provided.
After a packet is received from the communication network via the communication link 28, the packet is sent to the intelligent bridge 34. The packet is checked to see if the packet is a "group multicast packet" 200. A group multicast packet 200 is associated with a multicast group that a subscriber belongs to in order to receive that packet. The group multicast packet is identified as such using a unique multicast address in the packet header. An "all multicast packet" is a packet that should be forwarded toward all of the ports 30. For example, Universal Plug and Play UPnP packets. A "unicast packet is a packet that is forwarded toward a single device. If the packet is not a group multicast packet, then a "perform normal packet forwarding" 202 is done. A normal packet forwarding includes forwarding of the all multicast packet and the unicast packet.
[0041] If the packet is the group multicast packet, a check if "subscriber exists for the group" 204 is done. If a group record 100 does not exist for the multicast group or the fast-forwarding list is empty or the subscriber list is empty then a subscriber does not exist in the group; otherwise, a subscriber does exist in the group. If a subscriber exists in the group a "forward of the packet to each subscribed port in the group" 208 is done. This advantageously selectively forwards the group multicast packet to the subscribed ports in contrast to flooding all of the ports with the group multicast packet; and preferably forwards the packet only to the subscribed ports.
[0042] Referring now to Figures 2, 3, and 6, a flow diagram of a notification to the intelligent bridge 34 from the modified IP layer 32 of a group membership removal in accordance with the present invention is provided. It may be possible that the intelligent bridge 34 does not receive the IGMP leave so that the subscribed device is not removed from the group. For example, the device 22, 24 may be powered down prior to sending the request. The communication network periodically sends a IGMP query request having a multicast group to each subnet to monitor the subscription information in the communication network After receiving the IGMP query request, the DSL modem 24 sends the IGMP query request toward a port 30 to check if the device is still subscribed to the group. In a preferred embodiment the IGMP query request is sent to the port 30 subscribed to the multicast group as to not flood the ports 30 with the IGMP query request. This may be done using the selective forwarding described above for Figure 5.
The IGMP query request, however, may be flooded to the ports.
[0043] A subscriber exists in the group if a device (20, 22) responds to the IGMP query request indicating that the device (20, 22) is in the multicast group. In a preferred embodiment the device (20, 22) sends a response indicating the device (20, 22) is not subscribed to the multicast group and the DSL modem 24 processes the response. This is in contrast to typical processing wherein the device (20, 22) does not send a response when the device (20, 22) is not subscribed to the multicast group and after a time the DSL modem 24 determines the device (20, 22) is not a subscriber to the multicast group. The intelligent bridge 34 responds to IGMP query request.
[0044] In one embodiment, the intelligent bridge 34 receives a notification of a group membership removal based on the IGMP query response informing the intelligent bridge 34 that the membership needs to be removed. The intelligent bridge 34 determines if "a subscriber exists in the group" 300 as described above. If a subscriber exists a "remove of the subscriber" 302 is done. The remove may be done by deleting the group record 100 and the records associated with the group record 100. In an alternative embodiment, the intelligent bridge 34 may update the table based upon the IGMP query response instead of waiting for a notification of a group membership removal.
[0045] Referring now to Figures 2, 3, and 7 a flow diagram to avoid over¬ subscription is provided. Over- subscription occurs when the DSL modem 24 has subscribed to more multicast groups than provided by a provisioned subscription level. The provisioned subscription level may, for example, be based to avoid degrading traffic, on a service grade wherein different service grade have different billing levels, or based on a performance level.
[0046] The term "completely" avoiding means that the DSL modem 24 prevents an over-subscription. The term "substantially" avoiding means that the DSL modem allows an over- subscription up through a 30% increase over a provisioned subscription level. The term "generally" avoiding modem allows an over- subscription up through a 100% over a provisioned subscription level.
[0047] One method to avoid over- subscription 311 is to use a fast leave mechanism 31 l(a). After the modified IP layer 32 receives an IGMP leave request from the
intelligent bridge 34, the modified IP layer 32 sends an IGMP query request to the intelligent bridge 34 and holds off sending a proxy IGMP leave request to the communication network via the communication link 28. This is in contrast to the typical behavior, referring to Figure 1, wherein the IP layer 14 sends a proxy IGMP leave request to the communication network immediately, and without sending an IGMP query request to the bridge 18.
[0048] After receiving the IGMP query request, the intelligent bridge 34 determines if a "subscriber exists for the group" 308. The intelligent bridge may determine if a subscriber exists for the group by checking the table 38 as described above for Figure 5 or by sending queries to the ports as described above for Figure 6, or by a combination thereof. If a "subscriber exists for the group" 308 the intelligent bridge 34 returns with a "yes response" 310 if clients exist and a "no response" 312 if clients do not exist. If the modified IP layer 32 receives a no for the response to the IGMP query request, the modified IP layer 32 subsequently sends a proxy IGMP leave request indicating the group membership may be cancelled to the communication network via the communication link 28. This facilitates a "fast leave" by not waiting for the communication network to send an IGMP query request to determine if a subscriber exists for the group. Advantageously, the fast leave may make changes in a subscription, for example changing a channel, faster to enhance the channel surfing experience.
[0049] Now referring now to Figures 2, 3, and 8 another exemplary flow diagram to avoid over- subscription is provided. The DSL modem 24 may use a "session limit on proxy interface" 311(b) to limit the number of sessions to avoid over-subscription. The DSL modem 24 may include a session limit 19 is the provisioned subscription level, a current session count 21 that indicates the number of group subscriptions currently handled by the DSL modem 24, a queue 23 for queuing a subscription request if a session limit 19 has been reached, and a group active list for storing group identifiers for groups to which a device 20, 22 is subscriber. A session is the same as a group membership on the proxy interface. For example, subscribing to channel 3 by TV 20(a) and TV 20(b) represents one session whereas subscribing to channel 3 by TV 20(a) and channel 5 by TV20 (b) represents two sessions. "Group subscription" refers to a subscription to a
multicast group.
[0050] If the modified IP layer 32 detects an IGMP join request, the modified IP layer 32 determines if the "group is in active list" 320. If the group is not active, the queue 23 is checked to determine if the "group is in the queue" 322. If the group is not in the queue, the current session count 21 is compared to the session limit 19. If the current session count 21 is less than the session limit 19 then a "session is available" 324. If the session is available, the "current session count is incremented by 1" 326, an IGMP "join proxy sent" 328, and the "active list is updated" 330 to include the group identifier for the group. However, if the session is unavailable, the IGMP "join request is added to the queue" 334, a "query is sent for each active group" 336 towards the devices 20, 22 and "response timer is started for each active group" 338. The response timer is for limiting the time the devices 20, 22 have to respond in case of such things as a lost packet as well as other situations. When the "query is sent for each active group" 336, the query request is preferably selectively forwarded to a subscribed device as previously described. However, the query request may be forwarded toward all of the ports (30). The response timer is described in more detail below.
[0051] A separate active list may not be necessary, for example if the modified IP layer 32 has access to table 38, the IP layer 32 could consult the group record 100 to determine if a group was active. Additionally, a single response timer may be used instead of one per group.
[0052] Now referring now to Figures 2, 3, and 9 an exemplary flow diagram of a group query timeout part 311(c) for the session limit 19 on proxy interface is provided. If the response timer, described by Figure 7, expires then the devices 20, 22 have not responded to the query in the time allotted; the table 38 may be updated to remove a group record associated with the group timeout; in the modified IP layer 32 a "remove the group identifier from the active list" 350, and a "decrement the current session count by 1" 352 is made. Additionally, if the "group is in the queue" 354, the modified IP layer 32 does a "dequeue request" 356 to dequeue the associated IGMP join request, an "increment the current session count by 1" 358, a "send proxy IGMP join request" 360 based on the dequeued request, and an "add the group identifier to the active list" 362.
[0053] A preferred embodiment includes the selective forwarding 314, the fast leave 311(a), and the session limit on a proxy interface 311(b), 311(c). However, another embodiment may include the selective forwarding 314 without an over subscription mechanism 311. Likewise, another embodiment may have an over subscription mechanism 311 without the selective forwarding 314. Additionally, an embodiment may include the fast leave 311(a) with out the session limit on a proxy interface 311(b). Conversely, an embodiment may include the session limit on a proxy interface 311(b) without the fast leave 311(a).
[0054] Although Figure 2 shows a single communication link 28 between the communication network and the DSL modem 24, it would be recognized by those skilled in the art that multiple communication links may exist, the communication links having a logical connection between the communication network and the DSL modem 24. Furthermore, it would be appreciated that having multiple communication links would allow traffic separation. For example, a first communication link could be used for packet delivery, a second communication link for sending subscription requests, and a third communication link for sending query request.
[0055] The invention may be embodied in many different forms and may be applied to many different types of networks, protocols, and protocol versions and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Thus, the scope of the invention should be determined based upon the appended claims and their legal equivalents, rather than the specific embodiments described above.