Claims
- 1. An apparatus to bridge network protocols comprising:
a memory coupled to a first network interface, said memory to include a plurality of memory queues; a circuit coupled to the first network interface and said memory, said circuit to,
store a header of a data frame in a first entry of said plurality of memory queues, said data frame to have a source protocol and be received on said first interface, and provide notification of said data frame upon storing of a programmable number of bytes of the data frame; and a processor coupled to the circuit and the memory, the processor to assume control of said first entry after receiving said notification, said processor to generate an outgoing header based on said header, said outgoing header to have a destination protocol.
- 2. The apparatus of claim 1, wherein said circuit further sets a control bit for said first entry after storing said header, said processor to assume control of the first entry based on the control bit.
- 3. The apparatus of claim 2, wherein said processor, after generating said outgoing header, passes control of the first entry back to the circuit by resetting said control bit.
- 4. The apparatus of claim 2, wherein said processor further to,
store said outgoing header in a second entry of said plurality of memory queues, pass control of the first entry back to the circuit by resetting the control bit for said first entry, and pass control of the second entry to the circuit by setting a control bit for the second entry.
- 5. The apparatus of claim 4, wherein said second entry is located in a different queue within the plurality of memory queues.
- 6. The apparatus of claim 4, wherein said circuit, after assuming control of the first entry based on said control bit for the first entry, is further to
store a second header of a second data frame in the first entry of the queue, said second header to have the source protocol and to be received on the first interface, set the control bit for said first entry to allow said processor to assume control of said first entry, and provide a second notification of said second data frame to the processor, said processor to assume control of the first entry based on the control bit for the first entry.
- 7. The apparatus of claim 4, wherein said circuit, after assuming control of the second entry based on said control bit for the second entry, is further to assemble an outgoing frame according to the destination protocol using the outgoing header in said second entry, and to transmit said outgoing frame on a second interface of said apparatus.
- 8. The apparatus of claim 7, wherein said data frame further includes a payload that is stored in a buffer of said apparatus by said circuit, and wherein said circuit assembles said outgoing frame using the outgoing header and the payload.
- 9. The apparatus of claim 1, wherein said data frame includes a payload and one or more path routing bits to be used by said circuit to determine if said data frame is an internal frame and, if so, to provide at least a portion of said payload to the processor.
- 10. The apparatus of claim 1, wherein said data frame further includes a payload, said circuit further to separate said payload from the data frame and store said payload in a buffer.
- 11. The apparatus of claim 10, wherein said buffer is segmented and the payload is stored in a segment of the buffer, said circuit to store a segment handle with said header in the first entry, where said segment handle is representative of said segment.
- 12. The apparatus of claim 1, wherein said source protocol is packet-over-SONET and the destination protocol is Fibre Channel.
- 13. The apparatus of claim 1, wherein said source protocol is Fibre Channel and the destination protocol is packet-over-SONET.
- 14. The apparatus of claim 1, wherein one of the source protocol and destination protocol is one of System Parallel Interface, Utopia and FlexBUS™.
- 15. The apparatus of claim 1, wherein each of said plurality of memory queues is shared dual-port RAM that is accessible by both the circuit and the processor.
- 16. The apparatus of claim 1, wherein said processor is further to set a skip bit in an outgoing entry associated with the outgoing header when an error associated with the data frame has been detected, and wherein said circuit will skip the outgoing entry upon detecting said skip bit.
- 17. The apparatus of claim 16, wherein said circuit will not generate said outgoing header for said outgoing entry.
- 18. The apparatus of claim 16, wherein said circuit returns control of said outgoing entry to said processor after said outgoing entry has been skipped.
- 19. The apparatus of claim 16, wherein said circuit continues processing additional entries after skipping said outgoing entry.
- 20. The apparatus of claim 1, wherein said circuit is further to compare at least a potion of said header with a previous header, and if there is a match, said circuit is further to set a header match bit for said header.
- 21. The apparatus of claim 20, wherein said processor, upon detecting that said header match bit has been set, generates said outgoing header using at least a portion of said previous header.
- 22. The apparatus of claim 4, wherein a predetermined number of bytes of said second entry is allocated for one of a processor-generated payload and an optional processor-generated header.
- 23. The apparatus of claim 22, wherein at least a portion of said processor-generated payload may be stored in special payload buffer when said processor-generated payload exceeds said predetermined number of bytes of said first entry.
- 24. The apparatus of claim 1, wherein when a payload of said data frame exceeds a predetermined maximum payload size, said data frame is segmented into a plurality of smaller frames that have payloads not greater than said predetermined maximum payload size.
- 25. The apparatus of claim 1, wherein if said data frame is a jumbo frame, said header will be stored in the first entry and a payload of said data frame will be stored in a plurality of buffer segments, where each of said plurality of buffer segments will be allocated an additional entry in said plurality of memory queues.
- 26. The apparatus of claim 21, wherein each of said additional entries includes a pointer to a corresponding segment from said plurality of buffer segments.
- 27. An method to bridge network protocols comprising:
receiving a data frame having a source protocol over a first interface; storing a header of the data frame in a first entry of a plurality of memory queues in response to an output from a circuit; notifying, by said circuit, a processor of said data frame upon storing a programmable number of bytes of the data frame; assuming control, by the processor, of the first entry after said notifying; and, generating an outgoing header using said processor based on information in said header, said outgoing header to have a destination protocol.
- 28. The method of claim 27, further comprising setting a control bit using said circuit for said first entry after said storing, and wherein said assuming control by the processor is based on said control bit.
- 29. The method of claim 28, further comprising passing control of the first entry from said processor to said circuit by having said processor reset said control bit after said generating of the outgoing header.
- 30. The method of claim 29, further comprising:
storing said outgoing header in a second entry of said plurality of memory queues using the processor; passing control of the first entry back to the circuit by resetting the control bit for said first entry using the processor; and, passing control of the second entry to the circuit by setting a control bit for the second entry using the processor.
- 31. The method of claim 30, wherein after said passing control of the first entry back to the circuit, the method further comprises:
storing a second header of a second data frame in the first entry of the queue using the circuit, said second header to have the source protocol and to be received on the first interface; setting the control bit, using the circuit, for said first entry to allow said processor to assume control of said first entry; and, providing a second notification by said circuit of said second data frame to the processor, said processor to assume control of the first entry based on the control bit for the first entry.
- 32. The method of claim 30, wherein after said assuming control of the second entry based on said control bit for the second entry, the method further comprises:
assembling an outgoing frame using the circuit according to the destination protocol using the outgoing header in said second entry; and transmitting, by the circuit, said outgoing frame on a second interface of said apparatus.
- 33. The method of claim 27, wherein said data frame further includes a payload that is stored in a buffer of said apparatus by said circuit, the method further comprising assembling, by the circuit, said outgoing frame using the outgoing header and the payload.
- 34. The method of claim 27, wherein said data frame includes a payload and one or more path routing bits, the method further comprising determining, by the circuit, if said data frame is an internal frame and, if so, providing at least a portion of said payload to the processor.
- 35. The method of claim 27, wherein said data frame further includes a payload, and the method further comprises:
separating said payload from the data frame using the circuit; and storing said payload in a buffer.
- 36. The method of claim 35, wherein said storing comprises storing said payload in a segment of the buffer where said buffer is segmented, the method further comprising storing a segment handle, using the circuit, with said header in the first entry, where said segment handle is representative of said segment.
- 37. The method of claim 27, wherein said source protocol is packet-over-SONET and the destination protocol is Fibre Channel.
- 38. The method of claim 27, wherein said source protocol is Fibre Channel and the destination protocol is packet-over-SONET.
- 39. The method of claim 27, wherein one of the source protocol and destination protocol is one of System Parallel Interface, Utopia and FlexBUS™.
- 40. The method of claim 27, wherein each of said plurality of memory queues is shared dual-port RAM that is accessible by both the circuit and the processor.
- 41. The method of claim 27, further comprising:
setting a skip bit, by said processor, in an outgoing entry associated with the outgoing header when an error associated with the data frame has been detected; and, skipping the outgoing entry, by said circuit, upon detecting said skip bit.
- 42. The method of claim 41, wherein said skipping the outgoing entry comprises skipping said generating the outgoing header for said outgoing entry.
- 43. The method of claim 41, further comprises returning control of said outgoing entry to said processor after said skipping skipped the outgoing entry.
- 44. The method of claim 41, further comprising processing additional entries after said skipping said outgoing entry.
- 45. The method of claim 27, further comprising comparing at least a potion of said header with a previous header using the circuit, and if there is a match, the method further comprises setting a header match bit for said header using said circuit.
- 46. The method of claim 45, where said comparing indicates a match, the method further comprises generating, by said processor, said outgoing header using at least a portion of said previous header.
- 47. The method of claim 30, further comprising allocating a predetermined number of bytes of said second entry for one of a processor-generated payload and an optional processor-generated header.
- 48. The method of claim 47, further comprising storing at least a portion of said processor-generated payload in special payload buffer when said processor-generated payload exceeds said predetermined number of bytes of said first entry.
- 49. The method of claim 27, wherein when a payload of said data frame exceeds a predetermined maximum payload size, the method further comprises segmenting said data frame into a plurality of smaller frames that have payloads not greater than said predetermined maximum payload size.
- 50. The method of claim 27, wherein if said data frame is a jumbo frame, the method further comprises:
storing a payload of said data frame in a plurality of buffer segments; and allocating each of said plurality of buffer segments an additional entry in said plurality of memory queues.
- 51. The method of claim 50, wherein each of said additional entries includes a pointer to a corresponding segment from said plurality of buffer segments.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to and claims priority from provisional application serial No. 60/436,222, entitled “Method and Apparatus for Controlling Information Flow Through a Protocol Bridge,” and provisional application serial No. 60/436,215, entitled “Method and Apparatus for Generation of Headers in a Protocol Bridge,” both of which were filed on Dec. 24, 2002.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60436222 |
Dec 2002 |
US |
|
60436215 |
Dec 2002 |
US |