# Patent

## Title
Programmable interconnect system for scalable router

## Abstract

The invention provides a chassis, a scalable router that includes a plurality of chassis and a method of upgrading a router. Each chassis includes a plurality of processing modules and a programmable interconnection module. Data connections are provided between each processing module on each chassis and the interconnection module on that chassis, and a data connection is provided between the interconnection module on each chassis and the interconnection module on at least one other chassis. In this way, the inter-chassis and intra-chassis connections pass through the programmable interconnection module, which may be used for concentrating the location of resources, such as opto-electronic and electro-optical converters, in a single card or unit. Moreover, the programmable nature of the switch fabric in each interconnection module is amenable to reconfiguration so as to support a change in that chassis' interconnection pattern that may be required for expanding the router's capacity.

## Background
FIELD OF THE INVENTION
The present invention relates to internetworking routers and, more particularly, to high-capacity routers having multiple interconnected chassis.
BACKGROUND OF THE INVENTION
Ever-increasing usage of the Internet is expected to lead to even higher demands on the capacity of Internet routers than those which already persist today. However, the rate of growth of traffic through a given Web site or traffic point in the Internet may vary considerably amongst different Internet Service Providers (ISPs). In some cases, the growth may be sudden and staggering, requiring huge increases in capacity on an almost instantaneous basis. In other cases, an anticipated increase in capacity might still be some time away, although a router with a basic switching capacity may need to be purchased immediately in order to satisfy an existing demand.
A conventional approach to upgrading the routing capacity through a given traffic point is to simply replace the existing router with a new, higher-capacity device. The old router is either decommissioned or relegated to a less traffic-intensive area of the ISP's internal network. Unfortunately, this approach requires a significant capital expenditure on the part of the ISP, since higher-capacity routers tend to be disproportionately more expensive than lower-capacity routers. Moreover, a capital expenditure of this nature is necessitated each time a capacity increase is required or desired. Additional disadvantages include the “down time” associated with installation of a new router, testing of new connections, changing suppliers and so on.
Clearly, it would be advantageous to provide a scalable solution to the problem of accommodating traffic growth through a router. However, as now described, conventional router design makes this a near impossible feat. Specifically, a scalable router typically has two or more chassis, each of which contains multiple switch cards and line cards. The line cards have ports for interfacing with an external network. Internally to the router, the switch cards are connected to the line cards and to one another by a backplane on each chassis, and by direct interconnections across multiple chassis.
In order to enhance the available switching capacity of the router, it may appear plausible to add one or more extra chassis but it should also be apparent that these additional chassis must somehow be connected to the existing chassis. As a result, existing hardware connections, both within and between he existing chassis, must be disconnected and then re-connected according to a different inter-chassis topology and a different intra-chassis interconnect pattern. Thus, while avoiding part of the capital expenditure associated with an outright replacement of the existing router, the conventional solution has the disadvantage of requiring added installation and testing efforts, both of which are labour-intensive and prone to error.
Hence, there remains a strong need in the industry to provide a scalable router that would be designed to accommodate changes in capacity without requiring replacement or disconnection of the existing inter-chassis or intra-chassis connection hardware.
SUMMARY OF THE INVENTION
The present invention endeavours to obviate or mitigate one or more disadvantages of the prior art and may be summarized according to a first broad aspect as a router that includes a plurality of chassis, each chassis including a plurality of processing modules and a programmable interconnection module. Data connections are provided between each processing module on each chassis and the interconnection module on that chassis, and a data connection is provided between the interconnection module on each chassis and the interconnection module on at least one other chassis.
In one specific embodiment, the data connections between the processing modules on each chassis and the interconnection module on that chassis are electrical and the data connections between the interconnection modules on different chassis are optical.
In another specific embodiment, the interconnection module on each chassis includes a plurality of electrical input ports, a plurality of electrical output ports and a programmable switch fabric disposed therebetween, for providing selective connections between individual ones of the electrical input ports and corresponding ones of the electrical output ports. Additionally, each processing module on each chassis includes a plurality of electrical input ports, a plurality of electrical output ports and a processing fabric disposed therebetween. Moreover, the plurality of electrical input ports of each processing module on each chassis is connected to a respective subset of the electrical output ports of the interconnection module on that chassis, while the plurality of electrical output ports of each processing module on each chassis is connected to a respective subset of the electrical input ports of the interconnection module on that chassis.
In this way, the inter-chassis and intra-chassis connections pass through the programmable interconnection module, which may be used for concentrating the location of resources, such as opto-electronic and electro-optical converters, in a single card or unit. Moreover, the programmable nature of the switch fabric in each interconnection module is amenable to reconfiguration so as to support a change in that chassis' interconnection pattern that may be required for expanding the router's capacity.
According to a second broad aspect, the present invention may be summarized as a chassis for use in building a scalable router. The chassis includes a plurality of processing modules, each processing module including a plurality of electrical input ports, a plurality of electrical output ports and a processing fabric disposed therebetween. The chassis also includes a programmable interconnection module, including a plurality of electrical input ports, a plurality of electrical output ports and a programmable switch fabric disposed therebetween, for selectively establishing connections between individual ones of the electrical input ports and corresponding ones of the electrical output ports in accordance with a connection map.
A data connection is established between each processing module and the interconnection module, whereby a subset of the plurality of electrical input ports of each processing module on each chassis is connected to a respective subset of the electrical output ports of the interconnection module on that chassis and whereby a subset of the plurality of electrical output ports of each processing module on each chassis is connected to a respective subset of the electrical input ports of the interconnection module on that chassis.
The chassis additionally includes a plurality of optical input ports and a plurality of optical output ports, for external connection to one or more other chassis of the router. The chassis also has a plurality of optical-to-electrical conversion units, each optical-to-electrical conversion unit being connected between a respective one of the optical input ports and a respective subset of the electrical input ports of the interconnection module. Finally, the chassis includes a plurality of electrical-to-optical conversion units, each electrical-to-optical conversion unit being connected between a respective subset of the electrical output ports of the interconnection module and a respective one of the optical output ports.
According to a third broad aspect, the present invention may be summarized as a method of upgrading a router including a plurality of original chassis, each original chassis having a plurality of processing modules and a programmable interconnection module, wherein a data connection exists between each processing module on each original chassis and the interconnection module on the same original chassis and wherein a data connection exists between the interconnection module on each original chassis and the interconnection module on at least one other original chassis. The method includes providing at least one additional chassis, each additional chassis comprising a plurality of processing modules and a programmable interconnection module, wherein a data connection exists between each processing module on each additional chassis and the interconnection module on the same additional chassis. The method then includes establishing a data connection between the interconnection module on each additional chassis and the interconnection module on at least one original chassis, and establishing a data connection between the interconnection module on each additional chassis and the interconnection module on at least one other additional chassis. Finally, the interconnection modules of the various original chassis are reprogrammed. The interconnection modules of the various additional chassis can be programmed prior to, or after, their connection to the original chassis.
These and other aspects and features of the present invention will now become apparent to those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
In the accompanying drawings:
FIG. 1 depicts an interconnect pattern existing within a chassis in accordance with an embodiment of the present invention;
FIG. 2 illustrates an example of the internal structure of an interconnection module in the chassis of FIG. 1;
FIG. 3A shows a possible inter-chassis topology for building a router from two chassis;
FIG. 3B shows a possible intra-chassis interconnection pattern for each of the chassis of FIG. 3A;
FIG. 4A shows a possible inter-chassis topology for building a router from three chassis;
FIG. 4B shows a possible intra-chassis interconnection pattern for each of the chassis of FIG. 4A;
FIG. 5A shows a possible inter-chassis topology for building a router from six chassis;
FIG. 5B shows a possible intra-chassis interconnection pattern for each of the chassis of FIG. 5A; and
FIG. 6 illustrates, in schematic form, a router made up of a set of “clusters” of chassis.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
With reference to FIG. 1, there is shown a chassis (shelf) 100, and more specifically a data interconnect pattern within the chassis 100, according to an embodiment of the present invention. Two or more chassis 100 of the type shown in FIG. 1 may be used to build a router, in a manner to be described later on with reference to FIGS. 3A through 5B. The chassis 100 includes a plurality of line cards 110 for interfacing with an external network 120, a plurality of processing cards 130 for providing processing and switching power, and an interconnection module 140.
The line cards 110 provide an optical or electrical interface to the network 120. Data in the form of packets (or ATM cells or SONET frames or the like) are exchanged with the network 120 via the line cards 110. In a specific non-limiting example embodiment, the line cards 110 may be implemented as disclosed in U.S. patent application Ser. No. 09/870,766 to Norman et al., filed on Jun. 1, 2001 and hereby incorporated by reference herein. In the embodiment illustrated in FIG. 1, the line cards 110 are equipped with bi-directional functionality. In other embodiments, some of the line cards 110 may be input line cards (for receiving packets from the network 120), while other ones of the line cards 110 may be output line cards (for transmitting packets to the network 120).
The total number of line cards 110 in the illustrated embodiment is sixteen, each of which may be inserted into a corresponding slot (not shown) of the chassis 100. The sixteen line cards 110 are grouped into two sets denoted more precisely as 1100,0-1100,7 (set 0) and 1101,0-1101,7 (set 1). Each of the line cards 110 has a set of ports used for establishing one or more full-duplex electrical paths with a corresponding one of the processing cards 130. By way of example, each of the line cards 110 may have four ports for establishing two full-duplex 2.5 Gbps (in each direction) electrical paths with a corresponding one of the processing cards 130. It should be understood, however, that the present invention is not limited to a specific number of line cards 110 or to a specific number of ports or paths per line card or to a specific path bandwidth.
The total number of processing cards 130 in the chassis 100 of the illustrated embodiment is four, each of which may be inserted into a corresponding slot (not shown) of the chassis 100. The four processing cards 130 include a set of two first-stage processing cards (denoted 1300,0 and 1300,1) and a set of two second-stage processing cards (denoted 1301,0 and 1301,1). Each of the first-stage processing cards includes a set of line-side ports for establishing sixteen full-duplex electrical paths L with a corresponding set of the line cards 110. Each of the first- and second-stage processing cards 130 includes a set of switch-side ports for establishing either sixteen (first-stage) or thirty-two (second-stage) full-duplex electrical paths P with the interconnection module 140.
As shown in FIG. 1, the line-side ports of each of the first- and second-stage processing cards 130 include a set of line-side input ports 132 and a set of line-side output ports 134. Similarly, the switch-side ports of each of the first- and second-stage processing cards 130 include a set of switch-side input ports 136 and a set of switch-side output ports 138. Additionally, each of the first- and second-stage processing cards 130 has a a processing fabric 135, such as a switch fabric, connected between the input ports 132, 136 and the output ports 134, 138. In a specific non-limiting example embodiment, the processing cards 130 may be implemented as disclosed in U.S. patent application Ser. No. 09/870,766 to Norman et al., filed on Jun. 1, 2001 and hereby incorporated by reference herein.
The paths L joining the line cards 110 and the processing cards 130 may be established through the use of a backplane or midplane configuration. In the illustrated embodiment, these paths are denoted L0-L31, where, for the line cards 1100,0 to 1100,7 in set 0, paths L0-L1 are established between line card 1100,0 and processing card 1300,0, paths L2-L3 are established between line card 1100,1 and processing card 1300,0, paths L4-L5 are established between line card 1100,2 and processing card 1300,0, paths L6-L7 are established between line card 1100,3 and processing card 1300,0, paths L8-L9 are established between line card 1100,4 and processing card 1300,0, paths L10-L11 are established between line card 1100,5 and processing card 1300,0, paths L12-L13 are established between line card 1100,6 and processing card 1300,0 and paths L14-L15 are established between line card 1100,7 and processing card 1300,0. A similar interconnect pattern joins the line cards 1101,0 to 1101,7 in set 1 to processing card 1300,1.
The paths P joining the processing cards 130 to the interconnection module 140 may also be established through the use of a backplane or midplane configuration. In the illustrated embodiment, there are ninety-six such paths and these are denoted P0-P95, where paths P0-P31 are established between processing card 1301,0 and the interconnection module 140, paths P32-P63 are established between processing card 1301,1 and the interconnection module 140, paths P64-P79 are established between processing card 1300,0 and the interconnection module 140 and paths P80-P95 are established between processing card 1300,1 and the interconnection module 140.
Due to the fact that all first- and second-stage processing cards 130 are connected to the interconnection module 140, data arriving from the network 120 can be processed by one or several processing cards 130 in sequence. For example, data can be routed back into the network 120 after reaching one of the first-stage processing cards 1300,0, 1300,1 or it can be forwarded to one of the second-stage processing cards 1301,0, 1301,1 via the interconnection module 140. In another embodiment of the invention, the entire set of line cards 110 could be connected to the entire set of processing cards 130, obviating a need for the distinction between “first-stage” and “second-stage” processing cards. Although the processing cards 130 are shown in FIG. 1 to be mutually non-interconnected, those skilled in the art should appreciate that it is within the scope of the present invention to provide additional data paths between pairs of processing cards 130. This may be advantageous when implementing a hypercube-based interconnect pattern, for example.
It should be understood that the present invention is not limited to any particular number of processing cards 130, nor to any particular number of stages of processing cards 130, nor to any particular number of line-side ports or switch-side ports per processing card 130, nor to any particular interconnection pattern between the processing cards 130 and the interconnection module 140, nor to any particular implementation for achieving a connection between the processing cards 130 and either the line cards 110 or the interconnection module 140.
The interconnection module 140 may be a separate card in the chassis 100 and includes a plurality of switch-side ports that establish paths P0-P95 with the switch-side ports of the processing cards 130. The interconnection module 140 further includes a plurality of optical ports A, B, C, D for establishing a plurality of full-duplex optical paths with the external world (i.e., with optical ports of other chassis of the router, to be described later on with reference to FIGS. 3A to 5B). In the illustrated embodiment, optical port A establishes 32 optical paths denoted A0-A31, optical port B establishes 24 optical paths denoted B0-B23, optical port C establishes 24 optical paths denoted C0-C23, and optical port D establishes 32 optical paths denoted D0-D31. However, it is to be understood that the present invention limits neither the number of optical ports nor the number of paths per optical port.
The internal structure and functionality of the interconnection module 140 are now described with reference to FIG. 2. Paths P0-P95, which join the interconnection module 140 to the processing cards 130, are connected to electrical interfaces of a programmable switch fabric 200. More specifically, since each of the ninety-six paths P0-P95 is full-duplex, they are connected to ninety-six input electrical interfaces (denoted IN0-IN95) and ninety-six output electrical interfaces (denoted OUT0-OUT95) of the switch fabric 200.
In addition, a set of 112 additional input electrical interfaces (denoted IN96-IN207) lead from the optical ports A, B, C, D via a bank of opto-electronic receivers 210, while a set of 112 additional output electrical interfaces (denoted OUT96-OUT207) lead to the optical ports A, B, C, D via a bank of electro-optical transmitters 220. More specifically, electrical interfaces IN96-IN127 and OUT96-OUT127 are associated with optical paths A0-A31, electrical interfaces IN128-IN151 and OUT128-OUT151 are associated with optical paths B0-B23, electrical interfaces IN152-IN175 and OUT152-OUT175 are associated with optical paths C0-C23, and electrical interfaces IN176-IN207 and OUT176-OUT207 are associated with optical paths D0-D31.
Thus, by virtue of its input electrical interfaces IN0-IN207, the switch fabric 200 can be on the receiving end of up to a total of 96 electrical data signals from the processing cards 130 and a further 112 electrical data signals from other chassis (via the optical ports A, B, C, D), for a total of 208 received electrical signals. Similarly, by virtue of its output electrical interfaces OUT0-OUT207, the switch fabric 200 can transmit up to a total of 96 electrical data signals to the processing cards 130 and a further 112 electrical data paths to other chassis (via the optical ports A, B, C, D), for a total of 208 transmitted electrical signals.
In order to accommodate the switching requirement of the switch fabric 200, the latter may be implemented as a single, non-blocking cross-point switch matrix of the requisite size (208×208). This would allow any of the electrical paths P0-P95 to be connected to any of the optical paths A0-A31, B0-B23, C0-C23, and D0-D31. However, it is noted that not all of the electrical signals received from the opto-electronic receivers 210 will need to be relayed to the processing cards 130. Rather, some of these may need to be immediately re-routed back to the optical ports via the electro-optical transmitters 220. Similarly, some of the electrical signals received from the processing cards 130 will need to be immediately re-routed back to the processing cards 130, although possibly to a different processing card than the one it originated from. Both of these types of immediate re-routing functionality can be referred to as “loopback” functionality.
As a result of this requirement for some degree of loopback functionality, the switch fabric 200 can be constructed from two or more interconnected cross-point switches of smaller dimensionality, as illustrated in FIG. 2. Specifically, switch 230 takes care of switching a subset of 96 electrical signals (from the processing cards 130 to the external world), while switch 240 takes care of switching a subset of 112 electrical signals (from the external world to the processing cards 130). Loopback functionality is made possible through an interconnection of a relatively small number of connections, in this case twenty-eight (28), between the two cross-point switches 230, 240.
Hence, the requisite functionality of a massive 208×208 switch fabric 200 can be attained using one 124×124 switch matrix (where 124=96+28) and one 140×140 switch matrix (where 140=112+28). In some circumstances, it may be advantageous to over-provision slightly and use two identical switch matrices, which in this case translates into a requirement for two 140×140 cross-point switch matrices. Cross-point switches of this magnitude are available from Velio Semiconductor Corp. as part number VC 3003. Of course, other variations are possible, especially with respect to the number of input and output ports on each of the cross-point switches 230, 240 and the number of intra-fabric connections provided for loopback purposes. It should be appreciated that signal conditioning functionality (e.g., regeneration and re-timing) may additionally be provided within the switch fabric 200 or in connection therewith.
When signal conditioning is performed at the periphery of the switch fabric 200, this may be achieved through the use of a dedicated signal conditioning module.
It should also be mentioned at this point that if the signals being handled by the chassis 100 need to remain in an optical form throughout their journey through the chassis 100, MEMS (micro-electro-mechanical switch) devices or the like may be used in the switch fabric 200 instead of the cross-point switches 230, 240. This may also require signal conditioning, albeit of a different type (e.g., re-timing and possibly multi-mode to single-mode conversion or vice-versa).
The connection map applied by the switch fabric 200 is controlled by a controller 250, which may be embodied as a microprocessor, FPGA, EEPROM, etc. The format of the connection map output by the controller 250 will, of course, depend on the internal structure of the switch fabric 200. In the case of the illustrated embodiment, the controller 250 would be responsible for providing two 140×140 connection maps, one to each of the cross-point switches 230, 240. By changing the content of the connection maps, the controller 250 can change the mutual interconnection of the processor cards 130 within the chassis 100 and also the interconnection defined between the processor cards 130 in the chassis 100 and the external world relative to the chassis, which includes other chassis in a multi-chassis configuration.
The controller 250 may be located in the chassis 100 itself, either on a separate controller card or on the interconnection module 140. The controller 250 may be accessed through the backplane via a dedicated external communication channel or it may be accessed through one of the line cards 110 via one of the paths P64-P95. The controller 250 may be responsive to instructions transmitted via a modem or other interface device (e.g., a communications adapter) connected over a transmission medium such as a tangible medium (e.g., optical or analog communications lines) or a medium implemented using wireless techniques (e.g., microwave, infrared or other transmission schemes).
As previously mentioned, a router may be built from two or more identical chassis 100 of the type illustrated in FIG. 1. The chassis are interconnected to one another via their interconnect modules' optical ports in accordance with an inter-chassis topology. Each full-duplex optical path travelling between optical ports may be carried on two separate optical fibers or on separate wavelengths of the same fiber or in any other suitable way known to those of ordinary skill in the art. Many inter-chassis topologies are within the scope of the present invention. In some topologies, it is desired to mesh all the chassis using the available optical ports. In other topologies, multiple chassis may be connected in a ring- or star-like configuration. In still other topologies, the chosen interconnect strategy will seek to keep the maximum number of “hops” between chassis to below a given upper bound.
In either case, the router so created can be upgraded by simply adding one or more supplementary chassis to the existing group of chassis, adding new interconnections between previously idle optical ports and re-programming the interconnection modules 140 in all chassis. It is noted that the interconnection modules in the supplementary chassis may be pre-programmed prior to their interconnection to the other chassis, or they may be programmed once the connections have been established. Also of note is the fact that the hardware connections within each chassis and between the chassis remain fixed, and are merely appended to as the router is scaled; rather, it is the software that adapts to the growing size of the router. Hence, the router can be scaled without ever having to replace any hardware (thus minimizing the cost) and without having to disconnect any physical connections between chassis or within any of the chassis (thus minimizing the down time). Thus, the use of a programmable interconnect module 140 within each chassis greatly simplifies scaling.
The connection map that is provided to the switch fabric 200 of an interconnection module 140 of a given chassis in the router will be a function of the chosen inter-chassis topology and the position of the given chassis within that topology. Care must therefore be taken to properly program each switch fabric 200 so as to allow the desired connectivity to take place. FIGS. 3A, 4A and 5A provide examples of an inter-chassis topology, for a router offering a progressively larger capacity. The accompanying FIGS. 3B, 4B and 5B provide examples of suitable intra-chassis interconnection possibilities that enable the router to achieve the requisite functionality at the corresponding stage of growth.
Accordingly, FIG. 3A shows a router 300 comprising only two interconnected chassis 310, 320. For ease of reference, each of the chassis 310, 320 is identical to the chassis described previously with reference to FIGS. 1 and 2. Therefore, each of the chassis 310, 320 includes four optical ports; specifically, chassis 310 includes optical ports A310, B310, C310, D310 and chassis 320 includes optical ports A320, B320, C320, D320. The inter-chassis topology is defined by optical port A310 of chassis 310 being connected to optical port A320 of chassis 320 by an optical fiber bundle 399A. In this case, optical fiber bundle 399A establishes 32 full-duplex optical paths between optical ports A310 and A320, which can be carried as 64 unidirectional paths on 64 optical fibers or multiplexed in any suitable way.
FIG. 3B provides a detailed view of the interconnection pattern established within each of the chassis 310, 320. It has been assumed that all paths are full-duplex paths, although each such full-duplex path may be implemented by a multiplicity of physical links. For ease of illustration, the line cards have been omitted. Also for ease of illustration, the input and output interfaces IN, OUT of the switch fabric in the interconnection module 140 are not specifically shown but they can be unambiguously determined from the correspondence established above with electrical paths P0-P95 (in the case of IN0-IN95 and OUT0-OUT95), optical paths A0-A31 (in the case of IN96-IN127 and OUT96-OUT127), optical paths B0-B23 (in the case of IN128-IN151 and OUT128-OUT151), optical paths C0-C23 (in the case of IN152-IN175 and OUT152-OUT175) and optical paths D0-D31 (in the case of IN176-IN207 and OUT176-OUT207).
Turning first to chassis 310 in FIG. 3B, the interconnection module 140 is programmed to establish the following connection groups:

    (i) paths P64-P71 to paths P0-P7 (loopback)
    (ii) paths P72-P79 to optical paths A0-A7 of optical port A310 
    (iii) paths P80-P87 to paths P8-P15 (loopback)
    (iv) paths P88-P95 to optical paths A8-A15 of optical port A310 
    (v) paths P16-P31 to optical paths A16-A31 of optical port A310 


