WO2000001122A9 - Multi-protocol conversion assistance method and system for a network accelerator - Google Patents

Multi-protocol conversion assistance method and system for a network accelerator

Info

Publication number
WO2000001122A9
WO2000001122A9 PCT/US1999/014527 US9914527W WO0001122A9 WO 2000001122 A9 WO2000001122 A9 WO 2000001122A9 US 9914527 W US9914527 W US 9914527W WO 0001122 A9 WO0001122 A9 WO 0001122A9
Authority
WO
WIPO (PCT)
Prior art keywords
packet
beginning
buffer
engine
offset
Prior art date
Application number
PCT/US1999/014527
Other languages
French (fr)
Other versions
WO2000001122A1 (en
Inventor
Simon Chong
Anguo Tony Huang
Ryszard Bleszynski
David A Stelliga
Original Assignee
Softcom Microsystems
Simon Chong
Anguo Tony Huang
Ryszard Bleszynski
David A Stelliga
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Softcom Microsystems, Simon Chong, Anguo Tony Huang, Ryszard Bleszynski, David A Stelliga filed Critical Softcom Microsystems
Priority to EP99931960A priority Critical patent/EP1131923B1/en
Priority to DE69935608T priority patent/DE69935608T2/en
Priority to AU48365/99A priority patent/AU4836599A/en
Publication of WO2000001122A1 publication Critical patent/WO2000001122A1/en
Publication of WO2000001122A9 publication Critical patent/WO2000001122A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/4608LAN interconnection over ATM networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9026Single buffer per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5617Virtual LANs; Emulation of LANs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]

