Systems and methods of configuring a layer-2 switch for multicast filtering

Systems and methods for reducing multicast IP packet bandwidth in a local area network carrying Internet protocol television (IPTV) traffic are disclosed. One embodiment of a system comprises: a layer-2 switch; a slave digital home communication terminal (DHCT); and a master DHCT. The layer-2 switch has a control channel and a plurality of data ports. The slave DHCT is coupled to a first data port of the plurality. The master DHCT is coupled to the layer-2 switch control channel. The master DHCT comprises logic for requesting the layer-2 switch, over the control channel, operate in a first configuration. In the first configuration, the layer-2 switch associates a layer-2 multicast address with the first data port, examines layer-2 multicast packets, and forwards the examined layer-2 multicast packets on the first data port only if the layer-2 destination address is the first layer-2 multicast address.

CROSS REFERENCE TO RELATED APPLICATIONS

Not applicable.

FIELD OF THE DISCLOSURE

The present disclosure relates to switches in a data network, and more specifically, to systems and methods for configuring switches in a data network.

BACKGROUND

A growing number of consumers now have high-speed, or broadband, connections to the Internet in their homes. The increased bandwidth provided by these broadband connections allows the delivery of digital television and/or video services to home consumers. One such technology for delivering digital television or video services uses the Internet Protocol (IP) as a transport mechanism. This technology is referred to as IP television, or IPTV.

IPTV makes use of a feature called “IP multicast” when delivering the same stream of television or video programming to a group of subscribers. The IP packets in the stream have the same IP destination address, which is a special type of address called a multicast address. All devices in the IP multicast group receive packets sent to that multicast address.

This use of multicast is much more efficient than sending unicast packets (addressed to each individual device in the group). However, the use of multicast addressing can lead to network performance problems in the home when a local area network (LAN) is used to deliver programming to multiple set-top boxes. Under some conditions, the result is that the viewer sees errors or artifacts in the video frames, or the stream freezes, or even that the set-top becomes unresponsive. Thus, a need arises for these and other problems to be addressed.

DETAILED DESCRIPTION

The embodiments disclosed herein provide systems and methods for configuring a layer-2 switch for multicast filtering in an IPTV environment. One such embodiment includes two set-tops, each coupled to a layer-2 switch and receiving IP multicast traffic through the switch. One set-top, the master, is coupled to a control channel on the switch; the other set-top, the slave, is not. The master set-top requests, on behalf of the slave set-top, the switch to operate in a multicast configuration in which IP multicast traffic destined for the slave set-top is forwarded only on the switch port to which the slave is coupled, rather than being forwarded on all switch ports.

With this switch configuration, the only multicast traffic received by the slave set-top is traffic specifically directed to the slave's multicast address. Without this configuration, multicast packets not directed to the slave's own address would be received and then discarded. This is a waste of set-top processing resources and can interfere with the process of decoding the video stream that is presented to the user.

FIG. 1is a block diagram of an environment in which one embodiment of a system and method for configuring a layer-2 switch for multicast filtering is located. System100delivers digital television and/or video services to subscribers using the Internet Protocol (IP). System100comprises: one or more broadcast sources110; one or more broadcast encoders120; a broadcast multiplexer130; an IP network140; a broadband connection150; a customer local area network (LAN)160; and multiple digital home communication terminals (DHCT)170.

Broadcast sources110, such as cable networks or on-air television stations, provide television or video programming. Broadcast encoders120take as input an analog signal digital stream from broadcast source110, and output a stream that is compressed and formatted. Broadcast multiplexer130multiplexes encoded broadcast streams into a single stream.

The stream is transmitted through IP network140, then over broadband connection150to customer LAN160. The stream is then received by DHCTs170, which convert the stream of IP packets into a standard analog or digital video signal. One of the DHCTs170is a master DHCT170M and includes master IP multicast configuration logic180, which implements one of the systems and methods of configuring a layer-2 switch for multicast filtering disclosed herein. The other DHCTs170B are slaves, relying on the master DHCT170M to configure the switch within LAN160.

In some embodiments, a DHCT170also provides interactive features, such as an electronic program guide (EPG), Web browser, and DVR (digital video recorder) functionality. In some embodiments, DHCT170takes the form of a set-top box. In others, DHCT170is implemented by a personal computer (PC).

