throbber
United States Patent
`Gridley
`
`[19]
`
`[54] DISTRIBUTED PROCESSING ETHERNET
`SWITCH WITH ADAPTIVE CUT-THROUGH
`SWITCHING
`
`[75]
`
`Inventor: Curtis D. Gridley, Ayer, Mass.
`
`[73] Assignee: Amber Wave Systems, Inc., Acton,
`Mass.
`
`[21] Appl. No.: 304,769
`Sep. 12, 1994
`
`[22] Filed:
`Int. Cl.6
`............•........................................... H04J 3/22
`[51]
`[52] U.S. Cl . ............................. 370/58.2; 370/60; 370/61;
`370/94.1
`[58] Field of Search ........................... 370/60, 58.2, 58.3,
`370/61, 67, 68.1, 85.13, 92, 94.1, 124,
`13, 17
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,719,621
`5,165,021
`5,274,631
`5,307,345
`5,321,695
`
`111988 May .......................................... 370/61
`11/1992 Wu et al .............................. 370/85.13
`12/1993 Bhardwaj .................................. 370/60
`4/1994 Lozowick et al ......................... 370/61
`6/1994 Faulk, Jr. . ................................. 370/60
`
`OTHER PUBLICATIONS
`
`Kwok et al., "Cut-Through Bridging for CSMNCD Local
`Area Networks", IEEE Transactions on Comm., vol. 38, No.
`7, Jul. 1990, pp. 938-942.
`
`1111111111111111111111111111111111111 IIIII 111111111111111111111 11111111 1111
`US005521913A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,521,913
`May 28, 1996
`
`Primary Examiner-Alpus H. Hsu
`Assistant Examiner-Ricky Ngo
`Attorney, Agent, or Firm-Hamilton, Brook, Smith & Rey(cid:173)
`nolds
`
`[57]
`
`ABSTRACT
`
`A packet switching system includes at least two network
`cards each receiving data packets via a plurality of associ(cid:173)
`ated ports, a system card, and an interconnect for connecting
`the system card to the network cards. Each one of the
`network cards comprises a plurality of port controllers for
`sending and receiving packets to and from a corresponding
`port and a packet processor for buffering packets received by
`the port controllers. The packet processor then sends desti(cid:173)
`nation addresses to the system card via the interconnect and
`receives forwarding information from the system card. The
`processor then forwards the packet in response to the
`forwarding information. The processor begins forwarding
`the packet in response to the forwarding information before
`the packet has been entirely received and checks the integ(cid:173)
`rity of the packet by reference to check sum information
`contained in the packet as in cut-through switching. Future
`packets from the source port have their validity checked
`prior to forwarding in response to receiving an invalid
`packet from the source port as in store and forward switch(cid:173)
`ing.
`
`13 Claims, 4 Drawing Sheets
`
`Port #I
`
`Port #8
`
`Activity, Coli is ion
`and Link LEOs
`
`•
`•
`•
`LAN Controller Bus
`
`135
`
`Packet
`RAM
`
`Hardware
`Packet
`Processor
`
`\
`125
`
`100
`
`HIGH SPEED BACKPLANE
`
`20
`
`NETAPP ET AL. EXHIBIT 1004
`Page 1 of 10
`
`