Definitions

  • Patent Application No. _/ entitled “METHOD AND APPARATUS FOR CONTROLLING A NETWORK PROCESSOR” (Attorney Docket No. 19148-000600US);
  • Patent Application No. __/ entitled "SYSTEM AND METHOD
  • Patent Application No. / entitled “SYSTEMS AND METHODS FOR IMPLEMENTING POINTER MANAGEMENT” (Attorney Docket No. 19148-001200US);
  • Patent Application No. _/ entitled "SYSTEM FOR MULTILAYER BROADBAND PROVISIONING IN COMPUTER NETWORKS" (Attorney Docket No. 19148-000900US); and Patent Application No. _/ , entitled "NETWORK
  • the present invention relates in general to protocol conversion and tagging in networking systems and more particularly to techniques for converting multiple protocol types in a network accelerator to accommodate high bandwidth demand in an Asynchronous Transfer Mode (ATM) networking system.
  • ATM Asynchronous Transfer Mode
  • Network devices such as client computer systems, servers, hubs, routers, switches, network backbones, etc., are each complex devices that require digital processing in hardware and software to facilitate network communication.
  • Some tasks performed in a network device include translation between different network standards such as Ethernet and ATM, reformatting data, traffic scheduling, routing data cells, packets messages, etc. Depending on the particular protocol being implemented, some tasks may be performed at different points in the network.
  • VC Virtual Channel
  • VCs There are typically many VCs in each system and each VC has its own characteristics, such as packet type, packet size and protocols.
  • a descriptor which identifies the particular VC and its characteristics and requirements is stored in a memory. When a scheduler determines that a particular VC is ready for transmission, the VC descriptor is accessed and processed to determine the appropriate characteristics and requirements for cell transmission on the particular connection.
  • a packet In a typical network system, many different packets formatted according to different protocols are transported across the many various networking system devices using many VCs.
  • a packet When a packet is received over the network by a networking device, it is desirable to store the packet in a buffer for further processing of the information in the packet. For example, it is desirable to read information in a packet header and to add information to a packet header.
  • the packet header size will vary accordingly. Adding information to a packet header is generally a slow process, limited by the time it takes to rebuild the packet and store it in a new buffer. Such rebuilding is usually done by software resident on a host CPU and can take many clock cycles to complete. It is therefore desirable to provide a networking device with the capability of adding information to a packet header without rebuilding the packet. It is also desirable to provide a generic packet header for all protocol types to improve processing efficiency.
  • the present invention provides novel techniques for accommodating multiple protocol encapsulation formats in a networking system.
  • the techniques of the present invention provide systems and methods for adding information to a packet header without rebuilding and storing the packet in a second buffer location so as to assist in converting multiple protocol types.
  • a network device includes a transmit processing engine, a receive processing engine and one or more memories, each memory including one or more buffers for storing packets.
  • the receive engine When packets are received, the receive engine is able to add a 4, 8, 12 or 16-byte tag to the front of each packet on a per-VC basis and store the packets buffers. Additionally, the receive engine is able to add an offset to the starting address of each packet in the buffer to which it is stored relative to the beginning of that buffer..
  • the transmit engine is able to transmit the packet from an address that is offset from the starting address of the packet buffer by one or more bytes. Additionally, the transmit engine is able to add one of several predefined packet headers on a per- packet basis. In one embodiment, all components of the network device are implemented on a single semiconductor chip.
  • a networking system device coupled to one or more networks.
  • the device typically comprises a memory including one or more buffers, each buffer for storing a packet, and a receive processing engine coupled to the memory.
  • the receive engine adds a per-VC tag to the beginning of the packet, wherein the tag is associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers.
  • VCs virtual channels
  • a networking system device coupled to one or more networks.
  • the device typically comprises a memory including one or more buffers, wherein a first packet for a first one of a plurality of VCs is stored in a first one of the buffers, and wherein the first packet is stored in the first buffer.
  • the device also typically includes a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at an offset address relative to the beginning o f the first buffer.
  • a networking system device coupled to one or more networks.
  • the device typically comprises a memory including one or more buffers, each buffer for storing a packet, and a receive processing engine coupled to the memory.
  • the receive engine adds a per-VC tag to the beginning of the packet, the tag being associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers.
  • the device also typically includes a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at a first offset address relative to the beginning of the first buffer.
  • a method of processing a packet for transmission in a networking system device wherein the device is coupled to one or more networks, the device including a memory having one or more buffers, wherein the memory is coupled to a transmit processing engine and a receive processing engine.
  • the method typically comprises the steps of receiving the packet on a first one of a plurality of virtual channels (VCs) by the receive engine, adding a tag to the beginning of the packet, the tag associated with the first VC, and storing the packet to a first one of the buffers.
  • the method also typically includes the step of, when the first packet is ready to be transmitted, starting transmission of the packet beginning at a first offset address relative to the beginning of the first buffer by the transmit engine.
  • Figure 1 is a block diagram of the architecture of a network processing engine according to the present invention.
  • Figure 2 illustrates examples of the data processing capabilities of network processing engine 10 according to the present invention
  • Figure 3 illustrates examples of packet encapsulation formats supported by engine 10 according to the present invention
  • Figure 4 summarizes examples of offset values and fields included in the generic header according to the present invention
  • Figure 5 illustrates an example of internal LLC/SNAP values used by engine 10 according to an embodiment of the present invention.
  • FIG. 1 is a block diagram of the architecture of a network processing engine 10 according to the present invention.
  • the network processing engine of the present invention is useful for a variety of network communications applications including implementation in multi-protocol network interface cards (NICs), server NICs, workgroup, IP and ATM switches, multi-protocol and IP routers, ATM backbone switch applications, multi-protocol and multi -protocol
  • NICs network interface cards
  • server NICs workgroup
  • IP and ATM switches multi-protocol and IP routers
  • ATM backbone switch applications multi-protocol and multi -protocol
  • processing engine 10 includes a local memory interface block 15, UTOPIA interface 20, Direct Memory Access Controller (DMAC) 25, PCI interface 30, first internal bus 40, second internal bus 45, third internal bus 50, and cell bus 55.
  • processing engine 10 also includes an internal memory 80 and a receiver block 60 and a transmitter block 70 for processing incoming and outgoing data transmissions, respectively, over a communications interface, such as UTOPIA interface 20.
  • Local memory interface block 15 provides a connection to a local, off-chip system memory, such as DRAM, SRAM, SDRAM, SSRAM or any combination thereof.
  • DMAC 25 provides control of data transfers between external memories (PCI), internal memory 80 and the local memory.
  • Internal memory 80 is used in one embodiment to store VC descriptors on-chip for fast access of the VC descriptors. Additionally, in one embodiment, internal memory 80 stores allowed cell rate (ACR) and minimum cell rate (MCR) bitmaps to provide enhanced ABR traffic scheduling capabilities.
  • ACR allowed cell rate
  • MCR minimum cell rate
  • PCI interface 30 provides a connection to external intelligence, such as a host computer system, and external packet memories.
  • First and second internal buses 40 and 45 in one embodiment are non-multiplexed 32 bit address and 64 bit data buses.
  • PCI interface 30 is configured to run at frequencies up to 33 MHz over a 32 bit PCI bus, or at frequencies up to 66 MHz over a 64 bit PCI bus. For example, to achieve a 622 Mbps line rate, a 64 bit interface is used with frequencies up to 66 MHz.
  • UTOPIA interface 20 supports connections to a broad range of layer 1 physical interfaces, including, for example, OC-1, OC-3, OC-12, OC-48, OC-192 and DS-3 interfaces and the like.
  • the UTOPIA data bus is 16 bits, whereas for a 155 Mbps line rate the UTOPIA bus is 8 bits.
  • Third internal data bus 50 is an 8 or 16 bit UTOPIA compatible interface.
  • Cell bus 55 is a 64 bit data path and is used to transfer cells or frames between internal cell/frame buffers of receiver block 60 and transmitter block 70 and the PCI memory space through DMAC 25. Cell bus 55 allows several transactions to occur in parallel. For example, data payload transfers and descriptor data movement may occur simultaneously. Additionally, for a 622 Mbps line rate, cell bus 55 is capable of off-loading up to 160 MBps of bandwidth from local memory.
  • FIG. 2 illustrates examples of the data processing capabilities of network processing engine 10.
  • the exemplary data processing capabilities shown can be generally classified into four areas: receive data (from the UTOPIA port via UTOPIA interface 20), transmit data (to the UTOPIA port), DMA data transfer (between the PCI bus via PCI interface 30 and a local bus such as first internal bus 40), and UTOPIA loop- back (from the UTOPIA port back to the UTOPIA port).
  • engine 10 transparently transfers packets from the PCI bus to a local bus and vice versa via direct memory access (DMA). Additionally, engine 10 transfers receive UTOPIA data back to the transmit UTOPIA port on a per VC basis. Incoming, or receive, data from UTOPIA port to either the local bus or the
  • DMA direct memory access
  • PCI bus is checked for the proper AAL or OAM protocol, and optionally policed for traffic shape conformance.
  • AAL5 the processing typically includes length and CRC- 32 verification.
  • OAM cells the CRC- 10 is checked.
  • engine 10 has the ability to add a 4, 8, 12 or 16-byte tag to the front of each packet on a per-VC basis when storing the packet to a buffer as will be discussed in more detail below.
  • Engine 10 performs three major operations on the outgoing data (from the PCI or a local bus to the UTOPIA port) according to a preferred embodiment of the present invention.
  • engine 10 provides for an offset starting address which allows packet transmission to begin from any one of multiple bytes of the packet buffer on a per- packet basis.
  • the offset starting address indicates any of the first 63 bytes of the packet buffer. This offset option combined with an ability to place a packet starting anywhere within the first 63 bytes of the buffer implements a generic header capability.
  • up to 63 bytes are added or removed from the front of the packet on a per-packet basis.
  • engine 10 optionally adds one of several predefined packet headers on a per-packet basis.
  • engine 10 adds the AAL and/or OAM overhead to the packet.
  • engine 10 supports a wide range of packet encapsulations.
  • An example of packet encapsulation formats supported by engine 10 are shown in Figure 3. While the examples all show IP data as the payload, engine 10 supports any routing protocol suite since the payload content is transparent to engine 10.
  • the packet encapsulation techniques provided by engine 10 are used to process a wide variety of packet formats.
  • engine 10 adds or removes a generic packet header on a per-packet basis, and adds several fixed packet headers on a per-packet basis.
  • engine 10 when a packet is received from the UTOPIA port, engine 10 adds a 4, 8, 12 or 16 byte per VC tag to the front of the packet when storing the packet to a buffer.
  • packets are stored in buffers in PCI memory space, but may also be stored in local memory or internal memory 80.
  • the packet is stored at an offset of 0, 16, 32, or 48 bytes in the buffer.
  • the transmission is started from a buffer address based on an offset field in the Add_Packet command, which specifies the number of bytes from the beginning of the buffer that are not to be included as part of the packet.
  • the offset field is a 6-bit field, which allows for up to a 63 byte offset. For example, a value of 0 indicates all the bytes from the beginning of the buffer are to be included, a value of 1 indicates the first byte is not to be included, a value of 2 indicates the first two bytes are not to be included, and so on.
  • the Add_Packet command includes a mode field that allows additional encapsulations to be placed in front of the packet. Although all of the mode-specific formats could be accommodated under the generic header encapsulation, one reason for using the other modes is to reduce the packet processing overhead in both the external intelligence and engine 10. Examples of such encapsulations are shown in Figure 3.
  • mode 0 adds no additional packet encapsulations
  • mode 1 adds an 8-byte encapsulation usually used for LLC/SNAP headers
  • mode 2 adds a 2-byte encapsulation usually used for the LANE VI LECID
  • mode 3 adds an 8-byte encapsulation usually used for LLC/SNAP headers
  • a 4-byte encapsulation usually used the LANE V2 ELANID and a 2-byte encapsulation usually used for the LANE V2 LECID
  • mode 5 adds an 8-byte encapsulation usually used for LLC/SNAP headers and a 4-byte encapsulation usually used for MPOA tags.
  • engine 10 preferably maintains internal LLC/SNAP encapsulation values, but it may maintain fewer or more values. In one embodiment, instead of explicitly indicating these values through the Add-Packet command, the packet source specifies a pointer indicating which of the internal LLC/SNAP values needs to be used.
  • FIG. 5 illustrates an example of internal LLC/SNAP values used by engine 10 according to an embodiment of the present invention.
  • the LLCE (LLC Encapsulation) field is used as an index to a Protocol Header Table to attach the appropriate LLC/SNAP encapsulation. If the value of the LLCE field is 0, the packet is transmitted without LLC/SNAP encapsulation.
  • the first two formats shown in Figure 3 describe two Ethernet formats in use today.
  • the main difference between Ethernet V2 and IEEE 802.3 are the Etype/Length and LLC/SNAP fields. If the Etype/Length field is greater than 1536 (0600h) then the packet is an Ethernet V2 packet, otherwise the packet is an IEEE 802.3 packet.
  • the IEEE 802.3 packet also has an LLC/SNAP field, which helps identify the payload type being carried.
  • the remaining formats shown in Figure 3 include additional encapsulation modes and provide a detailed description of the LLC/SNAP (specified in hexadecimal) and generic headers for some of the more common IP over ATM formats. All bit values are specified in hexadecimal and the length of each field is included in parenthesis and is specified in decimal.
  • mode 0 with the generic header containing the MAC header, is the direct mapping of Ethernet packets into an ATM payload. This mapping is not specified in any of the standards.
  • Mode 0 with no generic header, is the mapping for VC-based multiplexing of routed protocols according to RFC 1483. Mode 0 can also be used for MPLS by adding the multiple 4-byte labels to the front of a packet.
  • Mode 1 is used for the RFC 1483 bridged Ethernet packets without FCS, or MPOA without tags.
  • Mode 2 is used for LANE VI or RFC 1483 VC muxed Ethernet.
  • Mode 3 is used for LANE V2.
  • mode 5 is used for MPOA with tags.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Optical Integrated Circuits (AREA)
  • Elevator Control (AREA)
  • Vending Machines For Individual Products (AREA)
  • Computer And Data Communications (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Chemical Treatment Of Metals (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)

Abstract

Systems and methods for assisting multiple protocol conversion in a network accelerator. A network device includes a transmit processing engine (70), a receive processing engine (60) and one or more memories (80), each memory including one or more buffers for storing packets. When a packet is received, the receive engine (60) adds a 4, 8, 12 or 16-byte tag to the front of the packet on a per-VC basis and stores the packet to a buffer. Additionally, the receive engine (60) is able to add an offset to the starting address of the packet in the buffer relative to the beginning of the buffer. When a packet is to be transmitted, the transmit engine (70) is able to transmit the packet from an address that is offset from the starting address of the buffer by one or more bytes. Additionally, the transmit engine (70) is able to add one of several predefined packet headers on a per-packet basis.

Description

MULTI-PROTOCOL CONVERSION ASSISTANCE METHOD AND
SYSTEM FOR A NETWORK ACCELERATOR
CROSS-REFERENCES TO RELATED APPLICATIONS This application claims priority from U.S. Provisional Patent Application No. 60/090, 939, entitled "NETWORK ACCELERATOR SUBSYSTEM BASED ON SINGLE-CHIP NETWORK PROCESSOR AND INTERFACE PROTOCOL," filed June 27, 1998, the entire disclosure of which is herein incorporated by reference for all purposes. This application also claims priority from U.S. Patent Application No. 09/271,061, entitled "TWO-DIMENSIONAL QUEU NG/DE-QUEULNG METHODS AND SYSTEMS FOR IMPLEMENTING THE SAME," filed March 16, 1999, (Attorney Docket No. 19148-000200US) the entire disclosure of which is herein incorporated by reference for all purposes.
The following patent applications, including this one, are being filed concurrently, and the disclosure of each other application is hereby incorporated by reference in its entirety into this application for all purposes:
Patent Application No. _/ , , entitled "METHOD AND APPARATUS FOR CONTROLLING A NETWORK PROCESSOR" (Attorney Docket No. 19148-000600US);
Patent Application No. __/ , , entitled "SYSTEM AND METHOD
FOR PERFORMING CUT-THROUGH FORWARDING IN AN ATM NETWORK SUPPORTING LAN EMULATION" (Attorney Docket No. 19148-000700US); Patent Application No. _/ , , entitled "SYSTEM AND METHOD
FOR CONTROLLING A NETWORK PROCESSOR" (Attorney Docket No. 19148- 001300US);
Patent Application No. __/ ,__, entitled "CBR/VBR TRAFFIC
SCHEDULER" (Attorney Docket No. 19148-000800US); Patent Application No. _/ , , entitled "MULTI-PROTOCOL
CONVERSION ASSISTANCE METHOD AND SYSTEM FOR A NETWORK ACCELERATOR" (Attorney Docket No. 19148-001100US);
Patent Application No. / , , entitled "SYSTEMS AND METHODS FOR IMPLEMENTING POINTER MANAGEMENT" (Attorney Docket No. 19148-001200US);
Patent Application No. _/ , , entitled "SYSTEM FOR MULTILAYER BROADBAND PROVISIONING IN COMPUTER NETWORKS" (Attorney Docket No. 19148-000900US); and Patent Application No. _/ , , entitled "NETWORK
ACCELERATOR SUBSYSTEM BASED ON SINGLE-CHIP NETWORK PROCESSOR AND INTERFACE PROTOCOL" (Attorney Docket No. 19148- 000110US).
Additionally, the disclosure of each of the following pending patent applications is hereby incorporated by reference in its entirety into this application for all purposes:
Patent Application No. / , , entitled "SYSTEMS AND
METHODS FOR IMPLEMENTING ABR WITH GUARANTEED MCR", filed June 17, 1999 (Attorney Docket No. 19148-000300US); and Patent Application No. 09/270,287, entitled "SYSTEMS AND
METHODS FOR ON-CHIP STORAGE OF VIRTUAL CONNECTION DESCRIPTORS", filed March 16, 1999 (Attorney Docket No. 19148-000400US).
BACKGROUND OF THE INVENTION The present invention relates in general to protocol conversion and tagging in networking systems and more particularly to techniques for converting multiple protocol types in a network accelerator to accommodate high bandwidth demand in an Asynchronous Transfer Mode (ATM) networking system.
The need for faster communication among computers and other systems requires ever faster and more efficient networks. Today, networks typically use an amalgam of various software and hardware to implement a variety of network functions and standards. Network devices such as client computer systems, servers, hubs, routers, switches, network backbones, etc., are each complex devices that require digital processing in hardware and software to facilitate network communication. Some tasks performed in a network device include translation between different network standards such as Ethernet and ATM, reformatting data, traffic scheduling, routing data cells, packets messages, etc. Depending on the particular protocol being implemented, some tasks may be performed at different points in the network.
In conventional networking systems that implement ATM, data traffic is handled by a Virtual Channel, or Virtual Connection (VC). There are typically many VCs in each system and each VC has its own characteristics, such as packet type, packet size and protocols. For each VC, a descriptor which identifies the particular VC and its characteristics and requirements is stored in a memory. When a scheduler determines that a particular VC is ready for transmission, the VC descriptor is accessed and processed to determine the appropriate characteristics and requirements for cell transmission on the particular connection.
In a typical network system, many different packets formatted according to different protocols are transported across the many various networking system devices using many VCs. When a packet is received over the network by a networking device, it is desirable to store the packet in a buffer for further processing of the information in the packet. For example, it is desirable to read information in a packet header and to add information to a packet header. Depending on the protocol used, the packet header size will vary accordingly. Adding information to a packet header is generally a slow process, limited by the time it takes to rebuild the packet and store it in a new buffer. Such rebuilding is usually done by software resident on a host CPU and can take many clock cycles to complete. It is therefore desirable to provide a networking device with the capability of adding information to a packet header without rebuilding the packet. It is also desirable to provide a generic packet header for all protocol types to improve processing efficiency.
SUMMARY OF THE INVENTION The present invention provides novel techniques for accommodating multiple protocol encapsulation formats in a networking system. In particular, the techniques of the present invention provide systems and methods for adding information to a packet header without rebuilding and storing the packet in a second buffer location so as to assist in converting multiple protocol types.
According to the invention, systems and methods for assisting multiple protocol conversion in a network accelerator are provided. According to the invention, a network device includes a transmit processing engine, a receive processing engine and one or more memories, each memory including one or more buffers for storing packets. When packets are received, the receive engine is able to add a 4, 8, 12 or 16-byte tag to the front of each packet on a per-VC basis and store the packets buffers. Additionally, the receive engine is able to add an offset to the starting address of each packet in the buffer to which it is stored relative to the beginning of that buffer.. When a packet is to be transmitted, the transmit engine is able to transmit the packet from an address that is offset from the starting address of the packet buffer by one or more bytes. Additionally, the transmit engine is able to add one of several predefined packet headers on a per- packet basis. In one embodiment, all components of the network device are implemented on a single semiconductor chip.
According to an aspect of the invention, a networking system device coupled to one or more networks is provided. The device typically comprises a memory including one or more buffers, each buffer for storing a packet, and a receive processing engine coupled to the memory. When a packet for a first one of a plurality of virtual channels (VCs) is received, the receive engine adds a per-VC tag to the beginning of the packet, wherein the tag is associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers.
According to another aspect of the invention, a networking system device coupled to one or more networks is provided. The device typically comprises a memory including one or more buffers, wherein a first packet for a first one of a plurality of VCs is stored in a first one of the buffers, and wherein the first packet is stored in the first buffer. The device also typically includes a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at an offset address relative to the beginning o f the first buffer.
According to yet another embodiment of the present invention, a networking system device coupled to one or more networks is provided. The device typically comprises a memory including one or more buffers, each buffer for storing a packet, and a receive processing engine coupled to the memory. When a first packet for a first one of a plurality of VCs is received, the receive engine adds a per-VC tag to the beginning of the packet, the tag being associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers. The device also typically includes a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at a first offset address relative to the beginning of the first buffer.
According to an additional aspect of the invention, a method of processing a packet for transmission in a networking system device is provided, wherein the device is coupled to one or more networks, the device including a memory having one or more buffers, wherein the memory is coupled to a transmit processing engine and a receive processing engine. The method typically comprises the steps of receiving the packet on a first one of a plurality of virtual channels (VCs) by the receive engine, adding a tag to the beginning of the packet, the tag associated with the first VC, and storing the packet to a first one of the buffers. The method also typically includes the step of, when the first packet is ready to be transmitted, starting transmission of the packet beginning at a first offset address relative to the beginning of the first buffer by the transmit engine.
Reference to the remaining portions of the specification, including the drawings and claims, will realize other features and advantages of the present invention. Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of the architecture of a network processing engine according to the present invention;
Figure 2 illustrates examples of the data processing capabilities of network processing engine 10 according to the present invention; Figure 3 illustrates examples of packet encapsulation formats supported by engine 10 according to the present invention;
Figure 4 summarizes examples of offset values and fields included in the generic header according to the present invention; and Figure 5 illustrates an example of internal LLC/SNAP values used by engine 10 according to an embodiment of the present invention.
DESCRIPTION OF THE SPECIFIC EMBODIMENTS Figure 1 is a block diagram of the architecture of a network processing engine 10 according to the present invention. In preferred aspects, the network processing engine of the present invention is useful for a variety of network communications applications including implementation in multi-protocol network interface cards (NICs), server NICs, workgroup, IP and ATM switches, multi-protocol and IP routers, ATM backbone switch applications, multi-protocol and multi -protocol
/ATM adapters and the like. In preferred aspects, all components of processing engine 10 reside on a single chip (e.g., a single silicon chip), but all components may be spread across many chips such that processing engine 10 is implemented using many chips. Processing engine 10 includes a local memory interface block 15, UTOPIA interface 20, Direct Memory Access Controller (DMAC) 25, PCI interface 30, first internal bus 40, second internal bus 45, third internal bus 50, and cell bus 55. Processing engine 10 also includes an internal memory 80 and a receiver block 60 and a transmitter block 70 for processing incoming and outgoing data transmissions, respectively, over a communications interface, such as UTOPIA interface 20. Local memory interface block 15 provides a connection to a local, off-chip system memory, such as DRAM, SRAM, SDRAM, SSRAM or any combination thereof. DMAC 25 provides control of data transfers between external memories (PCI), internal memory 80 and the local memory. Internal memory 80 is used in one embodiment to store VC descriptors on-chip for fast access of the VC descriptors. Additionally, in one embodiment, internal memory 80 stores allowed cell rate (ACR) and minimum cell rate (MCR) bitmaps to provide enhanced ABR traffic scheduling capabilities.
PCI interface 30 provides a connection to external intelligence, such as a host computer system, and external packet memories. First and second internal buses 40 and 45 in one embodiment are non-multiplexed 32 bit address and 64 bit data buses. Depending on the desired line rate, PCI interface 30 is configured to run at frequencies up to 33 MHz over a 32 bit PCI bus, or at frequencies up to 66 MHz over a 64 bit PCI bus. For example, to achieve a 622 Mbps line rate, a 64 bit interface is used with frequencies up to 66 MHz. UTOPIA interface 20 supports connections to a broad range of layer 1 physical interfaces, including, for example, OC-1, OC-3, OC-12, OC-48, OC-192 and DS-3 interfaces and the like. To support a 622 Mbps line rate, the UTOPIA data bus is 16 bits, whereas for a 155 Mbps line rate the UTOPIA bus is 8 bits. Third internal data bus 50 is an 8 or 16 bit UTOPIA compatible interface. Cell bus 55 is a 64 bit data path and is used to transfer cells or frames between internal cell/frame buffers of receiver block 60 and transmitter block 70 and the PCI memory space through DMAC 25. Cell bus 55 allows several transactions to occur in parallel. For example, data payload transfers and descriptor data movement may occur simultaneously. Additionally, for a 622 Mbps line rate, cell bus 55 is capable of off-loading up to 160 MBps of bandwidth from local memory.
Figure 2 illustrates examples of the data processing capabilities of network processing engine 10. The exemplary data processing capabilities shown can be generally classified into four areas: receive data (from the UTOPIA port via UTOPIA interface 20), transmit data (to the UTOPIA port), DMA data transfer (between the PCI bus via PCI interface 30 and a local bus such as first internal bus 40), and UTOPIA loop- back (from the UTOPIA port back to the UTOPIA port). Referring to Figure 2, engine 10 transparently transfers packets from the PCI bus to a local bus and vice versa via direct memory access (DMA). Additionally, engine 10 transfers receive UTOPIA data back to the transmit UTOPIA port on a per VC basis. Incoming, or receive, data from UTOPIA port to either the local bus or the
PCI bus is checked for the proper AAL or OAM protocol, and optionally policed for traffic shape conformance. For AAL5, the processing typically includes length and CRC- 32 verification. For OAM cells, the CRC- 10 is checked. Additionally, according to an embodiment of the invention, engine 10 has the ability to add a 4, 8, 12 or 16-byte tag to the front of each packet on a per-VC basis when storing the packet to a buffer as will be discussed in more detail below.
Engine 10 performs three major operations on the outgoing data (from the PCI or a local bus to the UTOPIA port) according to a preferred embodiment of the present invention. First, engine 10 provides for an offset starting address which allows packet transmission to begin from any one of multiple bytes of the packet buffer on a per- packet basis. In preferred aspects, the offset starting address indicates any of the first 63 bytes of the packet buffer. This offset option combined with an ability to place a packet starting anywhere within the first 63 bytes of the buffer implements a generic header capability. In preferred aspects, up to 63 bytes are added or removed from the front of the packet on a per-packet basis. Second, engine 10 optionally adds one of several predefined packet headers on a per-packet basis. Third, engine 10 adds the AAL and/or OAM overhead to the packet. According to one embodiment, engine 10 supports a wide range of packet encapsulations. An example of packet encapsulation formats supported by engine 10 are shown in Figure 3. While the examples all show IP data as the payload, engine 10 supports any routing protocol suite since the payload content is transparent to engine 10. The packet encapsulation techniques provided by engine 10 are used to process a wide variety of packet formats. According to one embodiment, engine 10 adds or removes a generic packet header on a per-packet basis, and adds several fixed packet headers on a per-packet basis. According to a preferred embodiment of the generic header processing capability, when a packet is received from the UTOPIA port, engine 10 adds a 4, 8, 12 or 16 byte per VC tag to the front of the packet when storing the packet to a buffer. In one embodiment, packets are stored in buffers in PCI memory space, but may also be stored in local memory or internal memory 80. According to one embodiment, there is also selection of an offset for storing the packet, including the added per-VC tag, at an offset starting address so as to allow flexibility in manipulating and adding information to the header. In preferred aspects, the packet is stored at an offset of 0, 16, 32, or 48 bytes in the buffer. When a packet is prepared for transmission to the UTOPIA port, e.g., in response to an Add_Packet command received by transmit engine 70 from external intelligence, the transmission is started from a buffer address based on an offset field in the Add_Packet command, which specifies the number of bytes from the beginning of the buffer that are not to be included as part of the packet. In preferred aspects, the offset field is a 6-bit field, which allows for up to a 63 byte offset. For example, a value of 0 indicates all the bytes from the beginning of the buffer are to be included, a value of 1 indicates the first byte is not to be included, a value of 2 indicates the first two bytes are not to be included, and so on.
If, for example, a LANE VI IEEE 802.3 (see Figure 3 for the packet format) packet is received on a VC that is configured for an added 16-byte tag in front of the packet, then by setting the Add Packet offset to various values, differing set of fields in the generic header are possible. A list of examples of possible offset values and fields included in the generic header for this example is shown in Figure 4. In addition to the generic format, in one embodiment, the Add_Packet command includes a mode field that allows additional encapsulations to be placed in front of the packet. Although all of the mode-specific formats could be accommodated under the generic header encapsulation, one reason for using the other modes is to reduce the packet processing overhead in both the external intelligence and engine 10. Examples of such encapsulations are shown in Figure 3. As shown, mode 0 adds no additional packet encapsulations, mode 1 adds an 8-byte encapsulation usually used for LLC/SNAP headers, mode 2 adds a 2-byte encapsulation usually used for the LANE VI LECID, mode 3 adds an 8-byte encapsulation usually used for LLC/SNAP headers, a 4-byte encapsulation usually used the LANE V2 ELANID, and a 2-byte encapsulation usually used for the LANE V2 LECID, and mode 5 adds an 8-byte encapsulation usually used for LLC/SNAP headers and a 4-byte encapsulation usually used for MPOA tags. All of these additional headers are specified directly in the Add-Packet command with the exception of the 8-byte LLC/SNAP encapsulation. To speed up processing of this header, engine 10 preferably maintains internal LLC/SNAP encapsulation values, but it may maintain fewer or more values. In one embodiment, instead of explicitly indicating these values through the Add-Packet command, the packet source specifies a pointer indicating which of the internal LLC/SNAP values needs to be used.
Figure 5 illustrates an example of internal LLC/SNAP values used by engine 10 according to an embodiment of the present invention. In one embodiment, the LLCE (LLC Encapsulation) field is used as an index to a Protocol Header Table to attach the appropriate LLC/SNAP encapsulation. If the value of the LLCE field is 0, the packet is transmitted without LLC/SNAP encapsulation.
The first two formats shown in Figure 3 describe two Ethernet formats in use today. In general, the main difference between Ethernet V2 and IEEE 802.3 are the Etype/Length and LLC/SNAP fields. If the Etype/Length field is greater than 1536 (0600h) then the packet is an Ethernet V2 packet, otherwise the packet is an IEEE 802.3 packet. The IEEE 802.3 packet also has an LLC/SNAP field, which helps identify the payload type being carried. The remaining formats shown in Figure 3 include additional encapsulation modes and provide a detailed description of the LLC/SNAP (specified in hexadecimal) and generic headers for some of the more common IP over ATM formats. All bit values are specified in hexadecimal and the length of each field is included in parenthesis and is specified in decimal. As shown, mode 0, with the generic header containing the MAC header, is the direct mapping of Ethernet packets into an ATM payload. This mapping is not specified in any of the standards. Mode 0, with no generic header, is the mapping for VC-based multiplexing of routed protocols according to RFC 1483. Mode 0 can also be used for MPLS by adding the multiple 4-byte labels to the front of a packet. Mode 1 is used for the RFC 1483 bridged Ethernet packets without FCS, or MPOA without tags. Mode 2 is used for LANE VI or RFC 1483 VC muxed Ethernet. Mode 3 is used for LANE V2. Finally, mode 5 is used for MPOA with tags.
While the invention has been described by way of example and in terms of the specific embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements as would be apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.

Claims

WHAT IS CLAIMED IS: 1. A networking system device coupled to one or more networks, the device comprising: a memory including one or more buffers, each buffer for storing a packet; and a receive processing engine coupled to the memory, wherein when a packet for a first one of a plurality of virtual channels (VCs) is received, the receive engine adds a per-VC tag to the beginning of the packet, said tag associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers.
2. The device of claim 1 , wherein the tag is one of a 4, 8, 12 and 16 byte tag.
3. The device of claim 1, wherein the receive processor stores the packet to the first buffer at an offset starting address relative to the beginning of the buffer.
4. The device of claim 3, wherein the offset starting address is one of 16, 32 and 48 bytes relative to the beginning of the first buffer.
5. The device of claim 3, wherein an external processor instructs the receive processor to store the packet to the first buffer at the offset starting address.
6. A networking system device coupled to one or more networks, the device comprising: a memory including one or more buffers, wherein a first packet for a first one of a plurality of virtual channels (VCs) is stored in a first one of the buffers, and wherein the first packet is stored in the first buffer; and a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at an offset address relative to the beginning of the first buffer.
7. The device of claim 6, wherein the transmit processor receives an add packet command indicating that the first packet is ready for transmission, wherein the add packet command includes an offset field that indicates where the offset address begins relative to the beginning of the first buffer.
8. The device of claim 7, wherein the offset field is a 6-bit field.
9. The device of claim 7, wherein the add packet command further includes a mode field for specifying a packet encapsulation to be added to the beginning of the packet, wherein transmit processor adds the packet encapsulation specified prior to transmission.
10. The device of claim 9, wherein the mode field specifies that no encapsulation is to be added.
11. The device of claim 9, wherein the packet encapsulation specified by the mode field includes an LLC/SNAP header.
12. The device of claim 11 , wherein the mode field further specifies adding one of a LANE header and an MPOA tag.
13. The device of claim 11 further including an LLC/SNAP encapsulation table identifying a plurality of LLC/SNAP encapsulation values, wherein the add packet command further includes a LLCE field which points to a specific one of the LLC/SNAP encapsulation values, wherein the specific value is added to the packet.
14. A networking system device coupled to one or more networks, the device comprising: a memory including one or more buffers, each buffer for storing a packet; and a receive processing engine coupled to the memory, wherein when a first packet for a first one of a plurality of virtual channels (VCs) is received, the receive engine adds a per-VC tag to the beginning of the packet, said tag associated with the first VC, and wherein the receive engine stores the packet to a first one of the buffers; and a transmit processing engine coupled to the memory, wherein when the first packet is ready to be transmitted, the transmit engine starts transmission of the first packet beginning at a first offset address relative to the beginning of the first buffer.
15. The device of claim 14, wherein the receive processor stores the packet to the first buffer at a second offset starting address relative to the beginning of the buffer.
16. The device of claim 15, wherein the second offset starting address is one of 16, 32 and 48 bytes relative to the beginning of the first buffer.
17. The device of claim 14, wherein the transmit processor receives an add packet command indicating that the first packet is ready for transmission, wherein the add packet command includes an offset field that indicates where the first offset address begins relative to the beginning of the first buffer.
18. The device of claim 17, wherein the offset field is a 6-bit field.
19. The device of claim 17, wherein the add packet command further includes a mode field for specifying a packet encapsulation to be added to the beginning of the packet, wherein transmit processor adds the packet encapsulation specified prior to transmission.
20. The device of claim 14, wherein the tag is one of a 4, 8, 12 and 16 byte tag.
21. The device of claim 14, wherein the memory, receive engine and transmit engine are implemented together on a single chip.
22. A method of processing a packet for transmission in a networking system device coupled to one or more networks, the device including a memory having one or more buffers, the memory coupled to a transmit processing engine and a receive processing engine, the method comprising the steps of: receiving the packet on a first one of a plurality of virtual channels (VCs) by the receive engine; adding a tag to the beginning of the packet, the tag associated with the first VC; storing the packet to a first one of the buffers; and when the first packet is ready to be transmitted, starting transmission of the packet beginning at a first offset address relative to the beginning of the first buffer by the transmit engine.
23. The method of claim 22, wherein the receive processor performs the step of storing the packet in the first buffer, and wherein the step of storing includes storing the packet beginning at a second offset starting address relative to the beginning of the buffer.
24. The method of claim 23, wherein the second offset starting address is one of 16, 32 and 48 bytes relative to the beginning of the first buffer.
25. The method of claim 22, further including the steps of receiving by the transmit engine an add packet command indicating that the first packet is ready for transmission, wherein the add packet command includes an offset field that indicates where the first offset address begins relative to the beginning of the first buffer.
26. The method of claim 25, wherein the offset field is a 6-bit field.
27. The method of claim 25, wherein the add packet command further includes a mode field for specifying a packet encapsulation to be added to the beginning of the packet, wherein the method further includes the step of, prior to transmission, adding to the packet the packet encapsulation specified.
28. The method of claim 22, wherein the tag is one of a 4, 8, 12 and 16 byte tag.
29. The method of claim 22, wherein the memory, receive engine and transmit engine are implemented together on a single chip.
PCT/US1999/014527 1998-06-27 1999-06-25 Multi-protocol conversion assistance method and system for a network accelerator WO2000001122A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP99931960A EP1131923B1 (en) 1998-06-27 1999-06-25 Multi-protocol conversion assistance method and system for a network accelerator
DE69935608T DE69935608T2 (en) 1998-06-27 1999-06-25 METHOD AND SYSTEM FOR MULTIPROTOCOL CONVERSION ASSISTANCE FOR A NETWORK ACCESSOR
AU48365/99A AU4836599A (en) 1998-06-27 1999-06-25 Multi-protocol conversion assistance method and system for network accelerator

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US9093998P 1998-06-27 1998-06-27
US60/090,939 1998-06-27
US09/271,061 1999-03-16
US09/271,061 US6724767B1 (en) 1998-06-27 1999-03-16 Two-dimensional queuing/de-queuing methods and systems for implementing the same

Publications (2)

Publication Number Publication Date
WO2000001122A1 WO2000001122A1 (en) 2000-01-06
WO2000001122A9 true WO2000001122A9 (en) 2000-03-23

Family

ID=26782804

Family Applications (7)

Application Number Title Priority Date Filing Date
PCT/US1999/014263 WO2000001116A1 (en) 1998-06-27 1999-06-25 Method and apparatus for controlling a network processor
PCT/US1999/014520 WO2000000892A1 (en) 1998-06-27 1999-06-25 Systems and methods for implementing pointer management
PCT/US1999/014522 WO2000000910A1 (en) 1998-06-27 1999-06-25 System and method for controlling a network processor
PCT/US1999/014270 WO2000001121A1 (en) 1998-06-27 1999-06-25 Two-dimensional queuing/de-queuing methods and systems for implementing the same
PCT/US1999/014527 WO2000001122A1 (en) 1998-06-27 1999-06-25 Multi-protocol conversion assistance method and system for a network accelerator
PCT/US1999/014264 WO2000001119A1 (en) 1998-06-27 1999-06-25 System and method for performing cut-through forwarding in an atm network supporting lan emulation
PCT/US1999/014268 WO2000001120A1 (en) 1998-06-27 1999-06-25 Cbr/vbr traffic scheduler

Family Applications Before (4)

Application Number Title Priority Date Filing Date
PCT/US1999/014263 WO2000001116A1 (en) 1998-06-27 1999-06-25 Method and apparatus for controlling a network processor
PCT/US1999/014520 WO2000000892A1 (en) 1998-06-27 1999-06-25 Systems and methods for implementing pointer management
PCT/US1999/014522 WO2000000910A1 (en) 1998-06-27 1999-06-25 System and method for controlling a network processor
PCT/US1999/014270 WO2000001121A1 (en) 1998-06-27 1999-06-25 Two-dimensional queuing/de-queuing methods and systems for implementing the same

Family Applications After (2)

Application Number Title Priority Date Filing Date
PCT/US1999/014264 WO2000001119A1 (en) 1998-06-27 1999-06-25 System and method for performing cut-through forwarding in an atm network supporting lan emulation
PCT/US1999/014268 WO2000001120A1 (en) 1998-06-27 1999-06-25 Cbr/vbr traffic scheduler

Country Status (6)

Country Link
US (2) US6724767B1 (en)
EP (2) EP1092199A4 (en)
AT (1) ATE357789T1 (en)
AU (7) AU4961599A (en)
DE (1) DE69935608T2 (en)
WO (7) WO2000001116A1 (en)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) * 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6976083B1 (en) * 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US7392279B1 (en) * 1999-03-26 2008-06-24 Cisco Technology, Inc. Network traffic shaping using time-based queues
US6804239B1 (en) * 1999-08-17 2004-10-12 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with co-processor circuitry to correlate a packet stream with context information
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US7301954B1 (en) * 1999-09-24 2007-11-27 United States Of America As Represented By The Secretary Of The Navy Multiple-buffer queueing of data packets with high throughput rate
US6697330B1 (en) * 1999-11-26 2004-02-24 Hewlett-Packard Development Company L.P. Method and system for output flow control in network multiplexers
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US20020027909A1 (en) * 2000-06-30 2002-03-07 Mariner Networks, Inc. Multientity queue pointer chain technique
EP1197695A3 (en) * 2000-10-13 2003-04-16 Honda Giken Kogyo Kabushiki Kaisha Spool valve
US6947416B1 (en) * 2000-12-13 2005-09-20 Cisco Technology, Inc. Generalized asynchronous HDLC services
AU2002242067A1 (en) * 2001-01-30 2002-08-12 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US7342942B1 (en) 2001-02-07 2008-03-11 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port
US6877081B2 (en) * 2001-02-13 2005-04-05 International Business Machines Corporation System and method for managing memory compression transparent to an operating system
US6990115B2 (en) * 2001-02-26 2006-01-24 Seabridge Ltd. Queue control method and system
US7324509B2 (en) * 2001-03-02 2008-01-29 Broadcom Corporation Efficient optimization algorithm in memory utilization for network applications
US6937606B2 (en) * 2001-04-20 2005-08-30 International Business Machines Corporation Data structures for efficient processing of IP fragmentation and reassembly
US7286566B1 (en) 2001-05-08 2007-10-23 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains reduced number of segmentation contexts
US7185105B2 (en) * 2001-05-11 2007-02-27 Bea Systems, Inc. Application messaging system with flexible message header structure
WO2002096043A1 (en) * 2001-05-21 2002-11-28 Xelerated Ab Method and apparatus for processing blocks in a pipeline
KR20020090556A (en) * 2001-05-28 2002-12-05 (주)한내테크놀러지 System for concentration using virtual channel connection between asynchronous transfer mode network and other network and method thereof
US7210146B2 (en) * 2001-06-18 2007-04-24 Microsoft Corporation Sleep queue management
US7302684B2 (en) * 2001-06-18 2007-11-27 Microsoft Corporation Systems and methods for managing a run queue
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7046628B2 (en) * 2001-09-24 2006-05-16 Intel Corporation Apparatus and method for just-in-time transfer of transmit commands to a network interface
US7079539B2 (en) * 2001-12-21 2006-07-18 Agere Systems Inc. Method and apparatus for classification of packet data prior to storage in processor buffer memory
CN1299477C (en) * 2001-12-28 2007-02-07 中兴通讯股份有限公司 Method for implementing multiplex line speed ATM interface in multi-layer network exchange
US7768522B2 (en) 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
US6809736B1 (en) * 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
US6809735B1 (en) * 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
US7015919B1 (en) * 2002-01-08 2006-03-21 Apple Computer, Inc. Virtualization of graphics resources
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7321926B1 (en) 2002-02-11 2008-01-22 Extreme Networks Method of and system for allocating resources to resource requests
US7298746B1 (en) * 2002-02-11 2007-11-20 Extreme Networks Method and system for reassembling and parsing packets in a network environment
US7584262B1 (en) 2002-02-11 2009-09-01 Extreme Networks Method of and system for allocating resources to resource requests based on application of persistence policies
US7447777B1 (en) 2002-02-11 2008-11-04 Extreme Networks Switching system
US7814204B1 (en) 2002-02-11 2010-10-12 Extreme Networks, Inc. Method of and system for analyzing the content of resource requests
US7725528B1 (en) 2002-03-06 2010-05-25 Rockwell Automation Technologies, Inc. System and methodology providing optimized data exchange with industrial controller
US7317721B1 (en) * 2002-04-12 2008-01-08 Juniper Networks, Inc. Systems and methods for memory utilization during packet forwarding
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US7486678B1 (en) * 2002-07-03 2009-02-03 Greenfield Networks Multi-slice network processor
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7206858B2 (en) * 2002-09-19 2007-04-17 Intel Corporation DSL transmit traffic shaper structure and procedure
US20040100900A1 (en) * 2002-11-25 2004-05-27 Fulcrum Microsystems, Inc. Message transfer system
WO2004051942A1 (en) * 2002-12-03 2004-06-17 Fujitsu Limited Communication device and band control method
US7450599B2 (en) * 2003-02-08 2008-11-11 Hewlett-Packard Development Company, L.P. Apparatus and method for communicating with a network
DE10347762B4 (en) * 2003-10-14 2007-05-03 Infineon Technologies Ag Method for storing transmission units and network communication device
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7284075B2 (en) * 2004-03-23 2007-10-16 Intel Corporation Inbound packet placement in host memory
US20050249228A1 (en) * 2004-05-05 2005-11-10 Linden Cornett Techniques for providing scalable receive queues
EP1772016A2 (en) * 2004-07-23 2007-04-11 Beach Unlimited LLC Trickmodes and speed transitions
US7366865B2 (en) * 2004-09-08 2008-04-29 Intel Corporation Enqueueing entries in a packet queue referencing packets
KR100930520B1 (en) 2007-01-25 2009-12-09 삼성전자주식회사 Methods and devices for processing queues in network systems
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US20100017513A1 (en) * 2008-07-16 2010-01-21 Cray Inc. Multiple overlapping block transfers
US8478823B2 (en) * 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
TWI378689B (en) * 2009-05-13 2012-12-01 Jmicron Technology Corp Packet receiving management method and network control circuit with packet receiving management functionality
US8156265B2 (en) * 2009-06-02 2012-04-10 Freescale Semiconductor, Inc. Data processor coupled to a sequencer circuit that provides efficient scalable queuing and method
US8995460B1 (en) * 2012-05-14 2015-03-31 Arris Enterprises, Inc. Embedded control data in communications systems
CN108462652B (en) * 2017-07-31 2019-11-12 新华三技术有限公司 A kind of message processing method, device and the network equipment
CN116955247B (en) * 2023-09-18 2024-02-09 北京云豹创芯智能科技有限公司 Cache descriptor management device and method, medium and chip thereof

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1499184A (en) 1974-04-13 1978-01-25 Mathematik & Datenverarbeitung Circuit arrangement for monitoring the state of memory segments
US4700294A (en) 1982-10-15 1987-10-13 Becton Dickinson And Company Data storage system having means for compressing input data from sets of correlated parameters
SE448919B (en) 1983-03-04 1987-03-23 Ibm Svenska Ab METHOD FOR TRANSFERING INFORMATION DEVICES IN A COMPUTER NETWORK, AND COMPUTER NETWORK FOR IMPLEMENTATION OF THE METHOD
US5287537A (en) 1985-11-15 1994-02-15 Data General Corporation Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command
FR2645986B1 (en) 1989-04-13 1994-06-17 Bull Sa METHOD FOR ACCELERATING MEMORY ACCESS OF A COMPUTER SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD
US5473772A (en) 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5495482A (en) * 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5769978A (en) * 1990-07-27 1998-06-23 Compagnie Generale Des Etablissments Michelin - Michelin & Cie Tire having a thread with lateral ribs the surface of which is radially recessed with respect to the other ribs
EP0529127B1 (en) 1991-08-27 1996-10-23 Siemens Aktiengesellschaft Circuit for monitoring the bit rate in ATM-networks
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
DE69226088T2 (en) 1991-11-08 1999-02-11 Teledesic Llc (A Delaware Limited Liability Company), Kirkland, Wash. MEDIATION METHOD AND DEVICE FOR A SATELLITE COMMUNICATION SYSTEM
US5524116A (en) * 1992-02-14 1996-06-04 At&T Corp. Packet framer
GB9205551D0 (en) 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5825765A (en) 1992-03-31 1998-10-20 Fore Systems, Inc. Communication network based on ATM for general purpose computers
JPH066362A (en) 1992-06-23 1994-01-14 Hitachi Ltd Message processing load distribution system for host system in lan
US6233702B1 (en) 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US5619650A (en) 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
WO1994022253A1 (en) 1993-03-20 1994-09-29 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
US5867712A (en) 1993-04-05 1999-02-02 Shaw; Venson M. Single chip integrated circuit system architecture for document instruction set computing
US5394402A (en) 1993-06-17 1995-02-28 Ascom Timeplex Trading Ag Hub for segmented virtual local area network with shared media access
US5640399A (en) 1993-10-20 1997-06-17 Lsi Logic Corporation Single chip network router
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5481536A (en) 1993-10-29 1996-01-02 Siemens Aktiengesellschaft Method for restoring a prescribed sequence for unordered cell streams in ATM switching technology
US5524110A (en) 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
US5414707A (en) 1993-12-01 1995-05-09 Bell Communications Research, Inc. Broadband ISDN processing method and system
JP3169155B2 (en) 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Circuit for caching information
US5974457A (en) 1993-12-23 1999-10-26 International Business Machines Corporation Intelligent realtime monitoring of data traffic
JP3354689B2 (en) 1994-02-28 2002-12-09 富士通株式会社 ATM exchange, exchange and switching path setting method thereof
US5652872A (en) 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
US5515370A (en) 1994-03-31 1996-05-07 Siemens Aktiengesellschaft Circuit arrangement for line units of an ATM switching equipment
EP0680235B1 (en) 1994-04-28 2001-09-12 Hewlett-Packard Company, A Delaware Corporation Channel identifier generation
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
JP3740195B2 (en) 1994-09-09 2006-02-01 株式会社ルネサステクノロジ Data processing device
US5548587A (en) * 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications
US5684654A (en) * 1994-09-21 1997-11-04 Advanced Digital Information System Device and method for storing and retrieving data
US5539729A (en) 1994-12-09 1996-07-23 At&T Corp. Method for overload control in a packet switch that processes packet streams having different priority levels
KR0132959B1 (en) 1994-12-22 1998-04-21 양승택 No-connection type server for service thereof in atm network
JPH08186585A (en) 1995-01-05 1996-07-16 Fujitsu Ltd Atm switchboard
US5857075A (en) 1995-01-11 1999-01-05 Sony Corporation Method and integrated circuit for high-bandwidth network server interfacing to a local area network
US5764895A (en) 1995-01-11 1998-06-09 Sony Corporation Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus
US5943693A (en) 1995-03-29 1999-08-24 Intel Corporation Algorithmic array mapping to decrease defect sensitivity of memory devices
US5659794A (en) 1995-03-31 1997-08-19 Unisys Corporation System architecture for improved network input/output processing
US5684797A (en) 1995-04-05 1997-11-04 International Business Machines Corporation ATM cell multicasting method and apparatus
US5535201A (en) 1995-05-10 1996-07-09 Mitsubishi Electric Research Laboratories, Inc. Traffic shaping system using two dimensional timing chains
EP0748088A3 (en) 1995-06-05 1999-12-15 Nec Corporation Communication control device and method for an ATM system applicable to an ABR mode
US5638371A (en) 1995-06-27 1997-06-10 Nec Usa, Inc. Multiservices medium access control protocol for wireless ATM system
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
EP0752664A3 (en) 1995-07-07 2006-04-05 Sun Microsystems, Inc. Method and apparatus for reporting data transfer between hardware and software
US5805805A (en) 1995-08-04 1998-09-08 At&T Corp. Symmetric method and apparatus for interconnecting emulated lans
US5751951A (en) 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
CA2186795A1 (en) 1995-11-17 1997-05-18 Cormac John Sreenan Resource management system for a broadband multipoint bridge
US5826030A (en) 1995-11-30 1998-10-20 Excel Switching Corporation Telecommunication switch having a universal API with a single call processing message including user-definable data and response message each having a generic format
KR0157152B1 (en) 1995-12-23 1998-11-16 양승택 Apparatus with expansibility for processing atm layer function
US5751709A (en) 1995-12-28 1998-05-12 Lucent Technologies Inc. Adaptive time slot scheduling apparatus and method for end-points in an ATM network
IL116804A (en) * 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5745477A (en) 1996-01-25 1998-04-28 Mitsubishi Electric Information Technology Center America, Inc. Traffic shaping and ABR flow control
US5696930A (en) 1996-02-09 1997-12-09 Advanced Micro Devices, Inc. CAM accelerated buffer management
US6021263A (en) 1996-02-16 2000-02-01 Lucent Technologies, Inc. Management of ATM virtual circuits with resources reservation protocol
US5848068A (en) 1996-03-07 1998-12-08 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5841772A (en) 1996-03-07 1998-11-24 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5870561A (en) 1996-03-15 1999-02-09 Novell, Inc. Network traffic manager server for providing policy-based recommendations to clients
US5740171A (en) 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
US6199133B1 (en) * 1996-03-29 2001-03-06 Compaq Computer Corporation Management communication bus for networking devices
US5754530A (en) 1996-04-18 1998-05-19 Northern Telecom Limited Flow control of ABR traffic in ATM networks
US5768527A (en) 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US5748630A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back
US5764896A (en) 1996-06-28 1998-06-09 Compaq Computer Corporation Method and system for reducing transfer latency when transferring data from a network to a computer system
US5991854A (en) 1996-07-01 1999-11-23 Sun Microsystems, Inc. Circuit and method for address translation, using update and flush control circuits
US5983332A (en) 1996-07-01 1999-11-09 Sun Microsystems, Inc. Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture
US5912892A (en) 1996-08-30 1999-06-15 Hughes Electronics Corporation Method of providing fractional path service on an ATM network
US5956336A (en) 1996-09-27 1999-09-21 Motorola, Inc. Apparatus and method for concurrent search content addressable memory circuit
US6463477B1 (en) * 1996-09-27 2002-10-08 Mci Communications Corporation Detection of presence of multiprotocol encapsulation in a data packet
US6005943A (en) 1996-10-29 1999-12-21 Lucent Technologies Inc. Electronic identifiers for network terminal devices
JPH10136439A (en) 1996-10-30 1998-05-22 Fujitsu Ltd Mobile communication system, mobile terminal, base station, mobile exchange and mobile communication controlling method
US6075790A (en) * 1996-12-11 2000-06-13 Brooktree Corporation Asynchronous transfer mode system for, and method of, writing a cell payload between a control queue on one side of a system bus and a status queue on the other side of the system bus
US5878232A (en) 1996-12-27 1999-03-02 Compaq Computer Corporation Dynamic reconfiguration of network device's virtual LANs using the root identifiers and root ports determined by a spanning tree procedure
GB2324000B (en) 1997-01-17 1999-03-24 Dipak Mohan Lal Soni A hybrid distributed broadcast and unknown server for emulated local area networks
GB2322761B (en) 1997-01-17 1999-02-10 Donal Casey Method for selecting virtual channels based on address p;riority in an asynchronous transfer mode device
US6337863B1 (en) 1997-01-17 2002-01-08 Alcatel Interworking, Inc. Seamless communication service with intelligent edge devices
CA2229652C (en) 1997-02-14 2002-05-21 Naoki Mori Atm network with a filtering table for securing communication
US5935249A (en) 1997-02-26 1999-08-10 Sun Microsystems, Inc. Mechanism for embedding network based control systems in a local network interface device
JPH10242990A (en) 1997-02-28 1998-09-11 Nec Commun Syst Ltd Communication system for lec bridge device
JP3545570B2 (en) 1997-03-18 2004-07-21 富士通株式会社 Switching hub
US5974462A (en) 1997-03-28 1999-10-26 International Business Machines Corporation Method and apparatus for controlling the number of servers in a client/server system
US6114996A (en) * 1997-03-31 2000-09-05 Qualcomm Incorporated Increased bandwidth patch antenna
US5909441A (en) 1997-04-11 1999-06-01 International Business Machines Corporation Apparatus and method for reducing frame loss in route switched networks
US6041059A (en) 1997-04-25 2000-03-21 Mmc Networks, Inc. Time-wheel ATM cell scheduling
US6052383A (en) 1997-05-29 2000-04-18 3Com Corporation LAN to ATM backbone switch module
US6223292B1 (en) 1997-07-15 2001-04-24 Microsoft Corporation Authorization systems, methods, and computer program products
US6104700A (en) 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US5978951A (en) 1997-09-11 1999-11-02 3Com Corporation High speed cache management unit for use in a bridge/router
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6167049A (en) 1997-11-18 2000-12-26 Cabletron Systems, Inc. Non-zero minimum cell rate for available bit rate ATM service
US6198751B1 (en) 1997-11-19 2001-03-06 Cabletron Systems, Inc. Multi-protocol packet translator
US6003027A (en) 1997-11-21 1999-12-14 International Business Machines Corporation System and method for determining confidence levels for the results of a categorization system
US6058434A (en) 1997-11-26 2000-05-02 Acuity Imaging, Llc Apparent network interface for and between embedded and host processors
US6754206B1 (en) * 1997-12-04 2004-06-22 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method
US6269396B1 (en) 1997-12-12 2001-07-31 Alcatel Usa Sourcing, L.P. Method and platform for interfacing between application programs performing telecommunications functions and an operating system
US6119170A (en) 1997-12-29 2000-09-12 Bull Hn Information Systems Inc. Method and apparatus for TCP/IP multihoming on a host system configured with multiple independent transport provider systems
US6351474B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6154776A (en) 1998-03-20 2000-11-28 Sun Microsystems, Inc. Quality of service allocation on a network
US6201971B1 (en) 1998-03-26 2001-03-13 Nokia Mobile Phones Ltd. Apparatus, and associated method for controlling service degradation performance of communications in a radio communication system
US6522188B1 (en) * 1998-04-10 2003-02-18 Top Layer Networks, Inc. High-speed data bus for network switching
US6073175A (en) 1998-04-27 2000-06-06 International Business Machines Corporation Method for supporting different service levels in a network using web page content information
US6144996A (en) 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US6425067B1 (en) 1998-06-27 2002-07-23 Intel Corporation Systems and methods for implementing pointer management
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6311212B1 (en) 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US6272544B1 (en) 1998-09-08 2001-08-07 Avaya Technology Corp Dynamically assigning priorities for the allocation of server resources to completing classes of work based upon achievement of server level goals
US6452923B1 (en) 1998-12-31 2002-09-17 At&T Corp Cable connected wan interconnectivity services for corporate telecommuters
US6343078B1 (en) 2000-05-12 2002-01-29 3Com Corporation Compression of forwarding decisions in a network device

