`
`WORLD INTELLECTUAL PROPERTY ORGANIZATION
`International Bureau
`
`
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(51) International Patent Classification 6 2
`H04L 12/00
`
`(11) International Publication Number:
`
`W0 (IO/02347
`
`(43) International Publication Date:
`
`13 January 2000 (13.01.00)
`
`(21) International Application Number:
`
`PCT/US99/ 15028
`
`(22) International Filing Date:
`
`1 July 1999 (01.07.99)
`
`(30) Priority Data:
`09/108,771
`
`2 July 1998 (02.07.98)
`
`US
`
`IRONBRIDGE NETWORKS, INC. [US/US]; 55
`(71) Applicant:
`Hayden Avenue, Lexington, MA 02173 (US).
`
`(72) Inventors: SCHWARTZ, Steven, J .; 18 Blueberry Hill Lane,
`Sudbuly, MA 01776 (US). CARLSON, James, D.; 25
`Essex Street, North Andover, MA 01845 (US). PEDUEL,
`Yuval; 16 Albamont Road, Winchester, MA 01890 (US).
`HATHAWAY, Michael; 4 Pinevale Avenue, Burlington,
`MA 01803 (US).
`
`(74) Agents: MILLS, Steven, M. et al.; Samuels, Gauthier &
`Stevens LLP, 55 Hayden Avenue, Lexington, MA 02173
`(US).
`
`(81) Designated States: AL, AM, AT, AU, AZ, BA, BB, BG, BR,
`BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GD,
`GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE, KG, KP,
`KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK,
`MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG,
`SI, SK, SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZW,
`ARIPO patent (GH, GM, KE, LS, MW, SD, SL, SZ, UG,
`ZW), Eurasian patent (AM, AZ, BY, KG, KZ, MD, RU, TJ,
`TM), European patent (AT, BE, CH, CY, DE, DK, ES, Fl,
`FR, GB, GR, IE, IT, LU, MC, NL, PT, SE), OAPI patent
`(BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE,
`SN, TD, TG).
`
`Published
`Without international search report and to be republished
`upon receipt of that report.
`
`connected thereto.
`
`(54) Title: SYSTEM AND METHOD FOR SWITCHING PACKETS IN A NETWORK
`
`(57) Abstract
`
`A switching node for transferring packets,
`each including a destination address,
`in a net-
`work includes a plurality of input port modules,
`a plurality Of output port modules and a switch-
`ing fabric, including a packet meta—data processor
`and a packet switch. Each input port module is
`connected to a communication link for receiving
`packets thereover, and each output port module
`is connected to a communication link for trans-
`mitting packets thereover. Each input port mod—
`ule, upon receiving a packet, buffers the packet
`and generates a meta—data packet therefore iden-
`tifying the output port module that is to trans—
`mit the packet and packet identifier information,
`and provides it to the packet meta—data proces-
`sor. The packet meta—data processor receives
`the meta—data packets generated by all of the in-
`put port modules and operational status informa-
`tion from all of the output port modules and for
`each output port module, processes the meta—data
`packets received from all of the input port mod-
`ules in connection with the operational status in-
`formation to determine whether the packet should
`be passed or dropped. If the packet meta—data processor determines that a packet associated with a meta—data packet is to be dropped, it
`will notify the input port module in which the packet is buffered, which, in turn, will discard the packet. On the other hand if the packet
`meta—data processor determines that the packet associated with the meta—data packet is not to be dropped, it will enqueue the meta—data
`packet for the associated output port module. Each output port module retrieves meta—data packets from its respective meta—data packet
`queue maintained therefor by the packet meta—data processor. For each meta—data packet retrieved by an ouput port module, the output
`port module will request that the input port module identified in the meta—data packet transfer the packet identified in the input port mod-
`ule thereto through the packet switch. When the output port module receives the packet,
`it will transmit it over the communication link
`
`Juniper Exhibit 1004
`
`Juniper Exhibit 1004
`
`
`
`
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international applications under the PCT.
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`Lesotho
`Spain
`Albania
`ES
`
`Lithuania
`AM
`Armenia
`FI
`Finland
`
`Luxembourg
`AT
`Austria
`FR
`France
`
`Latvia
`AU
`Australia
`GA
`Gabon
`
`Monaco
`AZ
`Azerbaijan
`GB
`United Kingdom
`
`Republic of Moldova
`BA
`Bosnia and Herzegovina
`GE
`Georgia
`
`Madagascar
`BB
`Barbados
`GH
`Ghana
`
`The former Yugoslav
`BE
`Belgium
`GN
`Guinea
`
`Republic of Macedonia
`BF
`Burkina Faso
`GR
`Greece
`
`Mali
`ML
`BG
`Bulgaria
`HU
`Hungary
`
`Mongolia
`MN
`3.]
`Benin
`IE
`Ireland
`Mauritania
`MR
`BR
`Brazil
`IL
`Israel
`
`Malawi
`MW
`BY
`Belarus
`IS
`Iceland
`
`
`Mexico
`MX
`CA
`Canada
`IT
`Italy
`Niger
`NE
`CF
`Central African Republic
`JP
`Japan
`
`
`Netherlands
`NL
`CG
`Congo
`KE
`Kenya
`
`
`Norway
`NO
`CH
`Switzerland
`KG
`Kyrgyzstan
`New Zealand
`NZ
`CI
`Cote d’Ivoire
`KP
`Democratic People‘s
`
`
`Poland
`PL
`CM
`Cameroon
`Republic of Korea
`
`
`Portugal
`PT
`KR
`CN
`China
`Republic of Korea
`
`
`Romania
`R0
`KZ
`CU
`Cuba
`Kazakstan
`
`
`Russian Federation
`RU
`LC
`CZ
`Czech Republic
`Saint Lucia
`
`
`Sudan
`SD
`LI
`DE
`Germany
`Liechtenstein
`
`
`DK
`Denmark
`LK
`Sri Lanka
`SE
`Sweden
`EE
`Estonia
`LR
`Liberia
`'
`SG
`Singapore
`
`
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Turkmenistan
`Turkey
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`Yugoslavia
`Zimbabwe
`
`
`
`
`
`LS
`LT
`LU
`LV
`MC
`MD
`MG
`MK
`
`SI
`SK
`SN
`SZ
`TD
`TG
`TJ
`TM
`TR
`TT
`UA
`UG
`US
`UZ
`VN
`YU
`ZW
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`SYSTEM AND METHOD FOR SWITCHING PACKETS IN A NETWORK
`x .
`4*:
`
`FIELD OF THE INVENTION
`
`The invention relates generally to the field of digital communications, and
`
`more particularly to systems and method for switching packets of digital data in a
`
`switching node used in a digital data network.
`
`10
`
`15
`
`BACKGROUND OF THE INVENTION
`
`Digital networks have been developed to facilitate the transfer of information,
`
`including data and programs, among digital computer systems and numerous other
`
`types of devices. A variety of types of networks have been developed and
`
`implemented using diverse information transfer methodologies. In modern networks,
`
`information is transferred through a mesh of switching nodes which are
`
`interconnected by communication links in a variety of patterns. The mesh
`
`interconnected pattern can allow for a number of paths to be available through the
`
`network from each computer system or other device which may transmit information
`
`as a source device, to another computer system or other device, which is to receive
`
`20
`
`the information as a destination device, so that if congestion develops in particular
`
`regions of the network, or if components of the network become inoperative,
`information can be routed around the congested or inoperative portion of the
`
`network.
`
`Information transferred from a source device to a destination device is
`
`25
`
`generally transferred in the form of fixed-or variable-length packets, which are
`
`received by a switching node over one communication link connected thereto, and
`
`transmitted over another communication link to facilitate transfer of the packet to the
`
`destination device or another switching node along a path to the destination device.
`
`Each packet typically includes address information, including a source address that
`
`30
`
`identifies the particular device that generated the packet, and a destination address
`
`that identifies the particular device or devices to receive the packet.
`
`-1-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`Typically, a switching node includes one or more input ports, each of which
`
`is connected to a communication link to receive packets, a plurality of output ports“,
`
`each of which is connected to a communication link to transmit packets, and a
`"switching fabric" that couples packets from the input portsto the respective outport
`
`ports for transmission. After an input port receives a packet, it will typically buffer
`
`the packet, identify from the destination address the particular output port that is to
`
`transmit the packet and transfer the packet to the output port through the switching
`
`fabric. After the output port receives the packet, it (that is, the output port) will
`
`typically buffer the packet in a queue for transmission over the communication link
`
`connected thereto. While buffering and scheduling by the output port can provide for
`
`efficient packet transmission by the output port, since the output port can be kept
`
`continually busy, several problems can arise with output port buffering. Generally,
`
`each output port will effectively provide one queue for each input port, in which case
`
`the total number of queues provided by the switching node will be on the order of N2,
`
`where "N" is the number of input ports, which, in turn, corresponds to the number of
`
`output ports, if, as is typical, each communication link provides for bi-directional
`
`transmission of packets. Thus, as "N," the number of input/ouput ports, increases,
`
`the number of queues maintained by the output ports increases quadratically, at a
`
`much faster rate, and so output queuing does not scale well.
`
`Instead of using output queuing of packets to be transmitted, switching nodes
`
`have been developed which can provide input queuing, in which packets are buffered
`
`and queued at the input ports. Only one queue is needed for each input port, and so,
`
`as the number of input (and output) ports increases, the number of queues increases
`
`at a linear rate, avoiding the quadratic increase with output queuing. However, input
`
`queuing results in much lower efficiency of usage of the switching fabric, since the
`
`input ports must, after buffering received packets, essentially contend and arbitrate
`
`for use of the switching fabric to facilitate transfer of the packets to the respective
`
`output ports for transmission.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`SUMMARY OF THE INVENTION
`
`The invention provides a new and improved switching node which provides
`
`for the efficient use of the switching fabric interconnecting input and output ports
`
`that is characteristic of a switching node that provides for output-queuing of packets
`
`transferred by the switching node, while avoiding the quadratic increase in packet
`
`queues, relative to increasing numbers of input/output ports, that is characteristic of
`
`switching nodes that provide for output-queuing. Similarly, the invention provides a
`
`new and improved switching node which provides for the linear increase in packet
`
`queues, relative to increasing numbers of input/output ports, that is characteristic of
`
`10
`
`switching nodes that provide for input queuing, while avoiding the relative inefficient
`
`usage of the switching fabric interconnecting input and output ports that is
`
`characteristic of a switching node that provides for input—queuing of packets
`
`transferred by the switching node.
`
`In brief summary, the invention provides a switching node, including a
`
`15
`
`plurality of input port modules, a plurality of output port modules and a switching
`
`fabric for transferring packets in a network, each packet including a destination
`
`address. Each input port module is connected to a communication link for receiving
`
`packets thereover, and each output port module is connected to a communication link
`
`for transmitting packets thereover. Each input port module, upon receiving a packet
`
`20
`
`from the communication link connected thereto, buffers the packet and generates a
`
`meta-data packet therefor, the meta-data packet identifying the output port module
`
`that is to transmit the packet, and generates identifier information for the packet, in
`
`particular the identification of the input port module in which the packet is buffered
`
`and a pointer to the location in the input port module in which the packet is buffered.
`
`25
`
`After generating the meta-data packet, the input port module provides it to the
`
`switching fabric, in particular to a packet meta-dataiprocessor portion thereof.
`
`The switching fabric includes both the packet meta-data processor portion
`
`and a packet switch portion. The packet meta-data processor portion receives the
`
`meta—data packets generated by all of the input port modules and operational status
`
`30
`
`information from all of the output port modules. The operational status information
`
`for each output port module includes information that is useful in making a
`
`-3-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`determination for each respective output port module as to whether or not packets
`
`that would be transmitted by the respective output port module are to be discarded, of
`
`dropped. For each output port module, the packet meta-data processor processes the
`
`meta-data packets received from all of the input port modules in connection with the
`
`operational status information. If, in processing a meta—data packet, the packet meta-
`
`data processor determines that the packet associated with the meta-data packet is to
`
`be dropped, it will notify the input port module in which the packet is buffered,
`
`V which, in turn, will discard the packet. On the other hand, if the packet meta-data
`
`processor determines that the packet associated with the meta-data packet is not to be
`
`10
`
`dropped, it will enqueue the meta—data packet for the associated output port module.
`
`Each output port module retrieves meta-data packets from its respective meta-
`
`data packet queue maintained therefor by the packet meta-data processor. For each
`
`meta-data packet retrieved by an output port module, the output port module will
`
`issue a request to the input port module identified in the meta-data packet to transfer
`
`15
`
`the packet identified in the input port module to it (that is, to the output port module
`
`that issued the request). The input port module, after receiving the request from the
`
`output port module, will transfer the requested packet through the packet switch
`
`portion of the switching fabric. The packet switch portion, in turn, will transfer the
`
`packet to the output port module, for transmission thereby over the communication
`
`20
`
`link connected thereto.
`
`A switching node constructed in accordance with the invention provides the
`
`scalability of a input-queued switching node, while maintaining substantially the
`
`efficiency of switching fabric usage of an output-queued switching node. Since the
`
`packets are buffered at the input port modules until the determination has been made
`
`25
`
`by the packet meta-data processor that they are to be transmitted by respective output
`
`port modules, and further until they are requested by the respective output port
`
`modules for to be transferred thereto for transmission, only "N" buffers, or queues,
`
`are needed, one for each input port module, whereas in an output—queued switching
`
`node N2 buffers would be required. However, the determination as to which packets
`
`30
`
`should be discarded (that is, which packets should be dropped) and which should not
`
`be (that is, which packets should be passed), is made separately for each output port
`
`-4-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`module effectively in a queue established therefor, and so the pass/drop
`
`determinations are effectively made in a manner similar to that for an output queifed .
`
`switching node. Thus, the packet switch portion of the switching fabric an achieve
`
`efficiencies similar to those achieved in output queued switching nodes.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`10
`
`15
`
`20
`
`25
`
`This invention is pointed out with particularity in the appended claims. The
`
`above and further advantages of this invention may be better understood by referring
`
`to the following description taken in conjunction with the accompanying drawings,
`
`in which:
`
`FIG. 1 schematically depicts a computer network including at least one
`
`switching node constructed in accordance with the invention;
`
`FIG. 2 is a functional block diagram of a switching node for use in the
`
`network depicted in FIG. 1, constructed in accordance with the invention;
`
`FIG. 3 is a functional block diagram of an input port module used in the
`
`switching node depicted in FIG. 2;
`
`FIG. 4 is a functional block diagram of one switch plane in the inter—port
`
`packet switch used in the switching node depicted in FIG. 2;
`
`FIG. 5 is a functional block diagram of a meta-data packet processor for
`
`processing packet meta-data in the switching node depicted in FIG. 2;
`
`FIG. 6 is a functional block diagram of an output port module used in the
`
`switching node depicted in FIG. 1;
`
`FIG. 7 is a functional block diagram of one embodiment of a frame
`
`forwarding engine useful in the input port module depicted in FIG. 3; and
`
`FIG. 8 is a functional block diagram of a second embodiment of a frame
`
`forwarding engine useful in the input port module depicted in FIG. 3.
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT3-.
`,i’.
`
`FIG. 1 schematically depicts a computer network 10 including a plurality of
`switching nodes 11(1) through 11(N) (generally identified by reference numeral 11
`
`(n)) for transferring signals representing data among a number of devices, which in
`
`FIG. 1 are represented by packet source/destination devices 12(1) through 12(M)
`
`(generally identified by reference numeral 12(m)) in a wide area network ("WAN").
`
`The packet source/destination devices 12(m), as is conventional, include a particular
`
`device, such as a computer system or other device that stores, generates, processes or
`
`10
`
`otherwise uses digital data, a local area network of such devices, or the like (not
`
`separately shown) to the wide area network 10. Each packet source/destination
`
`device 12(m) is connected over a communication link, generally identified by
`
`reference numeral 13(p), to a switching node 11(n) to facilitate transmission of data
`
`thereto or the reception of data therefrom. The switching nodes 11(n) are
`
`15
`
`interconnected by communication links, also generally identified by reference
`
`numeral 13(p) to facilitate the transfer of information among the respective switching
`
`nodes 11(n). The communication links 13(p) may utilize any convenient information
`
`transmission medium, including, for example, wires for carrying electrical signals,
`
`optical fiber links for carrying optical signals, and so forth. Each communication
`
`20
`
`link 13(p) is preferably bi—directional, allowing the switching nodes 11(n) to transmit
`
`and receive signals among each other and with customer premises equipment 12(m)
`
`connected thereto over the same link; depending on the particular type of medium
`
`selected for respective communication links 13(p), multiple media may be provided
`
`for transferring signals in opposite directions thereby to provide the bidirectional
`
`25
`
`link.
`
`Data is transferred in the network 10 in the form of packets. Generally, a
`
`packet includes a header portion and a data portion. The header portion includes
`
`information that assists in routing the packet through the network, with the specific
`
`information depending on the particular packet routing protocol that is used in
`
`30
`
`routing packets through the network. In connection with network 10, any of a
`
`number of well-known packet routing protocols may be used; in one embodiment,
`
`—6-
`
`
`
`WO 00/02347
`
`"
`
`PCT/US99/15028
`
`the well-known Internet protocol ("IP") is used. In any case, the header typically
`includes address information including a source address identifying the particular?
`
`source device 12(ms) that generated the packet and a destination address identifying
`
`the particular destination address 12(mD) that is to receive the packet. In the IP
`
`protocol, a packet may be of variable length and the header typically will also include
`
`length information to identify the length of the packet. The header also typically
`
`includes other information, including, for example, protocol identifier information
`
`that identifies the particular protocol that defines the structure of the packet. The
`
`data portion contains the data payload of the packet. The packet may also include, as
`
`10
`
`part of the data portion or otherwise, error detection information that can be used to
`
`determine whether an error occured in transferring the packet.
`
`A source device 12(m5), after generating a packet for transfer to a destination
`
`device 12(mD), will provide the packet to the switching node 11(n) connected thereto.
`
`The switching node 11(n) will use the destination address in the packet to attempt to
`
`15
`
`identify a "route" which associates a destination address with one of the
`
`communication links 13(p) connected thereto over which it is to transfer the packet
`
`to forward it (that is, the packet) to either the destination device 12(mD), if the
`switching node 11(n) is connected to the destination device 12 (mD),or to another
`
`switching node 11(n) (n'vtn) along a path to the destination device 12(mD). If the
`
`20
`
`switching node can identify a route for the received packet, it will forward the packet
`
`over the communication link identified by the route. Each switching node 11(n),
`
`11(n"),..., which receives the packet will perform a similar operation. If all of the
`
`switching nodes have respective routes for the destination address, the packet will
`
`eventually arrive at the destination device 12(mD).
`
`25
`
`The invention provides a new switching node 11(n), a functional block
`
`diagram of which is depicted in FIG. 2, that providés for the efficient transfer of
`
`packets through the network. With reference to FIG. 2, the switching node 11(n)
`
`includes a number of input port modules 20(1) through 20(N) (generally identified by
`
`reference numeral 20(n)) and a like number of output port modules 21(1) through
`
`30
`
`21(N) (generally identified by reference number 21(n)) interconnected by a switching
`
`fabric consisting of an inter-port packet switch 22, a packet meta-data processor 23,
`
`-7-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`and a switching node management processor 27. Each input port module 20(n)
`
`includes one or more input ports 25(n)(l) through 25(n)(M) (generally identifiedEBy ‘
`
`reference numeral 25(n)(m)), which are connected to respective one of the
`
`communication links 13(p) for receiving packets, represented by PKT_IN (n)(m)
`
`packet in (n)(m) signals, thereover. For each packet reCeived, the input port module
`
`20(n) buffers the packet and identifies from the destination address contained in the
`
`packet’s header the appropriate route therefor, in the process identifying the
`
`particular output port module 21(n) to which the packet is to be sent and one of one
`
`or more output ports 26(n)(1) through 26(n)(M) (generally identified by reference
`
`10
`
`numeral 26(n)(m)) on the output port module 21(n) through which the packet is to be
`
`transmitted to facilitate forwarding of the packet to the destination device 12(mD) or
`
`to the next switching node 11(n') along the path to facilitate routing of the packet to
`
`the destination device 12(mD). Generally, the input port module 20(n) will transfer
`
`the packet to the switching fabric, in particular to the inter-port packet switch 22, as
`
`15
`
`represented by INP(n)_PKT_DATA input (n) packet data signals (index "n" being an
`
`integer between one and "N," inclusive). The inter—port switch 22, in turn, couples
`
`the packet, as represented by OP(n)_PKT_DATA output (n) packet data signals
`
`(index "n" being an integer between one and "N," inclusive), to the identified output
`
`port module for transmission.
`
`20
`
`25
`
`As noted above, each output port module 21(n) includes one or more output
`
`ports 26(n)(m), each of which is connected to one or more communication links
`
`13(p). The output port module 21(n), in turn, transmits over the communication
`
`links 13(p) respective ones of the packets, as represented by PKT_OUT packet out
`
`signals, that are provided thereto by the switching fabric.
`
`The inter-port packet switch 22, which couples packets from the input port
`
`modules 20(n) to the respective output port modules 21 (n), is in the form of a
`
`crosspoint switch. More specifically, the inter—port packet switch 22 is in the form of
`
`a plurality of switch planes 22(1) through 22(P) (generally identified by the reference
`
`numeral 22(p)), each of which is in the form of a crosspoint switch. Generally, each
`
`30
`
`input port module 20(n), when it transfers a packet to the inter-port packet switch 22,
`
`divides the packet into a series of segments which are transferred to the successive
`
`-8-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`switch planes 22(m) of the inter-port packet switch 22 on a round—robin basis.
`
`Similarly, each output port module 21(n), when it receives a packet from the inter"-
`
`port packet switch 22, will receive successive packet segments from the successive
`
`switch planes 22(m) on a round—robin basis, and will re-assemble the segments into a
`
`packet prior to transfer through their respective output ports 26(n)(m). Providing
`
`multiple switch planes 22(p) in the inter—port packet switch 22 allows for more rapid
`
`switching of packets through the inter-port packet switch, allowing for higher
`
`through-put of packets from the input port modules 20(n) to the output port modules
`21(n). In addition, if a switch plane 22(p) fails or otherwise malfunctions, it can be
`
`10
`
`taken out of the round-robin, and the inter-port packet switch 22 will allow for
`
`15
`
`20
`
`25
`
`continued satisfactory switching using the other switch planes 22(p') (p'¢p). In one
`
`embodiment, the determination of whether a switch plane 22(p) has failed or
`
`otherwise malfunctioned, such that it should be taken out of the round-robin, is based
`
`on the bit error rate of the switch plane 22(p) in transferring packet segments from
`
`the input port modules 20(n) to the respective output port modules 21(n).
`
`The switching node management processor 27 performs a number of
`
`management functions for the switching node 11(n), which will be apparent to those
`
`skilled in the art, including, for example, maintaining and updating the route
`
`information used by the input port modules 20(n) in identifying, for respective
`
`packets, an appropriate output port module 21(n) and output port 26(n)(m) through
`
`which the packets are to be transmitted. In addition, the switching node management
`
`processor 27 receives bit error rate information for the respective switching planes
`
`22(p) and controls switching of the switch planes 22(p) into and out of the round-
`
`robin in response thereto.
`
`In accordance with the invention, in connection with controlling the transfer
`
`of packets from each input port module 20(n) to the respective output port modules
`
`21 (n) through the switching fabric, after an input port module 20(n) receives a packet
`
`over a communication link 13(p) connected thereto, it will buffer the packet and
`
`generate a meta-data packet therefor describing the packet, including a pointer to the
`
`30
`
`packet in the input port module 20(n) and the route information, including
`
`identification of the output port module 21(n) that is to receive the packet and the
`
`-9-
`
`
`
`WO 00/02347
`
`PCT/U599/15028
`
`output port 26(n)(m) through which the packet is to be transmitted, and perhaps and
`
`indication of the length of the packet. After the input port module 20(n) generates a ‘
`
`meta-data packet for the packet, it will provide the meta-data packet, as represented
`by INP(n)_META-DATA/RESP input (11) meta—data/response signals, to the packet
`
`meta-data processor 23 in the switching fabric for processing.
`
`The packet meta-data processor 23 also receives information, represented by
`
`OP(n)__CTRL/STATUS output port module 21(n) control/status signals, from the
`
`respective output port modules 21(n) concerning their operational status, in particular
`
`their respective capacities at any point in time to receive additional packets from the
`
`input port modules 20(n) for transmission. The output port module 21(n) status
`
`information may reflect the conditions of a number of factors, including, for
`
`example, the amount of buffering that the output port module 21(n) has available for
`
`packets received from the input port modules 20(n) prior to transmission (or,
`
`conversely, the amount of buffering currently occupied with packets to be
`
`transmitted) whether the available buffering is decreasing, increasing or substantially
`
`constant, and the like, all of which will provide an indication of the output port
`
`module’s capacity to receive packets associated with respective meta-data packets.
`
`After receiving a meta-data packet for each packet from the respective input
`
`port module 20(n), the packet meta-data processor 23 will determine whether the
`
`current status information that is associated with the output port module 21(n) which
`
`is to transmit the packet, indicates that the output port module 21(n) has sufficient
`
`capacity to receive the packet from the input port module 20(n) and transmit it (that
`
`is, the packet) over the respective communication link 13(p). If the packet meta-data
`
`processor 23 makes a positive determination, that is, if it determines that the current
`
`status information associated with the output port module 21(n) which is to transmit
`
`the packet indicates that it (that is, the output port module 21(n)) has sufficient
`
`capacity to receive the packet and transmit it, then the packet meta-data processor 23
`
`will provide the meta—data packet, represented by the OP(n)_CTRL/STATUS
`
`10
`
`15
`
`20
`
`25
`
`signals, to the respective output port module 21(n).
`
`30
`
`The output port module 21(n), after it receives a meta-data packet from the
`
`packet meta-data processor 23 associated with a packet which it (that is, the output
`
`-10-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`port module 21(n)) is to transmit, will subsequently provide a packet request,
`
`represented by the OP(n)/INP(n)_PKT_REQ output(n)/input(n) packet request signal
`
`(indices "n" in both cases being integers, whose values may differ), to enable the
`
`input port module 20(n) that is buffering the packet to transfer the packet thereto
`
`through the inter-port packet switch 22. After receiving the packet request from the
`
`output port module 21(n), the input port module 20(n), transmits the packet,
`
`represented by INP(n)_PKT_DATA input (11) packet data signals, to the inter-port
`
`packet switch 22, which, in turn, couples the packet, represented by
`
`OP(n)_PKT_DATA output(n) packet data signals, to the output port module 21(n)
`
`10
`
`for transmission as described above.
`
`On the other hand, if the packet meta-data processor 23, after receiving from
`
`an input port module 20(n) a meta-data packet for a packet, determines that the
`
`operational status of the output port module 21(n) that is to transmit the packet
`
`indicates that the capacity of the output port module 21(n) is such that the output port
`
`15
`
`module 21(n) will not be able to transmit the packet, it (that is, the packet meta—data
`
`processor 23) will provide a notification, represented by the INP(n)_META-
`
`DATA/RESP input(n) meta-data/response signals, to the input port module 20(n)
`from 'which the meta-data packet was received. This may occur if, for example, the
`
`status information associated with the output port module 21(n) as maintained by the
`
`20
`
`packet meta-data processor 23 indicates that the output port module 21(n) is
`
`congested when the input port module 20(n) provides to the packet meta-data
`
`processor 23 the meta-data packet for a packet that would otherwise be transmitted
`
`by the to output port module 21(n). In that case, since the output port module 21(n)
`
`will be unable to transmit the packet, the input port module 20(n) can discard it (that
`
`25
`
`is, the packet) to free buffer space for additional packets that may be received over
`
`the communication links connected thereto. In addition, the packet meta—data
`
`processor 23 will discard the meta-data packet associated with the packet to be
`
`discarded, instead of forwarding the meta-data packet to the output port module
`
`21(n). Unless the input port module 20(n) receives a notification from the packet
`
`30
`
`meta-data processor 23 that the packet is to be discarded, it will normally be
`
`requested by the output port module 21(n) for transmission over one of the
`
`-11-
`
`
`
`WO 00/02347
`
`PCT/US99/15028
`
`communication links 13(p) connected thereto.
`
`Accordingly, it will be appreciated that decisions within the switching ndde ‘
`
`11(n) as to whether a packet that is received over the network, will be transmitted by
`
`the switching node, is made by the packet meta-data processor 23, in response to a
`
`meta-data packet provided thereto by the input port module 20(n) and based on
`
`operational status information provided thereto by the output port modules 21(n). If
`
`the packet meta-data processor 23 determines, after receiving a meta-data packet for
`
`a packet, that the output port module 21(n) that is to transmit the packet has the
`
`capacity to receive and transmit the packet, the packet meta-data processor 23 will
`
`provide the meta—data packet for the packet to the output p