With continued reference to FIG. 3B, the interconnection module 140 of chassis 320 is programmed to establish the following connection groups:

    (vi) paths P64-P71 to paths P0-P7 (loopback)
    (vii) paths P72-P79 to optical paths A16-A23 of optical port A320 
    (viii) paths P80-P87 to paths P8-P15 (loopback)
    (ix) paths P88-P95 to optical paths A24-A31 of optical port A320 
    (x) paths P16-P31 to optical paths A0-A15 of optical port A320 


With additional reference to FIG. 4A, the capacity of the router 300 of FIG. 3A and 3B can be augmented by adding a third chassis 330 to the existing set of chassis 310, 320, resulting in the creation of a router 400. Chassis 330 has a plurality of optical ports denoted A330, B330, C330, D330. A fiber bundle 399B is connected between optical ports B310 and B330 on chassis 310 and 330, respectively, while a fiber bundle 399C is connected between optical ports C320 and C330 on chassis 320 and 330, respectively. It is noted that fiber bundle 399A, which joins optical ports A310 and A320 on chassis 310 and 320, respectively, remains intact and that none of the hardware within any chassis needs to be replaced, disconnected to re-connected.
FIG. 4B provides a more detailed view of one possible intra-chassis interconnection pattern which can be established by the interconnection module 140 of each chassis 310, 320, 330 and which allows the router 400 to function as a scaled version of the router 300. It is recalled that the actual connections (i.e., from electrical interface to electrical interface) of the switch fabric within each interconnection module 140 can be derived from the illustrated interconnection pattern and from the correspondence between the interfaces and the paths, which was described earlier with reference to FIGS. 2 and 3B. Specifically, the following connection groups have been established within chassis 310:

    (i) paths P64-P71 to optical paths A0-A7 of optical port A310 
    (ii) paths P72-P75 to paths P0-P3 (loopback)
    (iii) paths P76-P79 to paths P36-P39 (loopback)
    (iv) paths P80-P87 to optical paths A16-A23 of optical port A310 
    (v) paths P88-P91 to paths P32-P35 (loopback)
    (vi) paths P92-P95 to paths P4-P7 (loopback)
    (vii) paths P8-P15 to optical paths A8-A15 of optical port A310 
    (viii) paths P16-P23 to optical paths B0-B7 of optical port B310 
    (ix) paths P40-P47 to optical paths A24-A31 of optical port A310 
    (x) paths P48-P55 to optical paths B8-B15 of optical port B310 