Also Published As

Publication number Publication date
US20040028067A1 (en) 2004-02-12
EP1131923B1 (en) 2007-03-21
AU4713599A (en) 2000-01-17
AU4961599A (en) 2000-01-17
ATE357789T1 (en) 2007-04-15
AU4722399A (en) 2000-01-17
WO2000001121A9 (en) 2000-03-30
AU4836599A (en) 2000-01-17
WO2000000910A1 (en) 2000-01-06
WO2000001120A9 (en) 2000-03-23
WO2000001120A1 (en) 2000-01-06
WO2000001119A1 (en) 2000-01-06
EP1131923A4 (en) 2004-07-07
WO2000000892A1 (en) 2000-01-06
WO2000001122A1 (en) 2000-01-06
AU4714099A (en) 2000-01-17
EP1092199A4 (en) 2004-10-06
DE69935608D1 (en) 2007-05-03
US6724767B1 (en) 2004-04-20
WO2000001116A1 (en) 2000-01-06
WO2000001121A1 (en) 2000-01-06
AU4713899A (en) 2000-01-17
DE69935608T2 (en) 2007-11-29
EP1131923A1 (en) 2001-09-12
AU4713699A (en) 2000-01-17
EP1092199A1 (en) 2001-04-18
US7411968B2 (en) 2008-08-12

