Apparatus for selectively transferring data packets between local area networks
AssigneeNetvantage
InventorPhillip Short
Life of this patent
Estimating the term…
Abstract
A switching apparatus for selectively transferring data packets between a plurality of local area networks (LANs) at full-wire speed. A shared memory is used to store in buffers data packets received from one LAN prior to their transfer to another LAN under control of a block of control logic. The control logic maintains and updates sets of pointers which identify and control access to the buffers in shared memory. A single processor monitors these pointers and in response to a single source address table further updates these pointers to direct the control logic to discard or alternatively to transfer received data packets to other LANs.
Claims22
A switching apparatus for selectively bidirectionally transferring data packets between a plurality of local area networks (LANs), wherein said data packets identify destination and source addresses, said apparatus comprising:
- a first media access controller (MAC) configured for receiving, transmitting and buffering data packets to a LAN;
- said first MAC associated with a first LAN for receiving and buffering a first set of data packets from said first LAN;
- a second MAC associated with a second LAN for receiving and buffering a second set of data packets to said second LAN;
- a shared memory comprised of a plurality of buffers adapted for storing said data packets from said first and second sets;
- control logic for selectively storing each said received data packet from said first and second sets into at least one selected buffer;
- a single source address table common to said first and second LANs for associating said source addresses to each said LAN;
- and
- a single processor executing a control program for forming said source address table in response to a single receive signal from said control logic and directing said control logic to discard or alternatively to transfer each stored data packet to a different LAN via its associated MAC according to the contents of said source address table and said stored data packets;
- wherein said control logic comprises:
- DMA control logic for bidirectionally transferring a plurality of bytes in bursts between said first and second MACs and said shared memory;
- queue logic for forming a plurality of FIFO queue lists within said shared memory each containing a plurality of entries that are pointers to a plurality of said buffers within said shared memory;
- and
- a state machine for controlling reception and transmission of data packets between said first and second LANs and said shared memory using said DMA control logic according to said FIFO queue lists.
A switching apparatus for selectively bidirectionally transferring data packets between a plurality of local area networks (LANs) wherein said data packets identify source and destination addresses, said apparatus comprising:
- a plurality of media access controllers (MACs) configured for receiving, transmitting and buffering data packets to a LAN, each coupled to a discrete LAN for receiving and buffering a portion of data packets transmitted across each said LAN;
- a shared memory comprised of a plurality of buffers adapted for storing said data packets;
- control logic means for allocating at least one buffer to each received data packet, fetching each portion of each said received and buffered data packet and storing each said portion;
- a single source address table for associating said source addresses with each said LAN;
- and
- a single processor executing a control program for forming said source address table in response to a single receive signal from said control logic and directing said control logic to discard or alternatively to transfer each stored data packet to a different LAN via its associated MAC according to the contents of said source address table and said stored data packets;
- wherein said control logic means additionally comprises:
- a plurality of FIFO transmit queues each associated with one of said MACs comprised of queue data for specifying said stored data packets to be transmitted via said MACs to said LANs wherein said processor enters said queue data into said transmit queues in response to said source address table and said destination address of a data packet;
- and
- means to transfer each said specified stored data packet to a first MAC when said queue data is entered into said first transmit queue.
A switching apparatus for use in combination with a plurality of local area networks (LANs) for selectively transferring data packets between any pair of said LAN's wherein each of said data packets identifies a destination and a source address, said apparatus comprising:
- a plurality of media access controllers (MACs) each configured for coupling to a different one of said LANs for receiving data packets therefrom and transmitting data packets thereto;
- a shared memory;
- control logic common to said LANs for selectively storing each data packet received by said MACs in said shared memory;
- said control logic comprising queue logic for selecting a portion of said shared memory for storing said data packets;
- a source address table common to said LANs for associating each source address to one of said LANs;
- and
- a processor common to said LANs for forming said source address table in response to the source address of each stored data packet and alternatively directing said control logic to discard or transfer each stored data packet to one of said LANs via its associated MAC according to the contents of said source address table and said destination address of each stored data packet.
A switching apparatus for use in combination with a plurality of local area networks (LANs) for selectively transferring data packets between any pair of said LANs wherein each of said data packets identifies a destination and a source address, said apparatus comprising:
- a plurality of media access controllers (MACs) each configured for coupling to one of said LANs for receiving data packets therefrom and transmitting data packets thereto;
- a shared memory comprised of a plurality of buffers adapted for storing said data packets;
- control logic common to each of said LANs for selectively storing each data packet received from one of said MACs in said shared memory;
- said control logic comprising queue logic for allocating at least one buffer to each received data packet;
- a source address table common to each of said LANs for associating each said source address to one of said LANs;
- and
- a processor common to each of said LANs for forming said source address table in response to the source address of each stored data packet and alternatively directing said control logic to discard or transfer each stored data packet to one of said LANs via its associated MAC according to the contents of said source address table and said destination address of each stored data packet.
A method of selectively transferring data packets between a plurality of local area networks (LANs) wherein each of said data packets identifies a destination and source address, comprising the steps:
- receiving a first data packet from a first LAN using a first media access controller (MAC);
- allocating at least one fixed length buffer from a shared memory using queue logic common to each of said LANs;
- storing said first data packet in said at least one buffer allocated by said queue logic using control logic common to each of said LANs;
- notifying a processor common to each of said LANs that said data packet is stored in said at least one buffer;
- determining a destination LAN according to the destination address of said first data packet and a single source address table which associates each destination address to one of said LANs;
- passing data to said control logic identifying said at least one buffer and said destination LAN if said destination LAN is not said first LAN;
- and
- transferring said first data packet from said at least one buffer to a second MAC coupled to said destination LAN using said control logic.
Dependencies are inferred from the claim text.