`
`U.S. Patent
`
`May 28, 1996
`
`Sheet 1 of 4
`
`5,521,913
`
`Pl-PS Pl-P8 Pl--P8 Pl--P8
`I II I l I l I
`I I I II II 1
`Ill Ill 11
`llllll r 1
`LAN
`LAN
`LAN
`LAN
`Card
`Card
`Card
`Card
`#I
`#2
`#3
`#4
`~
`
`j
`
`\
`IOOa
`
`-- ,
`
`\
`IOOb
`
`j
`
`\
`lOOc
`
`j
`
`\
`IOOd
`
`r
`
`'
`
`Fl G. I
`
`r
`
`\
`20
`
`System
`Card
`
`4
`
`\
`2 00
`
`I
`
`-
`
`NETAPP ET AL. EXHIBIT 1004
`Page 2 of 10
`
`

`
`~ w
`\C
`~ -..
`N
`01
`-..
`01
`
`ol:;o.
`
`s,
`1:-J
`00 =- !1
`
`="
`\C
`\C
`~ ....
`1:-J
`~
`~
`
`~ ~
`ea.
`~
`•
`00
`d •
`
`v
`
`"
`
`~t
`
`140
`
`120
`
`105
`\
`
`Port
`
`\
`
`ond Link LEOs
`Activity, Coli is ion
`
`l ys
`
`~ Controller
`
`20
`
`FIG. 2
`
`HIGH SPEED BACKPLANE
`
`~J
`L r_
`I FIFO
`;
`
`7'
`
`""
`
`:,_
`
`L
`
`j FIFO
`""(7
`
`v-13o
`
`Pocket Bus
`
`~~
`
`Processor
`
`Pocket
`
`Hardware
`
`125
`\
`
`-
`
`/1 1
`
`RAM
`Pocket
`
`135......._____
`
`f
`#8
`CTL
`LAN
`I
`IIOh
`
`/]_
`
`L'>-
`
`LAN Controller Bus
`•
`
`•
`
`•
`
`)'09
`
`/
`IIOf
`
`Port #8
`
`IIOe
`
`I
`
`;'10
`d
`
`IIOC
`
`I
`b
`
`110
`
`/
`
`1100
`
`-., 7
`
`0'
`#I
`CTL
`LAN
`+ I
`Port #I
`
`NETAPP ET AL. EXHIBIT 1004
`Page 3 of 10
`
`

`
`~ w
`\C
`~ ...
`N
`Ol
`...
`Ol
`
`ol:>.
`s,
`tN
`ttl a
`t:r'
`00
`
`C'\
`\C
`\C
`1-'
`J~
`~
`~
`
`= """'
`"'C ;.
`'CI"l •
`d •
`
`20
`
`'<._7
`
`0
`
`Control
`System
`
`y200
`
`FIG. 3
`
`HIGH SPEED BACKPLANE
`
`215
`
`v
`
`I FIFO
`~/
`
`/'-
`
`f ~
`
`7
`
`~;
`'l"i
`
`afld Control
`Arbitration
`210------., Backplane
`
`Address Processor Bus
`
`235
`\
`
`~
`
`~
`
`I FIFO·· 240
`
`. "( 7
`
`~
`
`v225
`
`RAM
`
`Address
`
`Processor
`Address
`
`220~
`
`230-......._
`
`~~
`
`L;').
`
`~~
`
`and LEOs
`Serial Port
`
`RAM
`
`Management Processor Bus
`
`ROM
`
`FLASH
`
`J
`
`~
`
`A
`
`Processor
`Management
`
`NETAPP ET AL. EXHIBIT 1004
`Page 4 of 10
`
`

