IP Library Granted Patent US 12,355,669
Granted Patent B2
US 12,355,669 · App. 18/657,055 · Granted Jul 8, 2025

Efficient flow management utilizing unified logging

Inventors: Brijesh Singh (Mercer Island, WA); Leonard Thomas Tracy (Bothell, WA)
Assignee: Oracle International Corporation
H04L47/125H04L45/38H04L45/74H04L47/2441H04L47/33
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,355,669
App. No.
18/657,055
Granted
Jul 8, 2025
Kind
B2
Abstract

Techniques are disclosed for a smart network interface card (smartNIC) performing a unified logging process. In one example, an accelerator transmits a packet to a programming data plane of the smart network interface card. The programming data plane determines whether the packet is to be forwarded. In accordance with a determination that the packet is not be forwarded, the programming data plane modifies the packet to include an instruction that instructs the accelerator to log the packet and to not forward the packet. The programming data plane transmits the modified packet to the accelerator. The accelerator logs data associated with the modified packet to a unified log based at least in part on the instruction.

Claims (58)

1. A computer-implemented method, comprising:

transmitting, by an accelerator of a smart network interface card, a packet to a programming data plane of the smart network interface card;

determining, by a programming data plane, whether the packet is to be forwarded; and

in accordance with a determination that the packet is not be forwarded:

modifying, by the programming data plane, the packet to include an instruction that instructs the accelerator to log the packet and to not forward the packet;

transmitting, by the programming data plane, the modified packet to the accelerator; and

logging, by the accelerator, data associated with the modified packet to a unified log based at least in part on the instruction.

2. The computer-implemented method of claim 1 , wherein determining whether the packet is to be forwarded comprises:

identifying an authorized flow; and

determining whether the packet is associated with an authorized flow, wherein the packet is to be forwarded based at least in part on whether the packet is associated with the authorized flow.

3. The computer-implemented method of claim 1 , wherein the accelerator manages cache entries of a cache, a cache entry storing flow state of an authorized flow associated with the packet, and wherein determining whether the packet is to be forwarded comprises:

identifying a policy associated with the cache entry; and

determining whether the packet conforms to the policy, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the policy.

4. The computer-implemented method of claim 1 , wherein determining whether the packet is to be forwarded comprises:

accessing a security list stored at the programming data plane, the security list comprising a rule; and

determining whether the packet conforms to the rule, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the rule.

5. The computer-implemented method of claim 1 , wherein the accelerator logs metadata associated with the modified packet to the unified log, the accelerator being configured to log metadata from packets processed by at least one of: the accelerator, or the programming data plane.

6. The computer-implemented method of claim 5 , wherein the metadata indicates that the packet was not forwarded to another device, the indication based at least in part on the instruction.

7. The computer-implemented method of claim 1 , wherein the programming data plane transmits the modified packet to the accelerator via a data bus that is configured to route packets that utilize a particular header format between the accelerator and the programming data plane.

8. A smart network interface card, comprising:

one or more processors;

one or more computer-readable media that, when executed by one or more processors, cause the smart network interface card to:

transmit, by an accelerator of the smart network interface card, a packet to a programming data plane of the smart network interface card;

determine, by a programming data plane, whether the packet should be forwarded based at least in part on whether the packet is associated with an authorized flow; and

in accordance with a determination that the packet should not be forwarded:

modify, by the programming data plane, the packet to include an instruction that instructs the accelerator to log the packet and to not forward the packet;

transmit, by the programming data plane, the modified packet to the accelerator; and

log, by the accelerator, data associated with the modified packet to a unified log based at least in part on the instruction.

9. The smart network interface card of claim 8 , wherein determining whether the packet is to be forwarded comprises:

identifying an authorized flow; and

determining whether the packet is associated with an authorized flow, wherein the packet is to be forwarded based at least in part on whether the packet is associated with the authorized flow.

10. The smart network interface card of claim 8 , wherein the accelerator manages cache entries of a cache, a cache entry storing flow state of an authorized flow associated with the packet, and wherein determining whether the packet is to be forwarded comprises:

identifying a policy associated with the cache entry; and

determining whether the packet conforms to the policy, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the policy.

11. The smart network interface card of claim 8 , wherein determining whether the packet is to be forwarded comprises:

accessing a security list stored at the programming data plane, the security list comprising a rule; and

determining whether the packet conforms to the rule, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the rule.

12. The smart network interface card of claim 8 , wherein the accelerator logs metadata associated with the modified packet to the unified log, the accelerator being configured to log metadata from packets processed by at least one of: the accelerator, or the programming data plane.

13. The smart network interface card of claim 12 , wherein the metadata indicates that the packet was not forwarded to another device, the indication based at least in part on the instruction.

14. The smart network interface card of claim 8 , wherein the programming data plane transmits the modified packet to the accelerator via a data bus that is configured to route packets that utilize a particular header format between the accelerator and the programming data plane.