DHCT170supplies the video signal to a display (not shown) for viewing by the customer. In one embodiment, the display is a television. In another embodiment, the display is a computer monitor. In some embodiments, LAN160also includes other devices, such as a PC190.

FIG. 2is a block diagram showing further details of LAN160fromFIG. 1. Master DIICT170M and slave DHCT170S reside in LAN160. Each is coupled to a data port on switch230. Master DHCT170M is, in addition, electrically coupled to switch230through control channel360, which will be discussed further below in connection withFIG. 3. Slave DHCT170S is not coupled to switch230through control channel360.

LAN160is in communication with IP network140(FIG. 1) through broadband connection150. More specifically, packets traveling over broadband connection150, including video IP packets, are received by a modem210. These packets use a physical layer (layer-1) format which is specific to broadband connection150. Examples of broadband connection150include digital subscriber line (DSL) and hybrid fiber coaxial (HFC) cable. Modem210converts the physical layer of these packets to use a different physical layer, that of LAN160.

The packets are then passed to a layer-3 forwarding device220, which examines the network, or Layer-3, header of the received packets. Layer-3 forwarding device220uses the network destination address in the network header to decide which packets should be forwarded to devices on LAN160. Layer-3 forwarding device220is also known as a router or Layer-3 switch. In some embodiments, router220is combined with modem210in a device commonly known as a DSL router.

Router220is coupled to Layer-2 forwarding device230, also called a Layer-2 switch or a bridge. Packets destined for DHCT170M and DHCT170S exit router220and enter switch230, which examines the media access control (MAC), or Layer-2, header of the packets. Switch230uses the MAC destination address in the MAC header to decide which port the packet will be forwarded on. (One of ordinary skill in the art should understand how a Layer-2 forwarding device learns which MAC addresses are associated with which ports, by examining MAC source addresses as packets enter the device.) Because each DHCT170is coupled to one switch port, this fowarding decision also determines which device(s) on LAN160receive the forwarded packet. Switch230is a Layer-2 device, and does not make forwarding decisions based on information contained in higher layers such as the network layer.

In the embodiments discussed herein, Ethernet is used as Layer-2 and IP is used as Layer-3. However, one of ordinary skill in the art should understand that the same principles can be applied to other Layer-2 and Layer-3 implementations. In one embodiment, master DHCT170M, slave DHCT170S, and switch230are combined into a single device.

FIG. 3is a block diagram showing further details of the switch230and master DHCT170M. Packets enter and exit switch230through at least two data ports310coupled to a physical medium320. A forwarding engine330examines the Ethernet destination address in the Ethernet header of a received packet to decide which port310the packet will exit (called the egress port). More specifically, forwarding engine330looks up the Ethernet destination address in a forwarding table340, which returns the identifier of the egress port310. In some embodiments, forwarding engine330is implemented by a switching fabric and a network controller, and forwarding table340is implemented by a content addressable memory (CAM).

Configuration logic350allows some behaviors of switch230to be configured by another device, through a control channel360. In some embodiments, configuration logic350is implemented by a set of registers. Control channel360may be implemented, for example, by a local bus (e.g., inter-integrated circuit (I2C) bus, peripheral component interconnect (PCI) bus).

Master DHCT170M is coupled to control channel360, but slave DUCT170S is not, such that master DHCT170M is capable of configuring switch230but slave DHCT170S is not. Slave DHCT170S instead relies on master DHCT170M to act as a switch configuration proxy, sending to master DHCT170M configuration parameters including a multicast address that the slave DHCT170S wishes to receive packets for, and an identifier of the port (310S) to which slave DHCT170S is coupled.

In response, master IP multicast configuration logic180in master DHCT170M transmits a request over the control channel360for switch230to configure a multicast egress filter370on behalf of slave DHCT170S. More specifically, master DHCT170M instructs configuration logic350in switch230to set up multicast egress filter370so that those packets having a multicast address matching the configuration parameter are forwarded only on the port that is specified by the configuration parameter. (Multicast egress filtering will be discussed in further detail in connection withFIG. 4.)