With continued reference to FIG. 4B, the interconnection module 140 of chassis 320 is programmed to establish the following connection groups:

    (xi) paths P64-P67 to optical paths A8-A11 of optical port A320 
    (xii) paths P68-P71 to optical paths A24-A27 of optical port A320 
    (xiii) paths P72-P75 to paths P0-P3 (loopback)
    (xiv) paths P76-P79 to paths P36-P39 (loopback)
    (xv) paths P80-P83 to optical paths A12-A15 of optical port A320 
    (xvi) paths P84-P87 to optical paths A28-A31 of optical port A320 
    (xvii) paths P88-P91 to paths P32-P35 (loopback)
    (xviii) paths P92-P95 to paths P4-P7 (loopback)
    (xix) paths P8-P15 to optical paths A0-A7 of optical port A320 
    (xx) paths P24-P31 to optical paths C0-C7 of optical port C320 
    (xxi) paths P40-P47 to optical paths A16-A23 of optical port A320 
    (xxii) paths P48-P55 to optical paths C8-C15 of optical port C320 


With continued reference to FIG. 4B, the interconnection module 140 of chassis 330 is programmed to establish the following connection groups:

    (xxiii) paths P64-P67 to optical paths B0-B3 of optical port B330 
    (xxiv) paths P68-P71 to optical paths B8-B11 of optical port B330 
    (xxv) paths P72-P75 to optical paths C0-C3 of optical port C330 
    (xxvi) paths P76-P79 to optical paths C8-C11 of optical port C330 
    (xxvii) paths P80-P83 to optical paths B4-B7 of optical port B330 
    (xxviii) paths P84-P87 to optical paths B12-B15 of optical port B330 
    (xxix) paths P88-P91 to optical paths C4-C7 of optical port C330 
    (xxx) paths P92-P95 to optical paths C12-C15 of optical port C330 


