US20040062244A1 - Handling and discarding packets in a switching subnetwork - Google Patents
Handling and discarding packets in a switching subnetwork Download PDFInfo
- Publication number
- US20040062244A1 US20040062244A1 US10/261,012 US26101202A US2004062244A1 US 20040062244 A1 US20040062244 A1 US 20040062244A1 US 26101202 A US26101202 A US 26101202A US 2004062244 A1 US2004062244 A1 US 2004062244A1
- Authority
- US
- United States
- Prior art keywords
- packet
- transfer
- field
- error
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Definitions
- This invention relates generally to the field of network technology, and more specifically to a method of processing packets in a switching system.
- Infiniband is a joint effort of several computer and peripheral manufacturers, including IBM, Intel, Compaq, HP, Dell, Microsoft and Sun Microsystems.
- the Infiniband specification describes an interconnect technology that enables processor nodes and input/output nodes to be joined together to form a system area network.
- the Infiniband architecture if properly designed, is independent of the type of operating system and the processing platform used. This architecture is partially based upon the observation that with the needs for greater bandwidth and lower data latency, the input/output devices in a network have become more complex and have increased processing capabilities.
- FIG. 1 a high-level diagram of one subnetwork of the Infiniband Architecture 100 is shown.
- the Infiniband architecture is designed using an extensive I/O switched network.
- the subnetwork shown in FIG. 1 uses a point-to-point switching network, where each switch may be linked to one or more processing nodes, routers, I/O devices, and data storage devices.
- This type of link connectivity may be characterized as module-to-module or chassis-to-chassis, depending upon whether the links are within a larger subsystem or are links between subsystems.
- the collection of switches is called the Infiniband switching fabric, or just fabric.
- the fabric is the heart of the Infiniband architecture and processing devices may be coupled to this fabric in a variety of ways.
- each device coupled to the fabric has a channel adaptor interface.
- the Infiniband specification specifies two types of channel adaptors; the Host Channel Adaptor (HCA) and the Target Channel Adaptor (TCA).
- HCA Host Channel Adaptor
- TCA Target Channel Adaptor
- the HCA is designed for nodes that require more processing capability.
- the TCA is typically designed to support input/output devices. Both the TCA and HCA manage the transport level interactions with the switching fabric.
- Channel adaptors are used in the Infiniband architecture to generate and consume packets. These channel adaptors are present in the form of TCA's and HCA's.
- a channel adaptor allows devices external to the Infiniband specification access to data through a programmable direct memory access (DMA) engine. This DMA access may be executed locally or remotely.
- DMA direct memory access
- a channel adaptor may have multiple ports as shown in FIG. 2. Each port is coupled to the transport functionality using one or more Virtual Lanes (VLs). Each VL provides it's own buffering flow control so that each port can send and receive data packets simultaneously.
- VLs Virtual Lanes
- FIG. 3 a more detailed diagram of an Infiniband switch is shown, according to the prior art.
- the switches specified in the Infiniband architecture generate or consume data. Packets received by the switch are forwarded to the destination address specified in the packets routing header.
- the utility of switches in the Infiniband architecture is the ability to interconnect links using switches to relay packets between the links. Switches are not directly addressed from the point of view of the end user. Instead, packets traverse a subnetwork transparently through the use of unique identifiers (LIDs). The switch forwards individual packets to an outgoing port using the value specified in the LID.
- One or more ports that may be used for incoming and outgoing relay functionality are coupled to the switch through one or more Virtual Lanes.
- Infiniband switches support unicast or multicast routing. In unicast routing, a single packet is delivered to one destination, while multicast routing delivers a single packet to multiple destinations.
- a packet is transferred out of a switch using a multiple-cycle request/arbitration/grant operation.
- the switch queries a destination port, with a request to transfer the packet.
- the arbitration phase begins with the switch and the destination port exchanging transport information. Based upon the transport parameters of the packet, the packet is granted with a certain quality of service level. From the point of view of the destination port, the arbitration process is a method to handle multiple incoming requests received and to select the appropriate requests that will be granted. If the two sides can agree on the parameters for transport of the packet, the grant phase begins and the switch starts the process of sending the packet to the destination port.
- the packet has a requirement for low-latency, then the entire portion of the request/arbitration/grant cycle that does not involve the actual transmission of the packet to the destination port increases the latency of the packet.
- Techniques for minimizing this latency include complex arbitration algorithms as well as techniques that start the transport of the packet while the packet is still being received by the switch.
- switches operate in cut-thru mode. That is, switching logic begins transferring a packet out of a switch while the switch is still receiving the packet. This becomes a difficult problem when protocol requires that error packets be discarded or marked bad, while performance requires low latency packet transfers. There is a need in the art for an approach that is able to handle and discard packets even if the switch may have not received the entire packet and checked it for errors prior to starting the request/arbitration/grant cycle that sends the packet to the destination port.
- the present invention provides for the handling and discarding of packets in a packet data network.
- a device such as an Infiniband switch, receives packets from a remote location, such as a destination port, and initiates a transfer of the packet to a second remote location. This transfer is initiated while the packet is still being received.
- the device checks the packet validity while the transfer of the packet to the remote location is being initiated, and, if the packet is invalid, the transfer of the packet to the remote location is canceled. If the device has already started the transfer process, then the packet is truncated and marked as bad. In this latter case only a few extra words are transmitted to the remote location.
- the device may also support a store and forward operation.
- a store-and-forward error packet allows one or more parts of the packet to be transferred to an output link before being truncated and marked bad. Any remaining parts of the packet previously stored in the input buffer will be discarded and will not consume output link bandwidth.
- FIG. 1 is a high-level diagram of the Infiniband Architecture, according to the prior art.
- FIG. 2 is a high-level diagram of a channel adaptor, according to the prior art.
- FIG. 3 is a high-level diagram of a switch, according to the prior art.
- FIG. 4 is a block diagram of a switching architecture that implements the Infiniband architecture.
- FIG. 5 is a block diagram of a structure for handling and discarding packets in a switched data network, in accordance with an embodiment of the present invention.
- FIG. 6 is a flow diagram of a method for handling and discarding packets in the structure of FIG. 5, in accordance with an embodiment of the present invention.
- FIG. 7 is a detailed flow diagram of a method for handling and discarding packets in a switched data network, in accordance with an embodiment of the present invention.
- FIG. 4 a block diagram of a switching architecture 400 that implements the Infiniband architecture is shown.
- the switching architecture comprises ports 403 , 425 , 430 , and 435 , 480 , 485 , 490 , and 495 .
- Each port contains an input module and an output module.
- FIG. 4 shows eight ports corresponding to eight input modules and eight output modules, it is noted that one of skill in the art will recognize that more input modules, output modules, or ports could be used without departing from the spirit and scope of the present invention.
- Each port 403 , 425 , 430 , 435 , 480 , 485 , 490 , and 495 comprises a PHY block ( 405 and block 460 ), a PHY/LINK block ( 410 and 465 ), a LINK block ( 415 and 470 ), and an INPUT BUFFER block ( 420 and 475 ).
- the PHY block 405 and PHY block 475 are operable to perform functions related to the physical operation of the switch.
- the PHY/LINK block 410 and PHY/LINK block 470 serve as the switch interface between the physical switch operation and the logical switch operation.
- the LINK block 415 and LINK block 465 contain the functionality related to the transfer of data to a remote location using crossbar 445 .
- INPUT BUFFER 420 and INPUT BUFFER 460 perform the switch specific operations related to sending and receiving packets across the crossbar 445 .
- Arbiter block 440 and MGT block 450 manage the requests for transport across the switch (arbitration) and ensure that the switch transports packets across the crossbar 445 without contention while meeting the requirements of data packets originated from a plurality of end users.
- BIST block 455 is also present and supports a built-in self-test functionality.
- a receive portion of a port 503 receives packet data 504 from a remote location.
- packet data 504 is received in Rx PHY block 506 .
- a start of packet signal 515 is parsed by Rx PHY 506 .
- Packet data 504 is concurrently passed to Rx Link block 509 , which is operable to check the plurality of packet data 504 for correctness. If an error is detected, a protocol error signal 511 is asserted.
- the protocol error signal 511 and packet symbol errors signal 521 are coupled at OR gate 512 or other suitable selection or multiplexer (MUX) element. In this manner protocol errors and physical waveform errors can be detected and a packet processor 530 notified.
- MUX multiplexer
- Packet processor 530 receives the packet data 527 , start of packet signal 515 , end of packet signal 518 , and an error signal 524 from the OR gate 512 .
- the packet transfer request generator 533 initiates a request to transfer the data to a remote port 569 .
- the packet transfer request 563 is coupled to a arbiter 560 , which determines when and if the packet transfer request 563 is accepted. Concurrently, the packet is checked, the output buffer is written, and tag information is written as in block 536 , block 539 , and block 542 .
- the tag information stored in tag mem block 542 is used by packet reader 545 to determine whether the plurality of packet data should be sent to remote port 569 .
- packet reader 545 receives a packet transfer grant 564 from arbiter 560 , the plurality of packet data 527 , and a packet control signal 548 are multiplexed 557 within the crossbar 554 to create a packet data and control signal 566 .
- Packet data and control signal 566 is coupled to port B of remote link 569 .
- packet data and control signal 566 contains a start packet field, an end good packet field, and an end bad packet field.
- FIG. 6 a flow diagram 600 of a method for handling and discarding packets within the structure of FIG. 5 is shown, in accordance with an embodiment of the present invention.
- a packet sent from a first remote location is received by a switch in an Infiniband subnetwork as in block 610 .
- the packet transfer request generator 533 of the switch initiates a transfer of the packet to a second remote location while the Rx PHY 506 is still receiving the packet from the first remote location (block 620 ).
- the first remote location and the second remote location are instances of a source port and a destination port, respectively.
- the Rx Link 509 of the switch determines the packet validity (block 630 ).
- block 536 sets one or more tag parameters in tag memory 542 in order to cancel the transfer operation. If the transfer operation to the second remote destination has already been granted and the packet has been partially transferred to the second remote location, then the packet is truncated and an error tag contained in tag memory 542 is used to indicate to packet reader 545 that the packet is bad (block 650 ). In a preferred embodiment of the present invention, the transfer operation may be invalidated at one or more points during the transfer operation.
- a store-and-forward error packet comprises one or more parts of the packet transferred to an output link before being truncated and marked bad. Any remaining parts of the packet previously stored in the input buffer will be discarded and will not consume any output link bandwidth.
- a link waiting to receive packet data is in an IDLE state (block 705 ) until an start of packet signal is received (block 710 ). If the start of the packet contains an error (block 715 ), then the link returns to the IDLE state (block 705 ).
- Rx PHY 506 determines whether the packet contains an error in block 715 . If the packet is not in error, then the first packet data is processed and a request to transfer the packet data is asserted (block 720 ).
- the processing the first packet includes parsing a header of a first word of the packet data, said first word comprising a Virtual Lane ID, link version ID, service level, destination ID, and link next header.
- One word is 32 bits. If the first packet is in error (block 725 ), then a NULL request is asserted and further packets are ignored (block 730 ). If the first word of the packet is correct in block 725 , then the first word is saved and then a second word of the packet data is processed and a packet transfer request is asserted (block 735 ). In a preferred embodiment of the present invention, the source local ID, and packet length are parsed in block 735 .
- the receive link checks for end of packet (block 755 ). When end of packet is reached after block 755 , the receive link returns to IDLE state 705 .
- packet transfer request generator 533 contains a request state machine that is started after start of packet is received (block 710 ) and packet checker 536 contains a packet checking/storing state machine that is started after start of packet is received by the link (block 710 ).
- packet checker 536 contains a packet checking/storing state machine that is started after start of packet is received by the link (block 710 ).
- the first word and second word are saved locally until the first two words are verified for correctness by the packet checker 536 .
- packet errors are determined by Rx Link 509 , which provides an error signal acted upon by packet checker 536 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This invention relates generally to the field of network technology, and more specifically to a method of processing packets in a switching system.
- Since 1991, when the PCI bus was introduced as one of the first industry standards for input/output and peripheral communications, most computer system architectures have utilized PCI for input/output (I/O) communications. During the time that the PCI standard has gained wide acceptance, the performance capabilities of the typical computer system have drastically improved. The increases in computer performance and the associated demands placed upon computer networks by end users have rapidly exceeded the capabilities for which the PCI bus was designed. Expensive high-end servers, database access systems, and network switches have addressed the shortcomings of the PCI standard through the creation of specialized and proprietary data transfer architectures. Newer, faster versions of the PCI architecture are also common, but these have the same inherent disadvantage of the PCI bus in that a parallel architecture is used. With the anticipated continued growth of demand for data services over the internet and in computer-computer communications, a new long-term solution was needed.
- One proposed solution is the Infiniband architecture. Infiniband is a joint effort of several computer and peripheral manufacturers, including IBM, Intel, Compaq, HP, Dell, Microsoft and Sun Microsystems. The Infiniband specification describes an interconnect technology that enables processor nodes and input/output nodes to be joined together to form a system area network. The Infiniband architecture, if properly designed, is independent of the type of operating system and the processing platform used. This architecture is partially based upon the observation that with the needs for greater bandwidth and lower data latency, the input/output devices in a network have become more complex and have increased processing capabilities.
- Referring to FIG. 1, a high-level diagram of one subnetwork of the Infiniband
Architecture 100 is shown. The Infiniband architecture is designed using an extensive I/O switched network. The subnetwork shown in FIG. 1 uses a point-to-point switching network, where each switch may be linked to one or more processing nodes, routers, I/O devices, and data storage devices. This type of link connectivity may be characterized as module-to-module or chassis-to-chassis, depending upon whether the links are within a larger subsystem or are links between subsystems. The collection of switches is called the Infiniband switching fabric, or just fabric. The fabric is the heart of the Infiniband architecture and processing devices may be coupled to this fabric in a variety of ways. Typically each device coupled to the fabric has a channel adaptor interface. The Infiniband specification specifies two types of channel adaptors; the Host Channel Adaptor (HCA) and the Target Channel Adaptor (TCA). The HCA is designed for nodes that require more processing capability. The TCA is typically designed to support input/output devices. Both the TCA and HCA manage the transport level interactions with the switching fabric. - Referring now to FIG. 2, a more detailed diagram of a channel adaptor is shown, according to the prior art. Channel adaptors are used in the Infiniband architecture to generate and consume packets. These channel adaptors are present in the form of TCA's and HCA's. A channel adaptor allows devices external to the Infiniband specification access to data through a programmable direct memory access (DMA) engine. This DMA access may be executed locally or remotely. A channel adaptor may have multiple ports as shown in FIG. 2. Each port is coupled to the transport functionality using one or more Virtual Lanes (VLs). Each VL provides it's own buffering flow control so that each port can send and receive data packets simultaneously.
- Referring now to FIG. 3, a more detailed diagram of an Infiniband switch is shown, according to the prior art. The switches specified in the Infiniband architecture generate or consume data. Packets received by the switch are forwarded to the destination address specified in the packets routing header. Thus, the utility of switches in the Infiniband architecture is the ability to interconnect links using switches to relay packets between the links. Switches are not directly addressed from the point of view of the end user. Instead, packets traverse a subnetwork transparently through the use of unique identifiers (LIDs). The switch forwards individual packets to an outgoing port using the value specified in the LID. One or more ports that may be used for incoming and outgoing relay functionality are coupled to the switch through one or more Virtual Lanes. In general, Infiniband switches support unicast or multicast routing. In unicast routing, a single packet is delivered to one destination, while multicast routing delivers a single packet to multiple destinations.
- In many switching implementations, a packet is transferred out of a switch using a multiple-cycle request/arbitration/grant operation. During the request phase, the switch queries a destination port, with a request to transfer the packet. The arbitration phase begins with the switch and the destination port exchanging transport information. Based upon the transport parameters of the packet, the packet is granted with a certain quality of service level. From the point of view of the destination port, the arbitration process is a method to handle multiple incoming requests received and to select the appropriate requests that will be granted. If the two sides can agree on the parameters for transport of the packet, the grant phase begins and the switch starts the process of sending the packet to the destination port.
- If the packet has a requirement for low-latency, then the entire portion of the request/arbitration/grant cycle that does not involve the actual transmission of the packet to the destination port increases the latency of the packet. Techniques for minimizing this latency include complex arbitration algorithms as well as techniques that start the transport of the packet while the packet is still being received by the switch.
- In latency-sensitive systems, it is highly desirable to have switches operate in cut-thru mode. That is, switching logic begins transferring a packet out of a switch while the switch is still receiving the packet. This becomes a difficult problem when protocol requires that error packets be discarded or marked bad, while performance requires low latency packet transfers. There is a need in the art for an approach that is able to handle and discard packets even if the switch may have not received the entire packet and checked it for errors prior to starting the request/arbitration/grant cycle that sends the packet to the destination port.
- The present invention provides for the handling and discarding of packets in a packet data network. A device, such as an Infiniband switch, receives packets from a remote location, such as a destination port, and initiates a transfer of the packet to a second remote location. This transfer is initiated while the packet is still being received. The device checks the packet validity while the transfer of the packet to the remote location is being initiated, and, if the packet is invalid, the transfer of the packet to the remote location is canceled. If the device has already started the transfer process, then the packet is truncated and marked as bad. In this latter case only a few extra words are transmitted to the remote location. The device may also support a store and forward operation. In this case, if an error occurs, a store-and-forward error packet allows one or more parts of the packet to be transferred to an output link before being truncated and marked bad. Any remaining parts of the packet previously stored in the input buffer will be discarded and will not consume output link bandwidth.
- The features of the invention believed to be novel are set forth with particularity in the appended claims. The invention itself however, both as to organization and method of operation, together with objects and advantages thereof, may be best understood by reference to the following detailed description of the invention, which describes certain exemplary embodiments of the invention, taken in conjunction with the accompanying drawings in which:
- FIG. 1 is a high-level diagram of the Infiniband Architecture, according to the prior art.
- FIG. 2 is a high-level diagram of a channel adaptor, according to the prior art.
- FIG. 3 is a high-level diagram of a switch, according to the prior art.
- FIG. 4 is a block diagram of a switching architecture that implements the Infiniband architecture.
- FIG. 5 is a block diagram of a structure for handling and discarding packets in a switched data network, in accordance with an embodiment of the present invention.
- FIG. 6 is a flow diagram of a method for handling and discarding packets in the structure of FIG. 5, in accordance with an embodiment of the present invention.
- FIG. 7 is a detailed flow diagram of a method for handling and discarding packets in a switched data network, in accordance with an embodiment of the present invention.
- While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure is to be considered as an example of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.
- Referring to FIG. 4, a block diagram of a switching
architecture 400 that implements the Infiniband architecture is shown. The switching architecture comprisesports port PHY block 405 and PHY block 475 are operable to perform functions related to the physical operation of the switch. The PHY/LINK block 410 and PHY/LINK block 470 serve as the switch interface between the physical switch operation and the logical switch operation. TheLINK block 415 and LINK block 465 contain the functionality related to the transfer of data to a remotelocation using crossbar 445.INPUT BUFFER 420 andINPUT BUFFER 460 perform the switch specific operations related to sending and receiving packets across thecrossbar 445.Arbiter block 440 and MGT block 450 manage the requests for transport across the switch (arbitration) and ensure that the switch transports packets across thecrossbar 445 without contention while meeting the requirements of data packets originated from a plurality of end users. In an embodiment of the present invention, BIST block 455 is also present and supports a built-in self-test functionality. - Referring now to FIG. 5, a block diagram of a structure for handling and discarding
packets 500 in a switched data network is shown, in accordance with an embodiment of the present invention. A receive portion of aport 503 receivespacket data 504 from a remote location. As thedata 504 is received in Rx PHY block 506, a start ofpacket signal 515, end ofpacket signal 518 and packet symbol errors signal 521 are parsed byRx PHY 506.Packet data 504 is concurrently passed toRx Link block 509, which is operable to check the plurality ofpacket data 504 for correctness. If an error is detected, aprotocol error signal 511 is asserted. Theprotocol error signal 511 and packet symbol errors signal 521 are coupled at ORgate 512 or other suitable selection or multiplexer (MUX) element. In this manner protocol errors and physical waveform errors can be detected and apacket processor 530 notified. One of skill in the art will recognize that the functionality of Rx PHY block 506 andRx link block 509 could be combined or further separated without departing from the spirit and scope of the present invention. -
Packet processor 530 receives thepacket data 527, start ofpacket signal 515, end ofpacket signal 518, and anerror signal 524 from theOR gate 512. Within thepacket processor 530, the packettransfer request generator 533 initiates a request to transfer the data to aremote port 569. Thepacket transfer request 563 is coupled to aarbiter 560, which determines when and if thepacket transfer request 563 is accepted. Concurrently, the packet is checked, the output buffer is written, and tag information is written as inblock 536, block 539, and block 542. The tag information stored intag mem block 542 is used bypacket reader 545 to determine whether the plurality of packet data should be sent toremote port 569. Oncepacket reader 545 receives apacket transfer grant 564 fromarbiter 560, the plurality ofpacket data 527, and apacket control signal 548 are multiplexed 557 within thecrossbar 554 to create a packet data andcontrol signal 566. Packet data andcontrol signal 566 is coupled to port B ofremote link 569. In a preferred embodiment of the present invention, packet data and control signal 566 contains a start packet field, an end good packet field, and an end bad packet field. - Referring now to FIG. 6, a flow diagram600 of a method for handling and discarding packets within the structure of FIG. 5 is shown, in accordance with an embodiment of the present invention. A packet sent from a first remote location is received by a switch in an Infiniband subnetwork as in
block 610. The packettransfer request generator 533 of the switch initiates a transfer of the packet to a second remote location while theRx PHY 506 is still receiving the packet from the first remote location (block 620). Note that in a certain embodiment of the present invention, the first remote location and the second remote location are instances of a source port and a destination port, respectively. After initiating the transfer, theRx Link 509 of the switch determines the packet validity (block 630). If the packet is valid, then the transfer is allowed to complete. If the packet contains one or more errors, the switch cancels the transfer operation to the second remote location (block 640). In a preferred embodiment of the present invention, block 536 sets one or more tag parameters intag memory 542 in order to cancel the transfer operation. If the transfer operation to the second remote destination has already been granted and the packet has been partially transferred to the second remote location, then the packet is truncated and an error tag contained intag memory 542 is used to indicate topacket reader 545 that the packet is bad (block 650). In a preferred embodiment of the present invention, the transfer operation may be invalidated at one or more points during the transfer operation. - Because the switch may not be informed that a transfer request has been granted early enough to result in cut-thru operation, the switch may also support a store-and-forward transfer operation. A store-and-forward error packet comprises one or more parts of the packet transferred to an output link before being truncated and marked bad. Any remaining parts of the packet previously stored in the input buffer will be discarded and will not consume any output link bandwidth.
- Referring now to FIG. 7, a detailed flow diagram of the method for handling and discarding packets within the structure of FIG. 5 is shown, in accordance with an embodiment of the present invention. A link waiting to receive packet data is in an IDLE state (block705) until an start of packet signal is received (block 710). If the start of the packet contains an error (block 715), then the link returns to the IDLE state (block 705). In a preferred embodiment of the present invention,
Rx PHY 506 determines whether the packet contains an error inblock 715. If the packet is not in error, then the first packet data is processed and a request to transfer the packet data is asserted (block 720). In a preferred embodiment of the present invention, the processing the first packet includes parsing a header of a first word of the packet data, said first word comprising a Virtual Lane ID, link version ID, service level, destination ID, and link next header. One word is 32 bits. If the first packet is in error (block 725), then a NULL request is asserted and further packets are ignored (block 730). If the first word of the packet is correct inblock 725, then the first word is saved and then a second word of the packet data is processed and a packet transfer request is asserted (block 735). In a preferred embodiment of the present invention, the source local ID, and packet length are parsed inblock 735. If the second word contains data errors or header errors (block 740), then a bad tag flag is written to tag memory 542 (block 745) and no more packet data is processed and the receive link checks for end of packet (block 755). When end of packet is reached afterblock 755, the receive link returns to IDLEstate 705. - If the second word does not contain data or header errors, then the packet data is saved (block750), and end of packet is checked (block 760). Each consecutive word is checked for packet errors and saved (
blocks 740 and 750) until the end of packet is reached (block 760). In a preferred embodiment of the present invention, packettransfer request generator 533 contains a request state machine that is started after start of packet is received (block 710) andpacket checker 536 contains a packet checking/storing state machine that is started after start of packet is received by the link (block 710). In a preferred embodiment of the present invention, the first word and second word are saved locally until the first two words are verified for correctness by thepacket checker 536. In a preferred embodiment of the present invention, packet errors are determined byRx Link 509, which provides an error signal acted upon bypacket checker 536. - While the invention has been described in conjunction with specific embodiments, it is evident that many alternatives, modifications, permutations and variations will become apparent to those of ordinary skill in the art in light of the foregoing description. Accordingly, it is intended that the present invention embrace all such alternatives, modifications and variations as fall within the scope of the appended claims.
Claims (33)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/261,012 US7315542B2 (en) | 2002-09-30 | 2002-09-30 | Handling and discarding packets in a switching subnetwork |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/261,012 US7315542B2 (en) | 2002-09-30 | 2002-09-30 | Handling and discarding packets in a switching subnetwork |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040062244A1 true US20040062244A1 (en) | 2004-04-01 |
US7315542B2 US7315542B2 (en) | 2008-01-01 |
Family
ID=32029851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/261,012 Active 2025-06-27 US7315542B2 (en) | 2002-09-30 | 2002-09-30 | Handling and discarding packets in a switching subnetwork |
Country Status (1)
Country | Link |
---|---|
US (1) | US7315542B2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2401517A (en) * | 2003-05-07 | 2004-11-10 | Agilent Technologies Inc | Communicating between interconnected ports using packet tags |
US20050213595A1 (en) * | 2004-03-23 | 2005-09-29 | Takeshi Shimizu | Limited cyclical redundancy checksum (CRC) modification to support cut-through routing |
US20060059269A1 (en) * | 2004-09-13 | 2006-03-16 | Chien Chen | Transparent recovery of switch device |
US20060056424A1 (en) * | 2004-09-15 | 2006-03-16 | Yolin Lih | Packet transmission using output buffer |
US20060101234A1 (en) * | 2004-11-05 | 2006-05-11 | Hannum David P | Systems and methods of balancing crossbar bandwidth |
US20070058078A1 (en) * | 2005-09-13 | 2007-03-15 | Sony Corporation | System and method for clock replication using reference clock |
US7245613B1 (en) * | 2002-03-28 | 2007-07-17 | Advanced Micro Devices, Inc. | Arrangement in a channel adapter for validating headers concurrently during reception of a packet for minimal validation latency |
US20080310297A1 (en) * | 2006-02-24 | 2008-12-18 | Fujitsu Limited | Error control apparatus |
US20090323540A1 (en) * | 2006-07-05 | 2009-12-31 | Nxp B.V. | Electronic device, system on chip and method for monitoring data traffic |
US20160294566A1 (en) * | 2013-12-13 | 2016-10-06 | Zte Corporation | Switching Device and Packet Discarding Method |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7342878B2 (en) * | 2002-12-23 | 2008-03-11 | International Business Machines Corporation | Input port routing circuit that performs output port filtering |
US9489645B2 (en) * | 2004-05-13 | 2016-11-08 | International Business Machines Corporation | Workflow decision management with derived scenarios and workflow tolerances |
US7526676B2 (en) * | 2004-09-03 | 2009-04-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Slave device having independent error recovery |
US20060156276A1 (en) | 2005-01-10 | 2006-07-13 | Brown William A | Workflow decision management with heuristics |
US20060155848A1 (en) * | 2005-01-10 | 2006-07-13 | Brown William A | Workflow decision management including identifying user reaction to workflows |
US8155119B2 (en) * | 2005-11-01 | 2012-04-10 | International Business Machines Corporation | Intermediate message invalidation |
US20070100990A1 (en) | 2005-11-01 | 2007-05-03 | Brown William A | Workflow decision management with workflow administration capacities |
US20070100884A1 (en) * | 2005-11-01 | 2007-05-03 | Brown William A | Workflow decision management with message logging |
US8010700B2 (en) * | 2005-11-01 | 2011-08-30 | International Business Machines Corporation | Workflow decision management with workflow modification in dependence upon user reactions |
US7657636B2 (en) * | 2005-11-01 | 2010-02-02 | International Business Machines Corporation | Workflow decision management with intermediate message validation |
FR2903257A1 (en) * | 2006-06-30 | 2008-01-04 | Thomson Licensing Sas | COMMUNICATION METHOD ADAPTED FOR TRANSMITTING DATA PACKETS |
US8165025B2 (en) * | 2006-12-08 | 2012-04-24 | Ixia | Method and apparatus for generating a unique packet identifier |
JP5182417B2 (en) * | 2009-03-09 | 2013-04-17 | 富士通株式会社 | Transmission data error checking device and method |
US10691661B2 (en) | 2015-06-03 | 2020-06-23 | Xilinx, Inc. | System and method for managing the storing of data |
US10733167B2 (en) | 2015-06-03 | 2020-08-04 | Xilinx, Inc. | System and method for capturing data to provide to a data analyser |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862461A (en) * | 1987-01-12 | 1989-08-29 | International Business Machines Corp. | Packet switch network protocol |
US5307345A (en) * | 1992-06-25 | 1994-04-26 | Digital Equipment Corporation | Method and apparatus for cut-through data packet transfer in a bridge device |
US5926473A (en) * | 1994-09-12 | 1999-07-20 | Amber Wave Systems, Inc. | Distributed processing ethernet switch with adaptive cut-through switching |
US6922749B1 (en) * | 2001-10-12 | 2005-07-26 | Agilent Technologies, Inc. | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch |
-
2002
- 2002-09-30 US US10/261,012 patent/US7315542B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862461A (en) * | 1987-01-12 | 1989-08-29 | International Business Machines Corp. | Packet switch network protocol |
US5307345A (en) * | 1992-06-25 | 1994-04-26 | Digital Equipment Corporation | Method and apparatus for cut-through data packet transfer in a bridge device |
US5926473A (en) * | 1994-09-12 | 1999-07-20 | Amber Wave Systems, Inc. | Distributed processing ethernet switch with adaptive cut-through switching |
US6922749B1 (en) * | 2001-10-12 | 2005-07-26 | Agilent Technologies, Inc. | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7245613B1 (en) * | 2002-03-28 | 2007-07-17 | Advanced Micro Devices, Inc. | Arrangement in a channel adapter for validating headers concurrently during reception of a packet for minimal validation latency |
GB2401517B (en) * | 2003-05-07 | 2006-01-04 | Agilent Technologies Inc | Method and system to control the communication of data between a plurality of interconnect devices |
GB2401517A (en) * | 2003-05-07 | 2004-11-10 | Agilent Technologies Inc | Communicating between interconnected ports using packet tags |
US7512695B2 (en) | 2003-05-07 | 2009-03-31 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system to control the communication of data between a plurality of interconnect devices |
US20050213595A1 (en) * | 2004-03-23 | 2005-09-29 | Takeshi Shimizu | Limited cyclical redundancy checksum (CRC) modification to support cut-through routing |
US20060059269A1 (en) * | 2004-09-13 | 2006-03-16 | Chien Chen | Transparent recovery of switch device |
US20060056424A1 (en) * | 2004-09-15 | 2006-03-16 | Yolin Lih | Packet transmission using output buffer |
US7600023B2 (en) * | 2004-11-05 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Systems and methods of balancing crossbar bandwidth |
US20060101234A1 (en) * | 2004-11-05 | 2006-05-11 | Hannum David P | Systems and methods of balancing crossbar bandwidth |
US20070058078A1 (en) * | 2005-09-13 | 2007-03-15 | Sony Corporation | System and method for clock replication using reference clock |
US7558275B2 (en) * | 2005-09-13 | 2009-07-07 | Sony Corporation | System and method for clock replication using reference clock |
US20080310297A1 (en) * | 2006-02-24 | 2008-12-18 | Fujitsu Limited | Error control apparatus |
US8264948B2 (en) | 2006-02-24 | 2012-09-11 | Fujitsu Limited | Interconnection device |
US20090323540A1 (en) * | 2006-07-05 | 2009-12-31 | Nxp B.V. | Electronic device, system on chip and method for monitoring data traffic |
US20160294566A1 (en) * | 2013-12-13 | 2016-10-06 | Zte Corporation | Switching Device and Packet Discarding Method |
US10348510B2 (en) * | 2013-12-13 | 2019-07-09 | Zte Corporation | Switching device and packet discarding method |
Also Published As
Publication number | Publication date |
---|---|
US7315542B2 (en) | 2008-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7315542B2 (en) | Handling and discarding packets in a switching subnetwork | |
US11882025B2 (en) | System and method for facilitating efficient message matching in a network interface controller (NIC) | |
US6904507B2 (en) | Buffer management architecture and method for an infiniband subnetwork | |
US5598541A (en) | Node loop port communication interface super core for fibre channel | |
US7813342B2 (en) | Method and apparatus for writing network packets into computer memory | |
US6032190A (en) | System and method for processing data packets | |
KR100555394B1 (en) | Methodology and mechanism for remote key validation for ngio/infiniband applications | |
US8719456B2 (en) | Shared memory message switch and cache | |
US6757768B1 (en) | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node | |
US8249072B2 (en) | Scalable interface for connecting multiple computer systems which performs parallel MPI header matching | |
US6832279B1 (en) | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node | |
US6970921B1 (en) | Network interface supporting virtual paths for quality of service | |
US7447872B2 (en) | Inter-chip processor control plane communication | |
US7174394B1 (en) | Multi processor enqueue packet circuit | |
US7580354B2 (en) | Multi-speed cut through operation in fibre channel switches | |
US20060256796A1 (en) | Independent source read and destination write enhanced DMA | |
US6601150B1 (en) | Memory management technique for maintaining packet order in a packet processing system | |
US20040230717A1 (en) | Processing device | |
US6374282B1 (en) | Method and apparatus for tracking multi-threaded system area network (SAN) traffic | |
JPH07111507A (en) | Data reception system and communication controller | |
JP3844302B2 (en) | Protocol duplication apparatus and protocol duplication method | |
US7420982B2 (en) | Method and system for keeping a fibre channel arbitrated loop open during frame gaps | |
US20060129742A1 (en) | Direct-memory access for content addressable memory | |
US7733854B2 (en) | Forced bubble insertion scheme | |
KR100261887B1 (en) | Data interface method using pci bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AGILENT TECHNOLOGIES, INC., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GIL, MERCEDES E.;TUCKER, S. PAUL;ROJAS, EDMUNDO;REEL/FRAME:013546/0270 Effective date: 20020925 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP PTE. LTD.,SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGILENT TECHNOLOGIES, INC.;REEL/FRAME:017206/0666 Effective date: 20051201 Owner name: AVAGO TECHNOLOGIES GENERAL IP PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGILENT TECHNOLOGIES, INC.;REEL/FRAME:017206/0666 Effective date: 20051201 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT, NEW YORK Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:032851/0001 Effective date: 20140506 Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:032851/0001 Effective date: 20140506 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032851-0001);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037689/0001 Effective date: 20160201 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032851-0001);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037689/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 017206 FRAME: 0666. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:AGILENT TECHNOLOGIES, INC.;REEL/FRAME:038632/0662 Effective date: 20051201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047195/0658 Effective date: 20180509 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047357/0302 Effective date: 20180905 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:048674/0834 Effective date: 20180905 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: BROADCOM INTERNATIONAL PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;REEL/FRAME:053771/0901 Effective date: 20200826 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE Free format text: MERGER;ASSIGNORS:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;BROADCOM INTERNATIONAL PTE. LTD.;REEL/FRAME:062952/0850 Effective date: 20230202 |