Note that multicast egress filtering on behalf of slave DHCT170S prevents multicast packets destined for slave DHCT170S from being forwarded on other ports (here, port310X). Thus, multicast egress filtering on behalf of slave DHCT170S benefits other DHCTs (here, master DHCT170M and another slave DHCT170X). Without this configuration mode, switch230forwards multicast packets directed to slave DHCT170S on all ports310, forcing master DHCT170M and DHCT170X to receive and then discard those multicast packets which are not directed to them. This discard procedure is an inefficient use of device and network resources.

In the embodiment ofFIG. 3, master IP multicast configuration logic180determines the configuration parameters for the multicast filter (i.e., the identifier of the data port to which slave DHCT170S is coupled, and the slave multicast address) by communicating with IP multicast logic380in slave DHCT170S. This information is exchanged over a management channel390between master DHCT170M and slave DHCT170S which can be implemented, for example, by exchanging Ethernet packets that conform to some sort of multicast management protocol. Another method of determining slave port number and address will be discussed in connection withFIG. 7.

FIG. 4shows further details of multicast egress filter370. Multicast egress filter370is associated with a multicast address (410), and with a Pass/Block behavior (420) for each port310. When a multicast egress filter370is enabled, incoming multicast packets are compared against the associated address410before egress, and when a multicast packet matches the address410, the packet is forwarded on the port310only if the port behavior is Pass. When multicast egress filter370is not enabled, multicast packets are forwarded on all ports310. In some embodiments, switch230has more than one multicast egress filter370.

In the example embodiment ofFIG. 4, filter address410is a key value for the forwarding table340, and the resulting lookup data (also known as a resultant) is a port bitmask specifying Pass/Block behavior420. For example, a resultant of 01101 specifies that ports0,2and3are Pass and ports1and4are Block. One of ordinary skill in the art should understand that other implementations of multicast egress filter370are possible, and all such are contemplated here.

Multicast egress filter370is a perfect filter, meaning that only packets with exact address matches will be passed. In embodiments where the filter address is stored in forwarding table340, this means that the number of bits in the table entry is at least as large as the number of bits in a multicast address. For Ethernet multicast, this is 48 bits.

Perfect filtering in switch230is especially important when the MAC layer of the DHCT contains an imperfect multicast filter for received packets. An imperfect filter matches only on a subset of the destination multicast address, and passes any packets in the matching subset on to the driver software. The driver software then tests the destination address of each of these possible matches against a full MAC address, and passes up to the IP stack any packets that match the full address. Those packets that do not match the full address are discarded. Although the application layer software (for example, a video decoder) is not aware of these improperly received packets, valuable processing resources are utilized discarding the packets.

FIG. 5is a data flow diagram illustrating the flow of IP multicast packets through switch230, using one of the systems and methods of configuring a layer-2 switch for multicast filtering described herein. Slave DHCT170S sends a request510to local router220to join the IP multicast group, specified by a IP multicast address. Master DHCT170M maps IP multicast address to an Ethernet multicast address, in this example address Y. (The Internet standard for IP Multicast, RFC 1121, describes the procedure for mapping from an IP multicast address to an Ethernet multicast address.)

Master DHCT170M configures (520) switch230with a multicast egress filter for slave port310S using the mapped Ethernet multicast address Y. Switch230responds to the configuration request by storing (530) Ethernet multicast address Y as the egress filter address410, and setting (540) the port behavior420for slave port310S to Pass, and the port behavior for all other ports to Block.

In this example embodiment, switch configuration logic350set the identified port's behavior to Pass, and the others to Block. In another implementation, the filter configuration data allows the requester to specify multiple port identifiers, and behaviors for each. In yet another implementation, the port associated with the multicast egress filter370filter is identified by a unicast Ethernet address rather than a port identifier, and switch230determines which port is associated with that unicast MAC address. (One of ordinary skill in the art should understand how the switch learns which unicast MAC addresses are associated with which ports.)

In alternative embodiment, the default behaviour is that all multicast traffic on all ports is set to block, then enable multicast egress is enabled on a per transaction basis. Note that more than one egress port may be configured to pass a given multicast address.

At some point after this egress filter configuration is applied, switch230receives (550) IP multicast packet560through network-side port310N. Forwarding engine330extracts the Ethernet destination address570from packet560, and uses forwarding table340to determine the egress port for packet560. In this example scenario, the egress port is310S, since the Ethernet destination address570corresponds to slave DHCT170S.