Thus, it has been shown that the capacity of a router designed according to an embodiment of the present invention can be increased by (1) adding a new chassis; (2) connecting one or more additional fiber bundles between the optical ports of the chassis; and (3) re-programming the interconnection module 140 in each chassis via the controller 250. No existing connection within any chassis or between any pair of chassis needs to be physically dismantled or re-established, resulting in a truly scalable solution to the problem of increasing router capacity. It is also noted that the interconnection module in new chassis may be pre-programmed prior to its interconnection to the existing chassis, or it may be programmed once the connections to the existing chassis have been established.
With additional reference now to FIG. 5A, it is shown how the capacity of the router 400 of FIGS. 4A and 4B can be further augmented without requiring the disconnection or re-connection of equipment, and without requiring existing equipment to be replaced. Specifically, the addition of three more chassis 340, 350, 360 results in the creation of a router 500. Chassis 340 has a plurality of ports denoted A340, B340, C340, D340, chassis 350 has a plurality of ports denoted A350, B350, C350, D350 and chassis 360 has a plurality of ports denoted A360, B360, C360, D360.
A fiber bundle 399*A is connected between optical ports A330 and A340 on chassis 330 and 340, respectively. A fiber bundle 399*B is connected between optical ports B320 and B340 on chassis 320 and 340, respectively. A fiber bundle 399*C is connected between optical ports C310 and C340 on chassis 310 and 340, respectively. A fiber bundle 399D is connected between optical ports D310 and D350 on chassis 310 and 350, respectively. Finally, a fiber bundle 399*D is connected between optical ports D320 and D360 on chassis 320 and 360, respectively. It is noted that fiber bundles 399A, 399B and 399C remain intact and that none of the hardware within any given chassis needs to be replaced, disconnected to re-connected.
FIG. 5B provides a more detailed view of suitable connections that can be established by the interconnection module within each of the chassis 310, 320, 330, 340, 350 and 360, thus demonstrating scalability of the three-chassis router 400 of FIG. 4A to the six-chassis router 500 of FIG. 5A. Specifically, the following connection groups are established for chassis 310:

    (i) paths P64-P67 to optical paths A0-A3 of optical port A310 
    (ii) paths P68-P71 to optical paths B0-B3 of optical port B310 
    (iii) paths P72-P75 to optical paths C0-C3 of optical port C310 
    (iv) paths P76-P77 to paths P0-P1 (loopback)
    (v) paths P78-P79 to paths P34-P35 (loopback)
    (vi) paths P80-P83 to optical paths A8-A11 of optical port A310 
    (vii) paths P84-P87 to optical paths B8-B11 of optical port B310 
    (viii) paths P88-P91 to optical paths C8-C11 of optical port C310 
    (ix) paths P92-P93 to paths P32-P33 (loopback)
    (x) paths P94-P95 to paths P2-P3 (loopback)
    (xi) paths P4-P7 to optical paths A4-A7 of optical port A310 
    (xii) paths P8-P11 to optical paths B4-B7 of optical port B310 
    (xiii) paths P12-P15 to optical paths A12-A15 of optical port A310 
    (xiv) paths P16-P19 to optical paths D0-D4 of optical port D310 
    (xv) paths P20-P23 to optical paths C4-C7 of optical port C310 
    (xvi) paths P36-P39 to optical paths A12-A15 of optical port A310 
    (xvii) paths P40-P43 to optical paths B12-B15 of optical port B310 
    (xviii) paths P44-P47 to optical paths A28-A31 of optical port A310 
    (xix) paths P48-P51 to optical paths D4-D7 of optical port D310 
    (xx) paths P52-P55 to optical paths C12-C15 of optical port C310 
    (xxi) optical paths A16-A23 to optical paths D8-D15 (loopback)
    (xxii) optical paths B16-B23 to optical paths D16-D23 (loopback)
    (xxiii) optical paths C16-C23 to optical paths D24-D31 (loopback)


