Patent ID: 9590922
Date: 2017-03-07
CPC Classifications: H04L

Claim:
1. A method comprising: storing a plurality of entries in a ternary content-addressable memory (TCAM) table on an Ethernet switching chip integrated into a control server, one or more entries of the plurality of entries comprising an index and two or more intermediate addresses, the one or more entries including an indication of a port on the Ethernet switching chip; receiving, from a source server, a data packet at the control server; extracting a key at the Ethernet switching chip from the data packet, the key comprising a key index and two or more key intermediate addresses; comparing the key with at least one entry of the plurality of entries stored in the TCAM table; determining, as a matched entry in the TCAM table, that the key index and at least one key intermediate address of the two or more key intermediate addresses match the at least one entry in the TCAM table; collecting, by the control server, first congestion information representing a number of data packets waiting to be sent from the Ethernet switching chip and an amount of bandwidth available for sending one or more data packets from the Ethernet switching chip to a destination server; based at least partly on the matched entry in the TCAM table, sending the data packet to a designated port of the Ethernet switching chip, the designated port being associated with the at least one entry of the TCAM table; sending, by the control server, second congestion information to the source server, the second congestion information instructing the source server to reduce a rate of transmitting the data packets to the destination server, the second congestion information bypassing the Ethernet switching chip, the Ethernet switching chip integrated into the control server; processing the data packet in a user space maintained by the control server or in a routing device driver in the control server based at least in part on one or more latency requirements for processing the data packet, the user space including at least one or more application programming interfaces for configuring the TCAM table; and sending the data packet from the designated port to the destination server.