15. One or more non-transitory computer-readable storage media comprising a set of instructions that, when executed by one or more processors, cause a smart network interface card to:

transmit, by an accelerator of the smart network interface card, a packet to a programming data plane of the smart network interface card;

determine, by a programming data plane, whether the packet should be forwarded based at least in part on whether the packet is associated with an authorized flow; and

in accordance with a determination that the packet should not be forwarded:

modify, by the programming data plane, the packet to include an instruction that instructs the accelerator to log the packet and to not forward the packet;

transmit, by the programming data plane, the modified packet to the accelerator; and

log, by the accelerator, data associated with the modified packet to a unified log based at least in part on the instruction.

16. The one or more non-transitory computer-readable storage media of claim 15 , wherein the accelerator manages cache entries of a cache, a cache entry storing flow state of a particular authorized flow, and wherein the accelerator determines that the packet is not associated with the authorized flow based at least in part on determining that the packet is not associated with a cache entry of the cache.

17. The one or more non-transitory computer-readable storage media of claim 15 , wherein determining whether the packet is to be forwarded comprises:

identifying an authorized flow; and

determining whether the packet is associated with an authorized flow, wherein the packet is to be forwarded based at least in part on whether the packet is associated with the authorized flow.

18. The one or more non-transitory computer-readable storage media of claim 15 , wherein the accelerator manages cache entries of a cache, a cache entry storing flow state of an authorized flow associated with the packet, and wherein determining whether the packet is to be forwarded comprises:

identifying a policy associated with the cache entry; and

determining whether the packet conforms to the policy, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the policy.

19. The one or more non-transitory computer-readable storage media of claim 15 , wherein determining whether the packet is to be forwarded comprises:

accessing a security list stored at the programming data plane, the security list comprising a rule; and

determining whether the packet conforms to the rule, wherein the packet is to be forwarded based at least in part on whether the packet conforms to the rule.

