| CPC H04L 45/38 (2013.01) [H04L 45/123 (2013.01); H04L 47/122 (2013.01)] | 18 Claims |

|
1. A packet processing system, comprising:
a programmable forwarding device configured to:
receive a packet comprising header information;
compare the header information to a first match field of a first flow entry in a first flow table accessible to the programmable forwarding device to determine whether a first matching flow entry exists in the first flow table;
send, when the first matching flow entry does not exist in the first flow table accessible to the programmable forwarding device, the packet to a programmable network adapter; and
process, when the first matching flow entry exists in the first flow table, the packet based on the first flow entry existing in the first flow table accessible to the programmable forwarding device, wherein the first matching flow entry existing in the first flow table accessible to the programmable forwarding device is offloaded from a second flow table accessible to the programmable network adapter;
a computing device comprising:
the programmable network adapter configured to:
receive the packet from the programmable forwarding device;
compare the header information to a second match field of a second flow entry in the second flow table accessible to the programmable network adapter to determine whether a second matching flow entry exists in the second flow table;
send, when the second flow entry does not exist in the second flow table accessible to the programmable network adapter, the packet to a processor; and
process, when the second matching flow entry exists in the second flow table, the packet based on the second matching flow entry existing in the second flow table accessible to the programmable network adapter, wherein second matching flow entry existing in the second flow table accessible to the programmable network adapter device is offloaded from a third flow table accessible to a gateway running on the processor; and
the processor configured to:
run, when the first matching flow entry does not exist in the first flow table and when the second matching flow entry does not exist in the second flow table, the gateway to receive the packet from the programmable network adapter; and
process, based on a third flow entry in the third flow table accessible to the gateway, the packet.
|