`
`U.S. Patent
`
`May 28, 1996
`
`Sheet 4 of 4
`
`5,521,913
`
`--..
`
`Accumulate
`Packet
`
`v 405
`
`Send Packet
`Header to
`System Card
`
`v 410
`
`Begin
`Forwarding to
`Destination Card
`
`v
`
`415
`
`'
`Determine
`Validity
`of Packet
`
`~ 420
`
`1
`
`425
`
`Vol id Pocket?
`
`No
`
`Accumulate v 430
`Next Packet
`
`lr
`Check Vol id ity v 435
`ot Pocket
`
`Forward if Valid/ v
`Drop if Invalid
`
`440
`
`Yes
`
`~
`
`No
`
`~ 445
`n Con-
`ve Valid -
`
`Poe kets ?
`
`FIG. 4
`
`NETAPP ET AL. EXHIBIT 1004
`Page 5 of 10
`
`

`
`5,521,913
`
`2
`SUMMARY OF THE INVENTION
`
`1
`DISTRIBUTED PROCESSING ETHERNET
`SWITCH WITH ADAPTIVE CUT-THROUGH
`SWITCHING
`
`BACKGROUND OF THE INVENTION
`
`5
`
`The present invention is directed to a distributed process(cid:173)
`ing archecture which yields most of the simplicity of the
`shared memory configuration while attaining the advantages
`and faster operation of multiprocessing configuration. In
`general, this is achieved by a packet switching system that
`includes at least two network cards each receiving data
`packets via a plurality of associated ports, a system card, and
`an interconnect for connecting the system card to the net(cid:173)
`work cards. Each one of the network cards comprises a
`plurality of port controllers for sending and receiving pack(cid:173)
`ets to and from a corresponding port and a packet processor
`for buffering packets received by the port controllers. The
`packet processor then sends destination addresses to the
`system card via the interconnect and receives forwarding
`information from the system card. The processor then for(cid:173)
`wards the packet in response to the forwarding information.
`In specific embodiments, the system card comprises an
`address look-up table correlating destination addresses with
`the ports of the system. Also, the packet is forwarded to a
`different one of the network cards indicated by the forward(cid:173)
`ing information via the interconnect.
`The packet processor can be a hardware processor or even
`a programmable gate array.
`In yet another embodiment, the processor begins forward(cid:173)
`ing the packet in response to the forwarding information
`before the packet has been entirely received and checks the
`validity of the packet by reference to check sum information
`30 contained in the packet. Future packets from the source port
`have their validity checked prior to forwarding in response
`to receiving an invalid packet from the source port.
`In general, according to another aspect, the invention
`features an adaptive cut-through switching method for a
`packet switching system receiving and sending data from
`and to a network via a plurality of ports. This method
`comprises forwarding received packets to destination ports
`before the packet has been entirely received as in standard
`cut-through switching. The validity of the packets is, how(cid:173)
`ever, checked after the fact. If it turns out that the packet was
`invalid, future packets from the port are stored and their
`validity checked prior to forwarding, a store and forward
`configuration.
`In specific embodiments, the integrity of the packets is
`checked by reference to check sum information contained in
`the packets.
`In other embodiments, only packets, having source
`addresses from which invalid packets have been previously
`received, are placed into a store and forward mode. Alter(cid:173)
`natively, every packet from a port can be placed on store and
`forward in response to receiving an invalid packet from that
`port, regardless of its source address.
`The above and other features of the invention including
`various novel details of construction and combinations of
`parts, and other advantages, will now be more particularly
`described with reference to the accompanying drawings and
`pointed out in the claims. It will be understood that the
`particular method and device embodying the invention is
`shown by way of illustration and not as a limitation of the
`invention. The principles and features of this invention may
`be employed and various and numerous embodiments with(cid:173)
`out the departing from the scope of the invention.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`20
`
`10
`
`15
`
`Ethernet switch architecture can be generally divided into
`two classes: shared memory and multiprocessor systems. In
`the shared memory architecture, packets, including a header
`with a source and destination addresses, a data payload, and
`a check sum portion at the end of the packet, are received at
`the ports and then forwarded to a system card via a back(cid:173)
`plane. Here, the packets are buffered in the same central
`memory, which is accessed by a single central controller.
`This controller looks at the destination address of the packet,
`and possibly other information such as source port and
`destination port, and then, via an address and other look-up
`tables, determines what should be done with the packet, such
`as forward, discard, translate or multicast. This forwarding
`decision is usually an identification of a LAN Card and a
`port of that LAN Card in the Ethernet switch that connects
`to the destination address. The address look-up table tells to
`which port of the Ethernet switch the packet must be sent to
`reach the addressed device. The packet is then forwarded to 25
`that LAN card. The designated LAN card receives the
`packet and routes it to the destination port where an Ethernet
`controller chip sends the packet out on the LAN to the
`addressed device.
`The multiprocessing architecture differs in that a local
`processor is placed on each one of the cards and each one of
`these processors accesses and maintains its own address
`table. As a result, when a multiprocessor-type LAN card
`receives a packet through one of its ports, it first looks at the
`destination address and then determines to which one of the 35
`other ports on one of the other cards it must be sent and then
`sends the packet to that card via the backplane connecting
`the cards. If the port address of the packet happens to be on
`the same LAN card it was received on, the processor simply
`sends the packet to that local port address and the packet is 40
`never transferred on the backplane. This architecture has
`certain advantages in that since functionality is replicated
`between the cards, if any one of the cards should fail the
`Ethernet switch can still function although this also
`increases cost. One problem is, however, that a substantial 45
`amount of processing and software is devoted to ensuring
`the address tables on each one of the LAN cards are exact
`duplicates of each other.
`Regarding the handling of the packet within the Ethernet
`switch, two basic methods are conventional. The first is 50
`called store and forward switching. In this switching
`scheme, a particular LAN card will wait until it has received
`the entire packet before forwarding it to either another LAN
`card or the central controller card. This allows the LAN card
`to confirm the packet is valid and uncorrupted by reference 55
`to the check sum information contained at the end of the
`packet. A new approach has been proposed which is called
`cut-through switching, a purpose of which is to decrease
`packet latency. Here, not yet fully received packets are
`forwarded to the destination port and begun to be sent out or 60
`broadcasted from the switch before the entire packet has
`been received. This both decreases packet latency and also
`decreases the amount of buffering RAM required by each
`LAN card. The problem with this approach, however, is that
`if the packet turns out to be invalid or corrupted there is no 65
`way to drop the packet since it is already been started to its
`destination.
`
`In the accompanying drawings, like reference numerals
`refer to the same parts throughout the different views. The
`
`NETAPP ET AL. EXHIBIT 1004
`Page 6 of 10
`
`