20. The one or more non-transitory computer-readable storage media of claim 19 , wherein the metadata indicates that the packet was not forwarded to another device, the indication based at least in part on the instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2024
From: SINGH, BRIJESH; TRACY, LEONARD THOMAS
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 067336/0811 →
Continuity (2)
Continuation 17389219 · Jul 29, 2021
Related Publication 20240291762A1 · Aug 29, 2024
References Cited (67)
US 8930690B2 · Zuo et al. · 2015 [cited by applicant]
US 9674090B2 · Caulfield et al. · 2017 [cited by applicant]
US 10841243B2 · Levi et al. · 2020 [cited by applicant]
US 11157422B2 · Bernat et al. · 2021 [cited by applicant]
US 11388225B1 · Duraj et al. · 2022 [cited by applicant]
US 11456951B1 · Wu · 2022 [cited by examiner]
US 11496599B1 · Singh · 2022 [cited by applicant]
US 11593136B2 · Galles · 2023 [cited by applicant]
US 11960919B2 · Niu et al. · 2024 [cited by applicant]
US 12010195B2 · Singh · 2024 [cited by applicant]
US 12015557B2 · Singh · 2024 [cited by examiner]
US 12015562B2 · Singh · 2024 [cited by applicant]
US 20160232019A1 · Shah et al. · 2016 [cited by applicant]
US 20160330112A1 · Raindel et al. · 2016 [cited by applicant]
US 20160380896A1 · Caulfield et al. · 2016 [cited by applicant]
US 20170187640A1 · Vasudevan et al. · 2017 [cited by applicant]
US 20170289067A1 · Lu et al. · 2017 [cited by applicant]
US 20180285288A1 · Bernat et al. · 2018 [cited by applicant]
US 20190042741A1 · Abodunrin et al. · 2019 [cited by applicant]
US 20190044866A1 · Chilikin et al. · 2019 [cited by applicant]
US 20190044879A1 · Richardson et al. · 2019 [cited by applicant]
US 20190109793A1 · Dalal · 2019 [cited by applicant]
US 20190394066A1 · Lin et al. · 2019 [cited by applicant]
US 20200021532A1 · Borikar et al. · 2020 [cited by applicant]
US 20200174954A1 · Pope · 2020 [cited by applicant]
US 20200201624A1 · Halder et al. · 2020 [cited by applicant]
US 20200267082A1 · Dong · 2020 [cited by applicant]
US 20200278892A1 · Nainar et al. · 2020 [cited by applicant]
US 20200314011A1 · Deval et al. · 2020 [cited by applicant]
US 20210019270A1 · Li et al. · 2021 [cited by applicant]
US 20210112132A1 · Paliwal et al. · 2021 [cited by applicant]
US 20210117360A1 · Kutch et al. · 2021 [cited by applicant]
US 20220100546A1 · Cherian et al. · 2022 [cited by applicant]
US 20220164451A1 · Bagwell · 2022 [cited by applicant]
US 20220303137A1 · Brogle et al. · 2022 [cited by applicant]
US 20220329520A1 · Degrace et al. · 2022 [cited by applicant]
US 20220329528A1 · Degrace et al. · 2022 [cited by applicant]
US 20220353197A1 · Singh · 2022 [cited by applicant]
US 20220353240A1 · McDowall et al. · 2022 [cited by applicant]
US 20220353339A1 · Singh · 2022 [cited by applicant]
US 20230029796A1 · Li · 2023 [cited by applicant]
US 20230041806A1 · Singh · 2023 [cited by applicant]
US 20230300075A1 · Peri · 2023 [cited by applicant]
EP 3621251A1 · 2020 [cited by applicant]
WO 2020068725A1 · 2020 [cited by applicant]
U.S. Appl. No. 17/394,300 , “Final Office Action”, Oct. 1, 2024. [cited by applicant]
“An Introduction to SmartNICs”, Available Online at: https://www.nextplatform.com/2019/03/04/an-introduction-to-smartnics/, Mar. 4, 2019, 3 pages. [cited by applicant]
“Best Practices for Client IP Address Preservation”, Available Online at: https://docs.aws.amazon.com/global-accelerator/latest/dg/best-practices-aga.html, Accessed from Internet on Nov. 11, 2020, 2 pages. [cited by applicant]
“Flow Logs in AWS Global Accelerator”, Available Online at: https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html, Accessed from Internet on Nov. 11, 2020, 7 pages. [cited by applicant]
“What is AWS Global Accelerator?”, Available Online at: https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html, Accessed from Internet on Nov. 11, 2020, 1 page. [cited by applicant]
“What Makes a NIC a SmartNIC, and Why is it Needed?”, Available Online at: https://www.netronome.com/blog/what-makes-a-nic-a-smartnic-and-why-is-it-needed/, Sep. 13, 2016, 8 pages. [cited by applicant]
U.S. Appl. No. 17/244,723 , Non-Final Office Action, Mailed On Sep. 15, 2023, 11 pages. [cited by applicant]
U.S. Appl. No. 17/244,727 , Notice of Allowance, Mailed On Jul. 5, 2022, 10 pages. [cited by applicant]
U.S. Appl. No. 17/389,219 , Notice of Allowance, Mailed On Feb. 15, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 17/394,300 , Non-Final Office Action, Mailed On Feb. 28, 2023, 14 pages. [cited by applicant]
U.S. Appl. No. 17/394,300 , Non-Final Office Action, Mailed On Mar. 20, 2024, 16 pages. [cited by applicant]
U.S. Appl. No. 17/959,941 , Non-Final Office Action, Mailed On Jun. 1, 2023, 12 pages. [cited by applicant]
Chawla , “Is it Time for NICs to get Smarter?”, Available Online at: https://www.delltechnologies.com/en-us/blog/smart-nics-smarter/, Sep. 18, 2019, 3 pages. [cited by applicant]
Deierling , “Achieving a Cloud Scale Architecture with DPU based Smart NICs”, Available Online at: https://blog.mellanox.com/2018/09/why-you-need-dpu-based-smart-nic-use-cases/, Sep. 11, 2018, 5 pages. [cited by applicant]
Firestone et al., “Azure Accelerated Networking: SmartNICs in the Public Cloud”, 15th USENIX Symposium on Networked Systems Design and Implementation, Apr. 2018, 14 pages. [cited by applicant]
Gwennap , “Single-Chip Control/Data-Plane Processors Trends, Features, Deployment”, Available Online at: http://linleygroup.com/cms_builder/uploads/WP_SCDP.pdf, Jun. 2008, 10 pages. [cited by applicant]
Kumar , “Taming Latency in Data Center Applications”, Available Online at: https://smartech.gatech.edu/bitstream/handle/1853/61693/KUMAR-DISSERTATION-2019.pdf, Aug. 2019, 156 pages. [cited by applicant]
Le et al., “UNO: Uniflying Host and Smart NIC Offload for Flexible Packet Processing”, Proceedings of the 2017 Symposium on Cloud Computing, Available Online at: https://dl.acm.org/doi/pdf/10.1145/3127479.3132252, Sep. … [cited by applicant]
Schweitzer , “SmartNIC Architectures: A Shift to Accelerators and Why FPGAs are Poised to Dominate”, Available Online at: https://www.electronicdesign.com/markets/automation/article/21136402/xilinx-smartnic-architecture… [cited by applicant]
U.S. Appl. No. 17/952,519, “Non-Final Office Action”, Apr. 3, 2025, 12 pages. [cited by applicant]
U.S. Appl. No. 18/656,436, “Non-Final Office Action”, Mar. 25, 2025, 17 pages. [cited by applicant]
U.S. Appl. No. 17/394,300, “Non-Final Office Action”, Apr. 10, 2025, 14 pages. [cited by applicant]
Cited By (1)
US 12,671,657