With continued reference to FIG. 5B, the interconnection module 140 of chassis 320 is programmed to establish the following connection groups:

    (xxiv) paths P64-P65 to optical paths A4-A5 of optical port A320 
    (xxv) paths P66-P67 to optical paths A12-A13 of optical port A320 
    (xxvi) paths P68-P71 to optical paths B0-B3 of optical port B320 
    (xxvii) paths P72-P75 to optical paths C0-C3 of optical port C320 
    (xxviii) paths P76-P77 to paths P0-P1 (loopback)
    (xxix) paths P78-P79 to paths P34-P35 (loopback)
    (xxx) paths P80-P81 to optical paths A6-A7 of optical port A320 
    (xxxi) paths P82-P83 to optical paths A14-A15 of optical port A320 
    (xxxii) paths P84-P87 to optical paths B8-B11 of optical port B320 
    (xxxiii) paths P88-P91 to optical paths C8-C11of optical port C320 
    (xxxiv) paths P92-P93 to paths P32-P33 (loopback)
    (xxxv) paths P94-P95 to paths P2-P3 (loopback)
    (xxxvi) paths P4-P5 to optical paths A0-A1 of optical port A320 
    (xxxvii) paths P6-P7 to optical paths A8-A9 of optical port A320 
    (xxxviii) paths P8-P11 to optical paths B4-B7 of optical port B320 
    (xxxix) paths P12-P15 to optical paths A16-A19 of optical port A320 
    (xl) paths P16-P19 to optical paths D0-D3 of optical port D320 
    (xli) paths P20-P23 to optical paths C4-C7 of optical port C320 
    (xlii) paths P36-P37 to optical paths A2-A3 of optical port A320 
    (xliii) paths P38-P39 to optical paths A10-A11 of optical port A320 
    (xliv) paths P40-P43 to optical paths B12-B15 of optical port B320 
    (xlv) paths P44-P47 to optical paths A20-A23 of optical port A320 
    (xlvi) paths P48-P51 to optical paths D4-D7 of optical port D320 
    (xlvii) paths P52-P55 to optical paths C12-C15 of optical port C320 
    (xlviii) optical paths A24-A31 to optical paths D8-D15 (loopback)
    (xlix) optical paths B16-B23 to optical paths D16-D23 (loopback)
    (l) optical paths C16-C23 to optical paths D24-D31 (loopback)


