System and method for adapting a packet processing pipeline
Abstract
An apparatus for forwarding packets includes a packet processing pipeline having a processing unit that processes packets compliant with a recognized communication protocol. A first port coupled to the packet processing pipeline is configured to receive a packet that does not comply with the recognized communication protocol and has a header that conforms to a second communication protocol. A data extraction unit extracts first destination information from the header of the packet and, based on the first destination information, generates second destination information that conforms to the recognized communication protocol. The processing unit determines, based on the second destination information, an egress interface to which the packet is to be forwarded.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for forwarding packets, comprising:
receiving, at a port of coupled to a packet processor, a packet compliant with a first communication protocol;
generating a packet descriptor associated with the packet;
passing the packet descriptor to an adapted processing unit configured to recognize the first communication protocol;
modifying header information in the packet descriptor in the adapted processing unit, to generate a modified packet descriptor corresponding to a second communication protocol;
processing the modified packet descriptor in an unadapted processing unit of the packet processor, the unadapted processing unit of the packet processor configured to process packets compliant with the second communication protocol;
determining, in the unadapted processing unit and according to the modified packet descriptor, an egress interface for the packet; and
forwarding the packet that is compliant with the first communication protocol to the egress interface.
2. The method according to claim 1 , wherein processing the modified packet descriptor in the unadapted processing unit comprises processing the modified packet descriptor in (i) a TRILL engine configured to process packet descriptors that comply with the Transparent Interconnect of Lots of Links (TRILL) protocol according to at least an RBridge nickname, (ii) an Ethernet bridge engine configured to process Ethernet packet descriptors complying with the Ethernet protocol according to at least a destination media access control (MAC) address, or (iii) an Internet Protocol (IP) router engine configured to process packet descriptors complying with the Internet Protocol according to at least a destination IP address.
3. The method according to claim 1 , wherein receiving the packet comprises receiving a Fibre Channel over Ethernet (FCoE) packet, the FCoE packet having an associated Fibre Channel header.
4. The method according to claim 3 , wherein modifying header information in the packet descriptor to produce the modified packet descriptor corresponding to the second communication protocol comprises extracting from the packet descriptor at least a destination ID field of the Fibre Channel header, the destination ID field including a domain ID, a port ID, and an area ID.
5. The method according to claim 4 , wherein modifying header information in the packet descriptor further comprises:
determining a domain ID associated with the packet processor;
comparing the domain ID associated with the packet processor to the domain ID in the Fibre Channel header;
generating, based on the extracted destination ID field, the modified packet descriptor formatted as a TRILL header, wherein the packet descriptor includes, in place of an RBridge nickname, a value associated with both of the area ID and the port ID of the destination ID field and concatenating the area ID and the port ID, and
wherein processing the modified packet descriptor in the unadapted processing unit includes processing the modified packet descriptor in a TRILL engine.
6. The method according to claim 4 , wherein modifying header information in the packet descriptor further comprises generating the modified packet descriptor formatted as an Ethernet header, the modified packet descriptor including, in place of a destination media access control (MAC) address, a value associated with the destination ID field,
wherein processing the modified packet descriptor in the unadapted processing unit includes processing the modified packet descriptor in an Ethernet bridge engine.
7. The method according to claim 6 , wherein including a value associated with the destination ID field comprises concatenating the destination ID field with a user-configurable constant.
8. The method according to claim 6 , wherein generating the modified packet descriptor formatted as an Ethernet header further comprises including, in place of a second field, a value associated with an extended header of the packet.
9. The method according to claim 4 , wherein modifying header information in the packet descriptor further comprises generating the modified packet descriptor formatted as an IP header that includes, in place of a destination IP address, the destination ID field associated with the Fibre Channel header, and
wherein processing the modified packet descriptor in the unadapted processing unit includes processing the packet descriptor in an IP router engine.
10. The method according to claim 9 , wherein generating the modified packet descriptor further includes assigning to a virtual routing and forwarding (VRF) ID (VRF-ID) value a value associated with an extended header of the packet.
11. An apparatus for forwarding packets, comprising:
a decoding unit implemented in hardware circuitry, the decoding unit being configured to generate packet descriptors associated with received packets received via one or more ports among a plurality of ports, the packets compliant with first and second communication protocols;
an adapted processing unit implemented in hardware circuitry, the adapted processing unit being configured to receive packet descriptors and to recognize packet descriptors compliant with the first communication protocol, and to modify header information in packet descriptors compliant with the first communication protocol to generate modified packet descriptors corresponding to the second communication protocol; and
an unadapted processing unit in a packet processor, the unadapted processing unit implemented in hardware circuitry and being configured to process packets compliant with the second communication protocol and to determine, for modified packet descriptors corresponding to packets compliant with the first communication protocol and modified by the adapted processing unit to correspond to the second communication protocol, one or more egress interfaces for the corresponding packets compliant with the first communication protocol so that the corresponding packets compliant with the first communication protocol are egressed via the one or more egress interfaces.
12. The apparatus according to claim 11 , wherein the unadapted processing unit is (i) a TRILL engine configured to process packet descriptors that comply with the Transparent Interconnect of Lots of Links (TRILL) protocol according to at least an RBridge nickname, (ii) an Ethernet bridge engine configured to process Ethernet packet descriptors complying with the Ethernet protocol according to at least a destination media access control (MAC) address, or (iii) an Internet Protocol (IP) router engine configured to process packet descriptors complying with the Internet Protocol according to at least a destination IP address.
13. The apparatus according to claim 11 , wherein the packets compliant with the first communication protocol are packets compliant with the Fibre Channel over Ethernet (FCoE) protocol and having an associated Fibre Channel header.
14. The apparatus according to claim 13 , wherein the adapted processing unit is configured to extract first destination information from the Fibre Channel header, and
wherein the first destination information includes at least a destination ID field of the Fibre Channel header, the destination ID field including a domain ID, a port ID, and an area ID.
15. The apparatus according to claim 14 , wherein the packet processor has an associated domain ID,
wherein the unadapted processing unit is further configured to compare the domain ID associated with the packet processor to the domain ID in the Fibre Channel header,
wherein the adapted processing unit is configured to generate the modified packet descriptor formatted as a TRILL header, and to replace an RBridge nickname field in the TRILL header with a value associated with both of the area ID and the port ID of the destination ID field and to concatenate the area ID and the port ID, and
wherein the unadapted processing unit is a TRILL engine.
16. The apparatus according to claim 14 , wherein the adapted processing unit is configured to generate the modified packet descriptor formatted as an Ethernet header, and to replace a value of a destination media access control (MAC) address with a value associated with the destination ID field of the packet, and
wherein the unadapted processing unit is an Ethernet bridge engine.
17. The apparatus according to claim 16 , wherein the adapted processing unit is configured to concatenate the value associated with the destination ID field of the packet with a user-configurable constant and to replace the destination MAC address with the concatenated value.
18. The apparatus according to claim 16 , wherein the adapted processing unit is configured to generate the modified packet descriptor such that the modified packet descriptor replaces a second field with a value associated with an extended header of the packet.
19. The apparatus according to claim 14 , wherein the adapted processing unit is configured to generate the modified packet descriptor formatted as an Internet Protocol (IP) header, and to replace a destination IP address of the IP header with a destination ID associated with the Fibre Channel header, and
wherein the unadapted processing unit is an IP router engine.
20. The apparatus according to claim 19 , wherein the adapted processing unit is further configured to replace a source IP address of the IP header with a source ID associated with the Fibre Channel header.
21. The method according to claim 1 , further comprising:
modifying, at a header alteration unit of the packet processor, a header of the packet, the header compliant with the second communication protocol, based at least on the determination of the egress interface by the unadapted processing unit.
22. The apparatus according to claim 11 , further comprising:
a header alteration unit implemented in hardware circuitry, the header alteration unit being configured to modify a header of the packet, the header compliant with the second communication protocol, based at least on the determination of the egress interface by the unadapted processing unit.
23. The apparatus according to claim 11 , further comprising the plurality of ports;
wherein the plurality of ports is configured to receive the packets compliant with first and second communication protocols.
24. An apparatus for forwarding packets between an Ethernet network and a network that utilizes a communication protocol related to storage devices, the apparatus comprising:
one or more first network interfaces configured to couple to the Ethernet network; one or more second network interfaces configured to couple to the network that utilizes the communication protocol related to storage devices; a packet processor coupled to the one or more first network interfaces and the one or more second network interfaces, wherein the packet processor is configured to:
receive a frame from one of the one or more first network interfaces, the frame including an Ethernet packet encapsulating an inner packet that conforms to the communication protocol related to storage devices, wherein the Ethernet packet includes an Ethernet header, and the inner packet includes an inner header separate from the Ethernet header, the inner header conforming to the communication protocol related to storage devices,
generate a packet descriptor associated with the frame, the packet descriptor including Ethernet fields corresponding to Ethernet header fields of the Ethernet header, wherein generating the packet descriptor includes:
extracting information from the inner header of the inner packet, and
storing the information extracted from the inner header in one or more Ethernet fields in the packet descriptor;
wherein the packet processor includes a bridge engine that is not configured to recognize the communication protocol related to storage devices; wherein the packet processor is configured to provide the packet descriptor to the bridge engine after the information extracted from the inner header has been stored in the one or more Ethernet fields in the packet descriptor; wherein the bridge engine is configured to analyze the one or more Ethernet fields in the packet descriptor to determine a set of one or more second network interfaces to which the inner packet is to be forwarded; and wherein the packet processor is configured to forward the inner packet to the determined set of one or more second network interfaces for transmission of the inner packet by the determined set of one or more second network interfaces according to the communication protocol related to storage devices.
25. The apparatus of claim 24, wherein the packet processor is configured to:
extract a destination address corresponding to the communication protocol related to storage devices; and store the destination address corresponding to the communication protocol related to storage devices in a media access control (MAC) destination address field in the packet descriptor, the MAC destination address field in the packet descriptor corresponding to a MAC destination address field in the Ethernet header of the Ethernet packet.
26. The apparatus of claim 24, wherein the packet processor is configured to:
parse header information of the frame to identify the Ethernet header fields and the inner header.
27. The apparatus of claim 24, wherein the packet processor is configured to:
strip the Ethernet header from the inner packet prior to transmission of the inner packet by the determined set of one or more second network interfaces.
28. The apparatus of claim 27, wherein the packet processor is configured to:
strip the Ethernet header from the inner packet after the bridge engine has analyzed the one or more Ethernet fields in the packet descriptor to determine the set of one or more second network interfaces to which the inner packet is to be forwarded.
29. The apparatus of claim 24, wherein the inner packet encapsulated in the Ethernet packet comprises a Fibre Channel (FC) packet that includes an FC header.
30. The apparatus of claim 29, wherein the packet processor is configured to:
extract a destination identifier (D_ID) from the FC header; and store the D_ID from the FC header in a media access control (MAC) destination address field in the packet descriptor.
31. The apparatus of claim 30, wherein the packet processor is further configured to:
store an FC Organization Unique Identifier FC_OUI in a first portion of the MAC destination address field in the packet descriptor; and store the D_ID from the FC header in a second portion of the MAC destination address field in the packet descriptor, the MAC destination address field in the packet descriptor corresponding to a MAC destination address field in the Ethernet header of the Ethernet packet.
32. The apparatus of claim 31, wherein the packet processor is configured to:
concatenate the FC_OUI and the D_ID from the FC header; store the concatenation of the FC_OUI and the D_ID to the MAC destination address field in the packet descriptor.
33. The apparatus of claim 24, wherein the packet processor is implemented on an integrated circuit (IC) device.
34. The apparatus of claim 24, wherein:
the packet processor comprises a pipeline implemented on an integrated circuit (IC) device, the pipeline comprising a plurality of hardware pipeline elements coupled together in series; and one of the hardware pipeline elements comprises the bridge engine.
35. A method in a network device disposed at an interface between i) an Ethernet network coupled to the network device via one or more first communication links, and ii) a storage network coupled to the network device via one or more second communication links, the method comprising:
receiving, at the network device, a frame from the Ethernet network, the frame including an Ethernet packet encapsulating an inner packet that conforms to a communication protocol related to storage devices, wherein the Ethernet packet includes an Ethernet header, and the inner packet includes an inner header separate from the Ethernet header, the inner header conforming to the communication protocol related to storage devices; generating, at the network device, a packet descriptor associated with the frame, the packet descriptor including Ethernet fields corresponding to Ethernet header fields of the Ethernet header, wherein generating the packet descriptor includes:
extracting information from the inner header of the inner packet, and
storing the information extracted from the inner header in one or more Ethernet fields in the packet descriptor;
after storing the information extracted from the inner header in the one or more Ethernet fields in the packet descriptor, analyzing, at a processing component of the network device that does not recognize the communication protocol related to storage devices, the one or more Ethernet fields in the packet descriptor to determine one or more egress interfaces of the network device to which the inner packet is to be forwarded; and forwarding, at the network device, the inner packet to the determined one or more egress interfaces of the network device for transmission of the inner packet by the one or more egress interfaces according to the communication protocol related to storage devices.
36. The method of claim 35, wherein:
extracting information from the inner header of the inner packet comprises extracting a destination address corresponding to the communication protocol related to storage devices; and storing the information extracted from the inner header in one or more Ethernet fields in the packet descriptor comprises storing the destination address corresponding to the communication protocol related to storage devices in a media access control (MAC) destination address field in the packet descriptor, the MAC destination address field in the packet descriptor corresponding to a MAC destination address field in the Ethernet header of the Ethernet packet.
37. The method of claim 35, wherein generating the packet descriptor comprises:
parsing header information of the frame to identify the Ethernet header fields and the inner header.
38. The method of claim 35, further comprising:
stripping the Ethernet header from the inner packet prior to transmission of the inner packet by the one or more egress interfaces.
39. The method of claim 38, wherein:
analyzing the one or more Ethernet fields in the packet descriptor to determine the one or more egress interfaces of the network device to which the inner packet is to be forwarded is performed prior to stripping the Ethernet header from the inner packet.
40. The method of claim 35, wherein the inner packet encapsulated in the Ethernet packet comprises a Fibre Channel (FC) packet that includes an FC header.
41. The method of claim 40, wherein:
extracting information from the inner header of the inner packet comprises extracting a destination identifier (D_ID) from the FC header; and storing the information extracted from the inner header in one or more Ethernet fields in the packet descriptor comprises storing the D_ID from the FC header in a media access control (MAC) destination address field in the packet descriptor, the MAC destination address field in the packet descriptor corresponding to a MAC destination address field in the Ethernet header of the Ethernet packet.
42. The method of claim 41, further comprising:
storing an FC Organization Unique Identifier FC_OUI in a first portion of the MAC destination address field in the packet descriptor; wherein storing the D_ID from the FC header in the MAC destination address field in the packet descriptor comprises storing the D_ID from the FC header in a second portion of the MAC destination address field in the packet descriptor, the MAC destination address field in the packet descriptor corresponding to a MAC destination address field in the Ethernet header of the Ethernet packet.
43. The method of claim 42, further comprising:
concatenating the FC_OUI and the D_ID from the FC header; wherein storing the FC_OUI in the first portion of the MAC destination address field and storing the D_ID from the FC header in the second portion of the MAC destination address field comprise storing the concatenation of the FC_OUI and the D_ID to the MAC destination address field in the packet descriptor.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.