`
`5,521,913
`
`3
`drawings are not necessarily to scale and this has instead
`been placed upon illustrating the principles of the invention.
`Of the drawings:
`FIG. 1 is a block diagram illustrating tbe general layout of
`the Ethernet switch of the present invention;
`FIG. 2 is a block diagram showing the architecture of a
`LAN card of the present invention;
`FIG. 3 is a block diagram illustrating the architecture of
`a system card of the present invention; and
`FIG. 4 is a flow diagram showing the process steps of
`adaptive cut-through switching of the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`25
`
`4
`ernet packets with a LAN card and port address of the
`Ethernet switch. In other words, the look-up tables in the
`address RAM 225 indicates to which port P1-P8 of which
`LAN card lOOA-lOOD a particular packet must be for-
`5 warded to reach the device indicated by the destination
`address contained in that packet's header.
`The forwarding decision indicating the internal LAN card
`and port address obtained from the address look-up table in
`the address RAM 225 by the address processor 220 is sent
`10 via the address processor bus 235 through the processor(cid:173)
`backplane FIFO 215 and backplane 20 to the requesting
`LAN card 100.
`Additionally, the system card 200 also contains a system
`controller which monitors the operation of each one of the
`15 LAN cards 100A-100D via the backplane 20 and the status
`of the address look-up table contained in the address RAM
`225 via the address processor bus 235 through the manage(cid:173)
`ment-address FIFO 240. Generally, the system controller
`230 monitors the health of the Ethernet switch in general,
`20 such as the crashing or improper operation of any one of the
`LAN cards. It also keeps system statistics regarding
`throughput and packets destinations and sources along with
`any security considerations. Although, not explicitly shown,
`a backup system card can be included to increase switch
`reliability by adding central control redundancy.
`Returning to FIG. 2, the forwarding decision is received
`by the hardware packet processor 130 via the backplane 20
`through the packet-backplane FIFO 140 and the packet bus
`125. If the port destination of the packet happens to be local
`to the particular card, then the packet is transferred to the
`LAN controller bus 105 via the controller-packet FIFO 120
`to one of the LAN controllers 110A-110H for the designated
`port. If, however, the port destination lies on a different LAN
`card 100A-100D, then the packet is transferred via the
`backplane 20 to the designated LAN card where the hard-
`ware packet processor 130 of that LAN card transfers the
`packet to the proper LAN controller 110 on that card.
`The present invention generally obtains the advantages
`associated with the multiprocessing architecture while main(cid:173)
`taining the simplicity associated with the shared memory
`architecture. One of the problems associated with the shared
`memory architecture is that the entire packet including the
`data payload must traverse the backplane twice. The packet
`traverses the backplane when it is first sent from the receiv(cid:173)
`ing LAN card to the control card and then when it leaves the
`control card to go to the particular LAN card which has the
`address port. In the multiprocessing architecture, the packet
`is only transferred across the backplane when it must be sent
`to a different LAN card. Consequently, in some cases, the
`packet may never enter the backplane in situations in which
`the source and destination ports are located in the same LAN
`card. The present distributed processing architecture
`achieves much of the advantages in this realm as th€
`55 multiprocessing architecture since the packet's data payload
`is only transferred across the backplane at most once. It
`should be noted, however, that the multiprocessing systems
`do not have to transfer the header across the backplane to
`obtain a forwarding decision. But, the multiprocessing con-
`figuration requires significant intercard traffic to synchronize
`the information look-up tables, which is not necessary in the
`present invention.
`One advantage of the shared memory architecture has
`over the multiprocessing architecture is one of simplicity. In
`the multiprocessing architecture, substantial intelligence
`must be incorporated into each LAN card to maintain and
`update the local address look-up table in addition to coor-
`
`Turning now to the figures, the internal architecture of an
`Ethernet switch constructed according to the principles of
`the present invention is generally illustrated in FIG. 1. Here,
`four LAN cards 100A-100D each have eight Ethernet ports
`P1-P8 for sending and receiving Ethernet packets. Although
`four LAN cards are shown specifically, it is generally
`understood that the number of LAN cards is expandable
`depending upon system requirements and capabilities. Each
`of these LAN cards 100A-100D are connected to each other
`and a system card 200 via a highspeed backplane 20.
`Although a backplane interconnect 20 is shown, other inter(cid:173)
`connects are possible such as crossbar or hierarchial types.
`Referring to FIG. 2, a block diagram illustrating the
`internal architecture of the LAN cards is shown. Each LAN 30
`controller 110A-110H sends and receives packets to and
`from the eight ports, port P1-P8. Data received into any one
`of the ports, P1-P8, is sent out onto the LAN controller bus
`105 to a controller-packet bus bidirectional FIFO (first in,
`first out) buffer 120. A 'port controller 115 coordinates the 35
`reading and writing by each of the LAN controllers
`110A-110H and the FIFO 120 to ensure that no data
`collisions occur on the LAN controller bus 105 and to drive
`LED indicators on the card to show port activity. The
`bi-directional FIFO 120 transfers the data from the LAN 40
`controller bus 105 to the packet bus 125 where a hardware
`packet processor 130, preferably a programmable gate array
`or specialty hardware processor, reconstructs the packets in
`a high speed packet RAM 135. The packet RAM 135 serves
`as a packet buffer which stores the packets received in 45
`through each of the ports P1-P8 while the packet processor
`130 obtains forwarding decisions, such as discard, translate,
`multicast, or forward to a destination LAN card and port,
`from the system card 200. More specifically, the hardware
`packet processor 130 sends the packet header, which 50
`includes source and destination addresses of the received
`packets now stored in the packet RAM 135, to the system
`card 200 on the backplane 20 via the packet-backplane FIFO
`140.
`Referring to FIG. 3, the system card 200 receives packet
`source and destination addresses from each of the LAN
`cards 100A-100D via the backplane 20. A backplane arbiter
`and controller 210 controls access to the backplane 20 by
`each of the LAN cards to avoid data collisions on the
`backplane 20. Packet source and destination information is
`received from the backplane 20 into the system card 200 via
`a processor-backplane FIFO 215. Generally, an address
`processor 220, such as a TMS320 signal processor, updates
`and accesses an address RAM 225 which contains an
`address look-up table and other forwarding related decision
`tables including port states. Generally, the address look-up
`table correlates destination addresses contained in the Eth-
`
`60
`
`65
`
`NETAPP ET AL. EXHIBIT 1004
`Page 7 of 10
`
`

`
`5,521,913
`
`10
`
`5
`dinating between the LAN cards to ensure that the look-up
`tables are all identical. Here, the intelligence located on each
`LAN card is only that needed to buffer the packet when it is
`received, strip off the header and send it to the system card,
`then receive back the LAN card destination and port, and 5
`then send the packet to that LAN card or perform other
`forwarding decision related processing. As a result, the
`present invention achieves most of the efficiency of the
`multiprocessing schemes with cost effectiveness associated
`with the shared memory architecture.
`Adaptive Cut-Through Switching
`Turning now to FIG. 4, an adaptive cut-through switching
`process is described with reference to the hardware archi(cid:173)
`tecture shown in FIGS. 1-3. Packets received in through the
`ports P1-P8 of a LAN card 100 are accumulated in the 15
`packet RAM 135 under control of the packet processor 130
`in step 405. As soon as the header of a particular packet has
`been completely received, the packet processor 130 sends
`the header information via the backplane to the address
`processor 220 contained on the system card 200 step 410. 20
`The address processor 220 returns the forwarding decision
`to the packet processor 130. The packet processor 130 then
`begins forwarding the not yet fully received packet con(cid:173)
`tained in the packet RAM 135 to the packet processor of the
`destination LAN card in step 415 where the packet is started 25
`to be sent out the destination port to the addressed device.
`This occurs before the packet is fully received at the source
`port. In this way, the present invention operates somewhat
`the same as convention cut-through switching structures.
`The packet processor, however, checks the validity of the 30
`packet once the check-sum information has been received in
`step 420 even though the packet is already on its way to its
`destination device. If it turns out that the packet was in fact
`valid, the particular port remains in a cut-through switching
`status in which the packets are forwarded as soon as the 35
`forwarding decision is received by returning to step 405. If,
`however, it turns out that the packet was invalid, then the
`entire port is placed in a probationary status of the store and
`forward mode in the preferred embodiment. Alternatively,
`only the packets of the particular source address that exhibit 40
`invalidity or corruption could be placed into a store and
`forward mode, rather than the entire port. This second
`approach is most applicable where a particular sending
`device, rather than the cabling, is the basis of the packet
`corruption.
`A port placed on probation is essentially converted to the
`store and forward switching. That is, as the packet is
`received through the LAN controller of the port, which has
`been placed on probation, the entire packet is accumulated
`in the packet RAM 135 in step 430 and its validity checked so
`by reference to the check sum in step 435 before it is
`forwarded to its destination card and port in step 440. If it
`turns out the packet is invalid then the packet processor 130
`simply discards that packet without forwarding it. Finally, in
`step 445, the packet processor determines whether ten 55
`consecutive valid packets have been received from a par(cid:173)
`ticular port. If ten consecutive valid packets have been
`received, the port is removed from probationary status and
`returned to a cut-through configuration.
`The present invention essentially yields the advantages 60
`associated with both cut-through switching and store and
`forward switching. That is, in a properly operating local area
`network, most of the packets will in fact be valid and the
`latency associated with the check sum checking is unnec(cid:173)
`essary. In most cases, the present invention entirely avoids 65
`this latency by essentially defaulting to cut-through switch(cid:173)
`ing as long as the transmission rate of the destination port is
`
`45
`
`6
`less than or equal to the rate of the source port. For a
`particular port receiving garbage either through the improper
`operation of a device attached to that port or some corruption
`in the cabling in that port, the present invention insulates the
`rest of the LAN by placing that port, or in some situations
`only packets with a particular source address, in a store and
`forward mode so that invalid packets will be dropped before
`they are forwarded or broadcasted through the LAN. Certain
`types of packets such as broadcast packets are always placed
`in a store and forward mode, however, since they involve
`every port. This helps to avoid broadcast storms.
`Equivalents
`Those skilled in the art will recognize, or be able to
`ascertain using no more than routine experimentation, many
`equivalents to specific embodiments of the invention
`described specifically herein. Such equivalents are intended
`to be encompassed in the scope of the following claims.
`I claim:
`1. A packet switching system including at least two
`network cards each receiving data packets via a plurality of
`associated ports, a system card, and an interconnect for
`connecting the system card to the network cards, wherein
`each one of the network cards comprises:
`a plurality of port controllers for sending and receiving
`packets to and from a corresponding port;
`a packet processor for buffering packets received by the
`port controllers and sending destination addresses of
`the received packets to the system card via the inter(cid:173)
`connect, for receiving forwarding information from the
`system card, and for forwarding the packets in response
`to the forwarding information;
`a controller bus connecting the port controllers to the
`packet processor; and
`a bus controller coordinating communications between
`the packet processor and the port controllers over the
`controller bus.
`2. The system of claim 1, wherein the system card
`comprises an address look-up table correlating destination
`addresses with the ports of the system.
`3. The system of claim 1, wherein the packet is forwarded
`to a different one of the network cards indicated by the
`forwarding information via the interconnect.
`4. The system of claim 1, wherein the packet processor is
`a hardware processor.
`5. The system of claim 1, wherein the packet processor is
`a programmable gate array.
`6. The system of claim 1, wherein the packet processor
`begins forwarding the packet in response to the forwarding
`information before the packet has been entirely received,
`checks a validity of the packet in response to check sum
`information contained in the packet, and stores future pack(cid:173)
`ets from the source port and checks the packets validity prior
`to forwarding in response to receiving an invalid packet
`from the source port.
`7. An adaptive cut-through switching method for a packet
`switching system receiving and sending packets from and to
`a network via a plurality of ports, the method comprising:
`receiving packets in the packet switching system; gener(cid:173)
`ating forwarding
`information in response to the
`received packets; forwarding the received packets to
`destination ports in response to the forwarding infor-
`mation before the packets have been entirely received;
`checking the validity of the packets by reference to check
`sum information contained in the received packets;
`storing future packets from a port and checking the
`validity of the future packets prior to forwarding in
`
`NETAPP ET AL. EXHIBIT 1004
`Page 8 of 10
`
`