The connections for the other chassis (namely, chassis 330, 340, 350 and 360) can similarly be obtained from inspection of FIG. 5B by a person of ordinary skill in the art.
From the above, it is again seen how the capacity of a router designed according to an embodiment of the present invention can be increased by simply (1) adding a set of additional chassis; (2) connecting additional fiber bundles between the optical ports of the existing and additional chassis; and (3) re-programming the interconnection module 140 in each chassis via the controller 250. No existing connection within any chassis or between any pair of chassis needs to be physically dismantled or re-established, resulting in a truly scalable solution to the problem of increasing router capacity.
It also should be noted that for the router 500 of FIGS. 5A and 5B, there are six chassis but only four optical ports per chassis and hence there are more chassis in the router 500 than there are optical ports per chassis. When this occurs, it may be useful to divide the router into “clusters” of chassis where, in this case, there are up to four chassis per cluster. For each chassis, three optical ports per chassis are reserved for connections with other chassis within the same cluster, while the remaining (fourth) optical port is used to connect to a chassis in another cluster. In general, for an N-port chassis, where M−1 of N ports are reserved for intra-cluster connections, the total number of M-chassis clusters that can be accommodated is (N−(M−1))+1=N−M+2. In the case where N=M (as in FIG. 5A), the maximum number of clusters is two, with M (or N, since N is equal to M) chassis in each cluster.
It should be appreciated that the number of chassis required to achieve a certain switching capacity may exceed the maximum number of chassis that can be accommodated by clustering. Nonetheless, it is still possible to build a scalable router in accordance with an embodiment of the present invention. In such a case, an additional component needs to be introduced, namely a “chassis interconnection module” (CIM).
By way of example, FIG. 6 shows a router 600 composed of three clusters 610A, 610B and 610C. Within cluster 610A are contained five chassis 640 and an optional switching element 660, all of which connected to a common CIM 630 via fiber optic bundles (or DWDM fibers) 650. The CIM 630 for a given cluster may have a larger number of ports than any one chassis and provides programmable optical interconnections (e.g., using MEMS devices). The illustrated embodiment shows that none of the chassis within a given cluster is connected directly to another chassis within that cluster Such chassis-to-chassis connections are provided by “loopback” functionality of the CIM 630, which allows connecting two chassis together within the same cluster and connecting two other CIMs via the CIM 630. Nevertheless, it is within the scope of the present invention to provide chassis-to-chassis connections within the same cluster, which may be advantageous when implementing a hypercube-based topology.
The clusters themselves are interconnected via the CIM in each cluster. An ultra-dense optical link may interconnect the CIMs in the various clusters. For instance, in the illustrated embodiment, link 620 connects the CIMs in clusters 610A and 610B, while link 622 connects the CIMs in clusters 610A and 610C. A link 624 emanates from CIM 630 and is unused for the time being but is available for future use, in case another cluster is added to the router 600. The ultra-dense links 620, 622, 624 may be DWDM optical fibers or they may comprise bundles of single-carrier or coarsely multiplexed optical fibers.
In this way, different numbers of clusters can be interconnected to form a router. Scalability of the router is achieved by adding one or more clusters (with respective CIMS), adding selected connections between CIMs and re-programming the CIMs. No intra-cluster connections need to be disabled or re-connected. Careful observation of this architecture reveals similarity with the architecture of FIG. 1, where the CIM of FIG. 6 plays the role of the interconnection module 140 of FIG. 1. Thus, one skilled in the art who has understood how the interconnection module can be reprogrammed to provide the required connectivity will also understand how the same can be achieved by re-programming the CIM 630.
It should be understood, of course, that the above described functionality of the chassis and routers can apply to multiple individual streams of data flow, sometimes referred to as “data planes”. Thus, although the above description has been formulated in terms of a single data plane, it should be understood that the present invention is equally applicable to the transmission of information across multiple independent planes which draw upon the resources of a common set of chassis. The line cards and processing cards in each chassis may either be dedicated to a particular data plane or may be shared amongst two or more date planes.
Also, the term “card” is meant to be interpreted broadly so as to cover not only a printed circuit board that has connectors disposed primarily along an edge thereof, but also other modules that contain circuitry, software and/or control logic capable of providing the requisite functionality. A large-area wafer comprising all the requisite internal circuitry of one or more “cards” is also envisaged.
While specific embodiments of the invention have been described and illustrated, those skilled in the art will appreciate that further modifications and variations may be made without departing from the scope of the invention as defined in the claims appended hereto.