Similar Documents

Publication Publication Date Title
EP1131923B1 (en) Multi-protocol conversion assistance method and system for a network accelerator
US5414707A (en) Broadband ISDN processing method and system
US6650646B1 (en) Digital communications system
US6735773B1 (en) Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US5917828A (en) ATM reassembly controller and method
US7327688B2 (en) Digital communications system
US6728249B2 (en) System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
EP1095325B1 (en) Systems and methods for on-chip storage of virtual connection descriptors
CA2155768C (en) Methods and systems for interprocess communication and inter-network data transfer
US5420858A (en) Method and apparatus for communications from a non-ATM communication medium to an ATM communication medium
US6708210B2 (en) Application programming interfaces and methods enabling a host to interface with a network processor
EP0993157B1 (en) Memory-efficient leaky bucket policer for traffic management of asynchronous transfer mode data communications
US5959994A (en) ATM/SONET network enhanced as a universal computer system interconnect
JP3682082B2 (en) Apparatus and method for packet processing in packet switching network and frame processing system for frame relay network
WO1995014269A1 (en) A high-performance host interface for networks carrying connectionless traffic
US6603768B1 (en) Multi-protocol conversion assistance method and system for a network accelerator
JPH10313325A (en) Cell-discarding method
KR100236037B1 (en) Method of discarding atm cells in an atm network interface card
KR19980075620A (en) How to Process Reassembled Packets in ATM Networks

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: C2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1/5-5/5, DRAWINGS, REPLACED BY NEW PAGES 1/4-4/4; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1999931960

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1999931960

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1999931960

Country of ref document: EP