Scalable packet-switch
First Claim
1. A packet switch comprising:
- two or more switch engines;
two or more sets of one or more input/output (I/O) ports, each set of I/O ports connected to and associated with a corresponding switch engine;
one or more shared memory devices connected to the two or more switch engines and configured to store;
egress task data for two or more sets of one or more egress task queues, each set of egress task queues associated with a corresponding switch engine; and
packet data for packets received at the I/O ports and processed by the switch engines, wherein;
the two or more switch engines are configured to process packets in parallel;
each switch engine performs (i) bridging of received packets using bridging logic local to the switch engine and (ii) scheduling of received packets for transmission using scheduling logic local to the switch engine;
the one or more shared memory devices are configured to store a shared bridging table accessed by each switch engine to perform the bridging; and
each switch engine is further configured to perform access-control-list (ACL) filtering comprising consulting an ACL table and rendering a decision whether to mirror a received packet.
5 Assignments
0 Petitions
Accused Products
Abstract
A scalable packet switch possessing a multiport memory, a multiport memory manager, two or more input/output (I/O) ports, and two or more switch engines. Each switch engine is associated with one or more I/O ports, and is adapted to receive inbound packets and transmit outbound packets via the associated I/O ports. Inbound packets are stored in a shared packet buffer. Each switch engine is further adapted to (i) determine (i.e., bridge) the outbound I/O port(s) for received inbound packets by consulting a shared bridging table and (ii) schedule outbound packets for transmission, independently and in parallel with other switch engines. The shared packet buffer and shared bridging table are stored in the multiport memory and shared by all switch engines. The multiport memory manager allocates/de-allocates memory blocks within the multiport memory.
11 Citations
16 Claims
-
1. A packet switch comprising:
-
two or more switch engines; two or more sets of one or more input/output (I/O) ports, each set of I/O ports connected to and associated with a corresponding switch engine; one or more shared memory devices connected to the two or more switch engines and configured to store; egress task data for two or more sets of one or more egress task queues, each set of egress task queues associated with a corresponding switch engine; and packet data for packets received at the I/O ports and processed by the switch engines, wherein; the two or more switch engines are configured to process packets in parallel; each switch engine performs (i) bridging of received packets using bridging logic local to the switch engine and (ii) scheduling of received packets for transmission using scheduling logic local to the switch engine; the one or more shared memory devices are configured to store a shared bridging table accessed by each switch engine to perform the bridging; and each switch engine is further configured to perform access-control-list (ACL) filtering comprising consulting an ACL table and rendering a decision whether to mirror a received packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A communications system having a plurality of interconnected packet switches, at least one packet switch comprising:
-
two or more switch engines; two or more sets of one or more input/output (I/O) ports, each set of I/O ports connected to and associated with a corresponding switch engine; one or more shared memory devices connected to the two or more switch engines and configured to store; egress task data for two or more sets of one or more egress task queues, each set of egress task queues associated with a corresponding switch engine; and packet data for packets received at the I/O ports and processed by the switch engines, wherein; the two or more switch engines are configured to process packets in parallel; each switch engine performs (i) bridging of received packets using bridging logic local to the switch engine and (ii) scheduling of received packets for transmission using scheduling logic local to the switch engine; the one or more shared memory devices are configured to store a shared bridging table accessed by each switch engine to perform the bridging; and each switch engine is further configured to perform access-control-list (ACL) filtering comprising consulting an ACL table and rendering a decision whether to mirror a received packet. - View Dependent Claims (16)
-
Specification