## Claims

1. A router, comprising:
a plurality of chassis, each chassis comprising a plurality of processing modules and a programmable interconnection module;
a data connection between each processing module on each chassis and the interconnection module on the same chassis; and
a data connection between the interconnection module on each chassis and at least one interconnection module on respective other chassis;
at least one programmable interconnection module being operative for:
1) establishing switchable connections between individual processing modules on its chassis and between at least one processing module on its chassis and at least one interconnection module on another chassis;
2) upon addition of an additional chassis to said router, changing said switchable connections such that at least one of said processing modules on its chassis is connected to an interconnection module on said additional chassis.

2. A router as defined in claim 1, wherein the data connections between the processing modules on each chassis and the interconnection module on the same chassis are electrical and wherein the data connections between the interconnection modules on different chassis are optical.

3. A router as defined in claim 1,
wherein the interconnection module on each chassis includes a plurality of electrical input ports, a plurality of electrical output ports and a programmable switch fabric disposed therebetween, the switch fabric being capable of selectively establishing connections between individual ones of the electrical input ports and corresponding ones of the electrical output ports in accordance with a connection map respectively associated with said chassis.

4. A router as defined in claim 3, wherein the interconnection module on each chassis includes a signal conditioning module connected to the switch fabric in said interconnection module.

5. A router as defined in claim 3, wherein the switch fabric in the interconnection module on each chassis is adapted to provide signal conditioning functionality.

6. A router as defined in claim 3,
wherein each processing module on each chassis includes a plurality of electrical input ports, a plurality of electrical output ports and a processing fabric disposed therebetween.

7. A router as defined in claim 6,
wherein a subset of the plurality of electrical input ports of each processing module on each chassis is connected to a respective subset of the electrical output ports of the interconnection module on that chassis.

8. A router as defined in claim 7,
wherein a subset of the plurality of electrical output ports of each processing module on each chassis is connected to a respective subset of the electrical input ports of the interconnection module on that chassis.

9. A router as claimed in claim 3, each chassis further including:
a plurality of optical input ports;
a plurality of optical output ports;
a plurality of optical-to-electrical conversion units, each optical-to-electrical conversion unit being connected between a respective one of the optical input ports and a respective subset of the electrical input ports of the interconnection module on said chassis; and
a plurality of electrical-to-optical conversion units, each electrical-to-optical conversion unit being connected between a respective subset of the electrical output ports of the interconnection module on said chassis and a respective one of the optical output ports.

10. A router as defined in claim 6, each chassis further including:
a plurality of network interface modules for interfacing with an external network, each network interface module being connected to one or more respective electrical input ports and one or more respective output ports of one or more of the processing modules on said chassis.