When operating in a mode in which an egress filter is enabled, forwarding engine330takes the following actions before forwarding packet560out an egress port310. Forwarding engine330determines that Ethernet destination address570is a multicast address. In response to this determination, forwarding engine330checks multicast egress filter370, and further determines that Ethernet destination address570matches egress filter address410. Forwarding engine330then examines the behavior setting for the port associated with multicast egress filter370. In this example scenario, the associated port is port310S and the port behavior specifies Pass, so forwarding engine330transmits580packet560on port310S.

FIG. 6is a data flow diagram illustrating the flow of IP multicast packets through LAN160, using one of the systems and methods of configuring a layer-2 switch for multicast filtering described herein. In this example, the devices on LAN160include master DHCT170M and slave DHCT170S, each of which receives a stream of IPTV multicast packets and displays the decoded video stream on a TV610.

To reduce the bandwidth of packets received by each DHCT, master DHCT170M configures (620) the multicast egress filter370on switch230to forward multicast packets requested by a slave DHCT170S—here, those directed to multicast address 1.E.244.0.0.3.—to the port (310S) associated with that slave's unicast address, and to forward multicast packets requested by the master DHCT170M on the port (310M) associated with the master DHCT170M unicast address. As a result, multicast traffic on the link (630) to slave DHCT170S includes those multicast packets that are sent to the multicast address specified by the slave (1.E.244.0.0.3) but not the master's multicast address (1.E.0.0.0.2). Similarly, multicast traffic on the link (640) to master DHCT170M includes the master's multicast address (1.E.253.0.0.2) but not the slave's multicast address (1.E.253.0.0.3).

When slave DHCT170S receives packets on its registered multicast address (1.E.244.0.0.3), the packets are processed as follows. The network interface (NIC)590receives the packet off the physical medium and notifies NIC driver5100that an incoming packet has arrived. NIC driver5100passes the received multicast packet on to IP stack5110. The packet is then passed on to video application5120, which decodes the packet stream to produce a video signal, which is supplied to TV610.

In some embodiments, NIC590also includes an imperfect multicast filter (not shown), which can be enabled as an ingress filter on received multicast packets. The imperfect multicast filter can be implemented, for example, by a combination of a CAM and a hash table. The imperfect filter has less than the full number of address bits, so that more than one multicast address will match the filter.

FIG. 7illustrates another embodiment of a system and method for configuring a layer-2 switch for multicast filtering, in which master IP multicast configuration logic180obtains multicast address and port information from slave DHCT170S in an indirect manner. An IPTV program source710advertises to DHCTs170the availability of an IPTV program stream, using a service discovery and subscription (SD&S) protocol. Here, the advertisement720is shown traveling on logical channels to master DHCT170M and slave DHCT170S, respectively. In one embodiment, each advertisement720includes a list of services (e.g., FOX, ABC, ESPN) and IP multicast addresses on which each service can be received. In addition, the advertisements themselves are typically delivered on a well-known IP multicast address which is monitored by DHCTs170. The details of the advertisement process should be understood by one of ordinary skill in the art, and will not be discussed in further detail.

After receiving advertisement720, a slave DHCT170S elects to receive the program stream associated with one of the advertised services by responding sending an Internet Group Multicast Protocol (IGMP) Report packet730to the IP multicast address of the service (contained in advertisement720). The IGMP Report is also known as an IGMP Join Request. Source710delivers the stream of IPTV packets to the service multicast address, which are then received by slave DHCT170S.

Master DHCT170M uses the following process to program switch230so that the stream of IPTV packets is forwarded only on port310S. Master DHCT170M listens on the well-known SD&S multicast address, so that all advertisements are received. Master DHCT170M extracts the IP multicast addresses for these services, and listens for packets on each of these service addresses. In one embodiment, listening on an IP multicast address involves registering the service address with the IP stack and/or NIC driver. In this manner, master DHCT170M receives both the advertisement720and the IGMP Join730.

From IGMP Join730, master DHCT170M extracts the IP multicast address (here, 253.0.0.2) on which slave DHCT170S receives the IPTV packet stream. Master DHCT170M maps the extracted IP multicast address to a corresponding Layer-2 multicast address (1.E.253.0.0.2). A person of ordinary skill in the art should understand that both extracted IP multicast address and the mapped Layer-2 address represent addresses on which slave DHCT170S receives IPTV traffic.

