In current network configurations, when data from the network arrives to a server, the server processor(s) usually receive all the data incoming from the network, for example in order to perform classification of the data and direct the data to its final destination or to further processing in the host server. In most cases, a major portion of the data is directed by the server processor(s) to another destination such as, for example, to a network agent or to a storage device. This may cause many redundant round trips of data packets from the network to the processor and back. In most cases only a small portion of the data needs to be further handled in the host server. Receiving all the data in the host server and the need to classify all the data in the host server may increase the processor utilization, increase cache pollution, increase power consumption and increase other computational tasks latency.
In addition, in cases when the server is a multi-processor server and/or includes a multi-core processor, the data may arrive to the wrong processor/core. This may also cause poor performamce, for example due to cache pollution and the need to move the data packet from one core to another.
The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
Embodiments of the present invention may provide system and method for content aware routing of data within a platform hub. The platform hub may be connected by a duplex port to a processing platform (for example, a server). All the data which is sent towards the processing platform or outwards from the processing platform may pass through the platform hub. The platform hub may include several network ports for bidirectional communication with network agents. The platform hub may include one or more content aware unit(s) which may perform classification of the data which passes through the platform hub and route the data to a suitable destination based on the classification. As a result of the classification and routing at the platform hub, fewer data packets may be sent to the processor(s) of the processing platform, fewer classification tasks need to be performed by the processor(s), fewer round trips of data packets from the network to the processor(s) and back are caused, and data packets which are routed by the platform hub towards the processing platform may be directed based on the classification to the suitable processor/core in the processing platform. Therefore, embodiments of the present invention may improve the performance of the processing platform and reduce the consumed power.
Reference is now made to
Platform hub 110 may include several network ports (not shown) which may enable connection to communication mediums of a network 160, for example, network agents 170a and 170b. Network 160 may include Local Area Network (LAN), Wide Area Network (WAN), or any other suitable type of communication network. Network agents 170a and 170b may include, for example, network communication channels or any suitable network entity, medium or agent available. Although
Network agent 170a and/or 170b may send data packets toward processing platform 120. Data packets which are sent from network 160 towards processing platform 120 may be received through platform hub 110. Data packets which may be sent from processing platform 120 towards network 160 may also pass through platform hub 110.
CAU 114 may classify the data packets according to the content of the packets. Based on the classification, CAU 114 may send the data packets to processing platform 120 or to network 160. Additionally, based on the classification, CAU 114 may send the data packets to specific processors and/or cores in processing platform 120, or to specific network agents in network 160. The classification by CAU 114 may be performed based on the content of the packet header portion and/or based on the content of the packet data portion. The classification type performed by CAU 114 may be predefined by a user.
The following are examples of classifications types which can be made by CAU 114. However, the present invention is not limited to the classification types indicated in the examples. For example, the classification may be made based on packet specific information such as, for example, source IP for IP packets or media access control (MAC) address for Ethernet packets. For example, the classification may be made based on size of the data packet. For example, the classification may be made based on type of data in the data packet, e.g. whether the data is image, sound, text, tables, commands, etc. For example, the classification may be made based on the packet type, e.g. based on the transport protocol being used, such as, for example, User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP) or any other suitable transport protocol.
Reference is now made to
When a data packet is received from network agent 270a or 270b or from processing platform 220, the respective CAU may classify the data packet. Based on the classification, platform hub 210 may route the data packet to processing platform 220, for example to a suitable processor/core in processing platform 220, or to a suitable network agent.
In some embodiments of the present invention, based on the classification the CAU may generate an index vector which may point to an entry of a lookup table. An entry of the lookup table may include routing information such as indication of a destination port. In case the destination port is processor port 216a, the entry of the lookup table may additionally include the indication of destination processor/core within processing platform 220, for example in case processing platform 220 is a multi-processor and/or multi-core platform. In case the destination entity uses priority queue mechanism, for example for determination of the order in which data packets are received and/or processed, the entry of the lookup table may additionally include indication of the destination queue. Any other suitable routing information may be included in an entry of the lookup table. It will be appreciated by those skilled in the art that mechanisms other than lookup table may be used for storing routing information and making it available as described above. Based on the routing information in the entry pointed to by the index vector, platform hub 210 may route the data packet to the suitable destination through interconnection unit 212.
For example, it may be decided, for example by a user, that processing platform 220 should handle certain types of data packets and that other incoming packets should be sent back to the network. A type of a data packet may include, for example, a type of transport protocol being used, data packet size, type of data, or any other suitable kind of classification criteria. CAUs 214a, 214b and 214c may detect the data packet of a desired type based on the content aware classification. For data packets of the desired type incoming from network ports 218a and/or 218b, CAUs 214b and/or 214c may be pre-configured to generate an index vector routing the data packet to processor port 216a as a destination port. For data packets which are not of the desired type, CAUs 214b and/or 214c may be pre-configured to generate an index vector routing the data packet to the suitable network port, for example network port 218a or 218b.
In some cases, platform hub 210 may be used to filter out certain kinds of data packets and/or data packets which include certain kinds of content. For example, CAU 214a, 214b or 214c may detect, based on the content aware classification, that the data packet should be discarded, for example according to pre-configuration of the CAU by a user. Platform hub 210 may filter out the unwanted data packet, for example, by routing the data packet to an unconnected or a nonexistent port. For example, the CAU which detects an unwanted data packet may generate an index vector pointing to a lookup table entry which may define the destination to be an unconnected or a nonexistent port.
In some embodiments of the present invention, a series of platform hubs, wherein each platform hub may be connected to a corresponding processing platform, may be used for cascaded routing of data, as described in detail herein below with reference to
Reference is now made to
It may be decided, for example, by a user, that processing platform 320 should handle data packets of type “A”, that processing platform 420 should handle data packets of type “B” and that processing platform 520 should handle data packets of type “C”. When a data packet is received in platform hub 310 from a network agent, for example network agent 370a, CAU 314b may detect based on the content aware classification whether the data packet is of type “A”. In cased the data packet is of type “A”, platform hub 310 may route the data packet to processing platform 320, for example, in the manner described above with reference to
A data packet which is routed to network agent 370b may subsequently be received in platform hub 410 through network agent 470a. CAU 414b may detect, based on the content aware classification, whether the data packet is of type “B”. In cased the data packet is of type “B”, platform hub 410 may route the data packet to processing platform 420, for example, in the manner described above with reference to
A data packet which is routed to network agent 470b may subsequently be received in platform hub 510 through network agent 570a. CAU 514b may detect based on the content aware classification whether the data packet is of type “C”. In cased the data packet is of type “C”, platform hub 510 may route the data packet to processing platform 520, for example, in the manner described above with reference to
The process described above may continue similarly with additional platform hubs and corresponding processing platforms.
Reference is now made to
Reference is now made to
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
This application claims the benefit of U.S. Provisional Application No. 61/160,383, filed on Mar. 16, 2009, which is incorporated in its entirety herein by reference.
Number | Date | Country | |
---|---|---|---|
61160383 | Mar 2009 | US |