Port addressing via packet header modification
Abstract
Techniques are disclosed for processing flows by a smart network interface card (smartNIC) based on modifying a packet. In one example, an accelerator receives a packet from a first port of the smartNIC. The accelerator determines that the packet was received from a first port via a second data path instead of a first data path. The accelerator modifies the packet to indicate that the packet arrived from the first port via the second data path. The accelerator inserts the modified packet into a queue. A programming data plane of the smartNIC receives the modified packet from the queue. The programming data plane processes the modified packet based at least in part on determining that the packet arrived at the first port via the second data path.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method, comprising:
receiving, by an accelerator of a smart network interface card, a packet from a first port of the smart network interface card, the first port being associated with a first data path and a second data path; determining, by the accelerator, that the packet was received from the first port via the second data path instead of the first data path, wherein a programming data plane of the smart network interface card determines a particular flow associated with the packet based at least in part on determining that the packet was transmitted to the smart network interface card from a first host computer via the second data path; modifying, by the accelerator, the packet to indicate that the packet arrived from the first port via the second data path; inserting, by the accelerator, the modified packet into a queue; receiving, by the programming data plane, the modified packet from the queue; and processing, by the programming data plane, the modified packet based at least in part on determining that the packet arrived at the first port via the second data path.
2 . The computer-implemented method of claim 1 , wherein modifying the packet by the accelerator comprises including a header within the packet that corresponds to a bit-string indicating the second data path.
3 . The computer-implemented method of claim 1 , wherein the first port is associated with a third data path, and wherein the first port is connected to a splitter device that splits the third data path into the first data path and the second data path.
4 . The computer-implemented method of claim 3 , wherein the first data path is associated with a first physical medium that connects the splitter device to the first host computer, and wherein the second data path is associated with a second physical medium that connects the splitter device to a second host computer.
5 . The computer-implemented method of claim 1 , wherein processing the modified packet further comprises:
identifying, by the programming data plane, a bit-string within the modified packet that indicates that the packet arrived at the first port via the second data path; and determining, by the programming data plane, a particular customer account identifier based at least in part on the bit-string.
6 . The computer-implemented method of claim 5 , further comprising:
identifying, by the programming data plane, a tuple within the modified packet that is associated with a particular flow; and generating, by the programming data plane, a hash based at least in part on at least one of: a virtual local area network tag, the bit-string, or the tuple.
7 . The computer-implemented method of claim 6 , wherein the hash is associated with a cache entry of a cache maintained by the smart network interface card, the cache entry storing data associated with the particular flow, and wherein the smart network interface card determines to process the packet based at least in part on the data within the cache entry.
8 . A smart network interface card, comprising:
one or more processors; and one or more computer-readable media having stored thereon a set of instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, by an accelerator of a smart network interface card, a packet from a first port of the smart network interface card, the first port being associated with a first data path and a second data path;
determine, by the accelerator, that the packet was received from the first port via the second data path instead of the first data path, wherein a programming data plane of the smart network interface card determines a particular flow associated with the packet based at least in part on determining that the packet was transmitted to the smart network interface card from a first host computer via the second data path;
modify, by the accelerator, the packet to indicate that the packet arrived from the first port via the second data path;
insert, by the accelerator, the modified packet into a queue;
receive, by the programming data plane, the modified packet from the queue; and
process, by the programming data plane, the modified packet based at least in part on determining that the packet arrived at the first port via the second data path.
9 . The smart network interface card of claim 8 , wherein modifying the packet by the accelerator comprises including a header within the packet that corresponds to a bit-string indicating the second data path.
10 . The smart network interface card of claim 8 , wherein the first port is associated with a third data path, and wherein the first port is connected to a splitter device that splits the third data path into the first data path and the second data path.
11 . The smart network interface card of claim 10 , wherein the first data path is associated with a first physical medium that connects the splitter device to the first host computer, and wherein the second data path is associated with a second physical medium that connects the splitter device to a second host computer.
12 . The smart network interface card of claim 8 , wherein processing the modified packet further comprises:
identifying, by the programming data plane, a bit-string within the modified packet that indicates that the packet arrived at the first port via the second data path; and determining, by the programming data plane, a particular customer account identifier based at least in part on the bit-string.
13 . The smart network interface card of claim 12 , wherein the set of instructions, when executed by the one or more processors, cause the one or more processors to:
identify, by the programming data plane, a tuple within the modified packet that is associated with a particular flow; and generate, by the programming data plane, a hash based at least in part on at least one of: a virtual local area network tag, the bit-string, or the tuple.
14 . The smart network interface card of claim 13 , wherein the hash is associated with a cache entry of a cache maintained by the smart network interface card, the cache entry storing data associated with the particular flow, and wherein the smart network interface card determines to process the packet based at least in part on the data within the cache entry.
15 . One or more non-transitory computer-readable media having stored thereon a set of instructions that, when executed by one or more processors of a computing system, cause a smart network interface card to:
receive, by an accelerator of a smart network interface card, a packet from a first port of the smart network interface card, the first port being associated with a first data path and a second data path; determine, by the accelerator, that the packet was received from the first port via the second data path instead of the first data path, wherein a programming data plane of the smart network interface card determines a particular flow associated with the packet based at least in part on determining that the packet was transmitted to the smart network interface card from a first host computer via the second data path; modify, by the accelerator, the packet to indicate that the packet arrived from the first port via the second data path; insert, by the accelerator, the modified packet into a queue; receive, by the programming data plane, the modified packet from the queue; and process, by the programming data plane, the modified packet based at least in part on determining that the packet arrived at the first port via the second data path.
16 . The one or more non-transitory computer-readable media of claim 15 , wherein modifying the packet by the accelerator comprises including a header within the packet that corresponds to a bit-string indicating the second data path.
17 . The one or more non-transitory computer-readable media of claim 15 , wherein the first port is associated with a third data path, and wherein the first port is connected to a splitter device that splits the third data path into the first data path and the second data path.
18 . The one or more non-transitory computer-readable media of claim 17 , wherein the first data path is associated with a first physical medium that connects the splitter device to the first host computer, and wherein the second data path is associated with a second physical medium that connects the splitter device to a second host computer.
19 . The one or more non-transitory computer-readable media of claim 15 , wherein processing the modified packet further comprises:
identifying, by the programming data plane, a bit-string within the modified packet that indicates that the packet arrived at the first port via the second data path; and determining, by the programming data plane, a particular customer account identifier based at least in part on the bit-string.
20 . The one or more non-transitory computer-readable media of claim 19 , wherein the set of instructions, when executed by the one or more processors, cause the one or more processors to:
identify, by the programming data plane, a tuple within the modified packet that is associated with a particular flow; and generate, by the programming data plane, a hash based at least in part on at least one of: a virtual local area network tag, the bit-string, or the tuple.Join the waitlist — get patent alerts
Track US2024291768A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.