11. A router as defined in claim 10, wherein the network interface modules are line cards.

12. A router as defined in claim 1, wherein the data connections between the processing modules on each chassis and the interconnection module on the same chassis are low-bandwidth connections and wherein the data connections between the interconnection modules on different chassis are high-bandwidth connections.

13. A router as defined in claim 6, wherein the processing fabric on at least one of the processing modules on at least one of the chassis is adapted to perform packet switching between the electrical input ports and the electrical output ports of said at least one of the processing modules.

14. A router as defined in claim 3, wherein the programmable switch fabric in the interconnection module on at least one of the chassis implements a fully non-blocking switch.

15. A router as defined in claim 3, wherein the programmable switch fabric in the interconnection module on at least one of the chassis provides loopback functionality.

16. A router as defined in claim 3, wherein at least one of the chassis further comprises a controller connected to the interconnection module on that chassis, for providing the respective connection map to the switch fabric.

17. A router as defined in claim 16, wherein the controller on at least one of the chassis is adapted to be controllable from a location remote to the router.

18. A router as defined in claim 1,
wherein the chassis are arranged in two or more clusters;
wherein each chassis in each cluster includes at least one port reserved for intra-cluster connections with chassis in said cluster and at least one port reserved for inter-cluster connections with chassis in other clusters.

19. A router as defined in claim 1,
wherein the chassis are arranged in two or more clusters, each cluster including a chassis interconnection module connected to all the chassis in said cluster;
wherein connections between chassis of a particular one of the clusters are established through the chassis interconnection module of the particular cluster; and
wherein connections between each pair of clusters are established through the chassis interconnection modules of the clusters of said pair.

20. A router as defined in claim 19,
wherein the chassis interconnection module of each cluster is adapted to provide programmable connections between different chassis in said cluster and between the chassis in said cluster and the chassis interconnection modules of other clusters.

21. A chassis for use in building a scalable router, comprising:
a plurality of processing modules, each processing module including a plurality of electrical input ports, a plurality of electrical output ports and a processing fabric disposed therebetween;
a programmable interconnection module, including a plurality of electrical input ports, a plurality of electrical output ports and a programmable switch fabric disposed therebetween, for creating selectively established switchable connections between individual ones of the electrical input ports and corresponding ones of the electrical output ports in accordance with a connection map, said interconnection module being operative for changing said selectively established switchable connections upon addition of an additional chassis to the scalable router;
a data connection between each processing module and the interconnection module, whereby a subset of the plurality of electrical input ports of each processing module on each chassis is connected to a respective subset of the electrical output ports of the interconnection module on that chassis and whereby a subset of the plurality of electrical output ports of each processing module on each chassis is connected to a respective subset of the electrical input ports of the interconnection module on that chassis
a plurality of optical input ports and a plurality of optical output ports, for external connection to one or more other chassis of the router;
a plurality of optical-to-electrical conversion units, each optical-to-electrical conversion unit being connected between a respective one of the optical input ports and a respective subset of the electrical input ports of the interconnection module; and
a plurality of electrical-to-optical conversion units, each electrical-to-optical conversion unit being connected between a respective subset of the electrical output ports of the interconnection module and a respective one of the optical output ports.

22. A chassis as defined in claim 21, further comprising:
a plurality of network interface modules for interfacing with an external network, each network interface module being connected to one or more respective electrical input ports and one or more respective output ports of one or more of said processing modules.

23. A chassis as defined in claim 22, wherein the network interface modules are line cards.

24. A chassis as defined in claim 21, wherein said interconnection module includes a signal conditioning module peripheral to said switch fabric.

25. A chassis as defined in claim 21, wherein said switch fabric is adapted to provide signal conditioning functionality.

26. A chassis as defined in claim 21, wherein the processing fabric on at least one of said processing modules is adapted to perform packet switching between the electrical input ports and the electrical output ports of said at least one of the processing modules.

27. A chassis as defined in claim 21, wherein said programmable switch fabric implements a fully non-blocking switch.

28. A chassis as defined in claim 21, wherein said programmable switch fabric provides loopback functionality.

29. A chassis as defined in claim 21, further comprising a controller connected to said interconnection module, for providing said connection map to said switch fabric.

30. A chassis as defined in claim 21, wherein said controller is adapted to be controllable from a location remote to the chassis.

31. A method of upgrading a router including a plurality of original chassis, each original chassis comprising a plurality of processing modules and a programmable interconnection module, wherein a data connection exists between each processing module on each original chassis and the interconnection module on the same original chassis and wherein a data connection exists between the interconnection module on each original chassis and at least one interconnection module on respective other original chassis, wherein at least one interconnection module on an original chassis establishes switchable connections between the individual processing modules on its chassis and between at least one processing module on its chassis and at least one interconnection module on another original chassis, the method comprising:
providing at least one additional chassis, each additional chassis comprising a plurality of processing modules and a programmable interconnection module, wherein a data connection exists between each processing module on each additional chassis and the interconnection module on the same additional chassis;
establishing a data connection between an interconnection module on at least one additional chassis and the at least one interconnection module on one of the at least one original chassis;
re-programming the at least one interconnection module on the at least one original chassis that has the switchable connections, such that at least one processing module on its original chassis is connected to the interconnection module on said at least one additional chassis.

32. A method as defined in claim 31, further comprising:
programming the interconnection modules of each additional chassis prior to the step of providing the at least one additional chassis.

33. A method as defined in claim 31, further comprising:
programming the interconnection modules of each additional chassis after the step of providing the at least one additional chassis.

34. A method as defined in claim 31, wherein establishing a data connection between the interconnection module on each additional chassis and the interconnection module on at least one original chassis includes establishing an electrical connection.

35. A method as defined in claim 31, further comprising establishing a data connection between the interconnection module on each additional chassis and the interconnection module on at least one other additional chassis, wherein establishing a data connection between the interconnection module on each additional chassis and the interconnection module on at least one other additional chassis includes establishing an optical connection.