Master DHCT170M then uses the Layer-2 multicast address associated with the slave DHCT170S through the IGMP Join730, and an identifier of the port to which slave DHCT170S is attached, to build a switch configuration request. In one embodiment, master DHCT170M sets the port identifier configuration parameter is set to the Layer-2 unicast address from which the IGMP Join730was sent. (A person of ordinary skill in the art should understand how switch230maps the Ethernet unicast address of an attached device to the port through which the device is attached.) In another embodiment, master DHCT170M sets the port identifier configuration parameter to the Layer-2 unicast address assigned to slave DHCT170S, which slave DHCT170S provides to master DHCT170M by through management channel390. In yet another embodiment, master DHCT170M sets the port identifier configuration parameter to a port identifier which slave DHCT170S provides to master DHCT170M by through management channel390.

The switch configuration request is sent (740) to switch230. As explained earlier in connection withFIGS. 3-5, switch230responds to the configuration request by setting up multicast egress filter370so that the behavior of port310S is to pass, or allow egress of, packets directed to the requested multicast address, and the behavior of the other port310X is to block egress of these same packets. The result is that switch230forwards IPTV packet stream only on port310S, that is, only to slave DHCT170S.

In this example scenario, another slave DHCT170X sends an IGMP Join750to the same multicast address (here, 253.0.0.1). Master DHCT170M sends another switch configuration request760containing this same IP multicast address and the Ethernet unicast address of slave DHCT170X. As explained earlier, switch230responds to a second configuration request for the same multicast address by setting the behavior for the additional port310X to Pass instead of Block. Thus, multicast traffic to this address (here, 253.0.0.1) is forwarded on multiple ports.

In some embodiments, slave DHCT170S stops receiving an IPTV stream by sending an IGMP Leave request to the registered multicast address. In such embodiments, master DHCT170M, which also receives the IGMP Leave, responds by configuring switch230to set the behavior of310S to Block rather than Pass. When switch230detects that the final port having a Pass behavior is being changed to Block (signifying that no more ports are interested in that multicast address), switch230disables multicast egress filter370and returns to default behavior, which is to block that multicast address on all ports.

FIG. 8is a block diagram showing selected components of master DHCT170M. Master DHCT170M comprises: a network interface810; an peripheral I/O interface820; an display system830; a decoder840; a processor850; and memory860. These components are coupled by a bus875. Peripheral I/O interface820provides input and output signals, for example, user inputs from a remote control or front panel buttons or a keyboard, and outputs such as LEDs or LCD on the front panel. Network interface810receives a stream of IPTV packets. Decoder840decodes the video packets encapsulated within the IPTV packets into a stream of decoded frames. Display system830converts the frames into a video signal for display by a computer monitor or a television.

Memory860contains instructions that are executed by processor850to control operations of DHCT170. Residing in memory860are master IP multicast configuration logic180, NIC driver5100, IP stack5110and video application5120. Omitted fromFIG. 8are a number of conventional components, known to those skilled in the art, that are unnecessary to explain the operation of the systems and methods of configuring a layer-2 switch for multicast filtering disclosed herein.

Any process descriptions or blocks in flowcharts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. As would be understood by those of ordinary skill in the art of the software development, alternate implementations are also included within the scope of the disclosure. In these alternate implementations, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.

The systems and methods disclosed herein can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device. Such instruction execution systems include any computer-based system, processor-containing system, or other system that can fetch and execute the instructions from the instruction execution system. In the context of this disclosure, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system. The computer readable medium can be, for example but not limited to, a system or propagation medium that is based on electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology.

Specific examples of a computer-readable medium using electronic technology would include (but are not limited to) the following: an electrical connection (electronic) having one or more wires; a random access memory (RAM); a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory). A specific example using magnetic technology includes (but is not limited to) a portable computer diskette. Specific examples using optical technology include (but are not limited to) an optical fiber and a portable compact disk read-only memory (CD-ROM).

The foregoing description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The implementations discussed, however, were chosen and described to illustrate the principles of the disclosure and its practical application to thereby enable one of ordinary skill in the art to utilize the disclosure in various implementations and with various modifications as are suited to the particular use contemplated. All such modifications and variation are within the scope of the disclosure as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.