`
`5,521,913
`
`7
`response to receiving an invalid packet from the port as
`determined in the checking step.
`8. The method of claim 7, further comprising storing and
`checking validity prior to forwarding only for packets hav(cid:173)
`ing source addresses from which invalid packets have been 5
`received.
`9. The method of claim 7, further comprising storing and
`checking validity prior to forwarding every packet from a
`port in response to receiving an invalid packet from that
`port.
`10. A packet switching method for a packet switching
`system that receives packets from source devices via ports
`and transmits the packets from the ports connecting to
`destination devices, the method comprising:
`receiving packets from ports connected to source devices,
`the packets being addressed to destination devices
`connected to different ports;
`moving the packets within the system and then transmit(cid:173)
`ting the packets to the destination devices via the ports
`even though the packets have not been entirely received
`through the ports from the source devices;
`
`20
`
`8
`checking the validity of the packets after the packets have
`at least begun to be transmitted from the system to the
`destination devices via the ports; and
`converting to store-and-forward switching in response to
`determining that one of the packets was invalid to
`confirm the validity of the packets before transmitting
`the packets from the system to the destination devices.
`11. A method as described in claim 10, further comprising
`10 store-and-forward switching all packets received from a port
`in response to receiving an invalid packet from the port.
`12. A method as described in claim 10, further comprising
`store-and-forward switching only packets from a particular
`source device in response to receiving invalid packets from
`that source device.
`13. A method as described in claim 10, further comprising
`converting back to transmitting packets to destination
`devices before the packets have been entirely received in
`response to receiving valid packets.
`
`15
`
`* * * * *
`
`NETAPP ET AL. EXHIBIT 1004
`Page 9 of 10
`
`

`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`CERTIFICATE OF CORRECTION
`5,521,913
`May 28, 1996
`Curtis D. Gridley
`
`PATENT NO.
`
`DATED
`INVENTOR(S) :
`
`It is certified that error appears in the above-indentified patent and that said Letters Patent is hereby
`corrected as shown below:
`
`Delete the second paragraph in Claim 7, Column 6, lines
`58-62, and replace it with the following:
`
`---receiving packets in the packet switching
`system;
`generating forwarding information in response to
`the received packets;
`
`forwarding the received packets to destination
`ports in response to the forwarding information before
`the packets have been entirely received;---
`
`Signed and Sealed this
`
`Sixth Day of August, 1996
`
`Attest:
`
`Attesting Officer
`
`Commissioner of Patents and Trademarks
`
`BRUCE LEHMAN
`
`NETAPP ET AL. EXHIBIT 1004
`Page 10 of 10

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket