IP Library Granted Patent US 12,218,849
Granted Patent B2
US 12,218,849 · App. 18/589,466 · Granted Feb 4, 2025

Hardware-agnostic specification of packet-processing pipelines

Inventors: Roni Bar Yanai (Even Yehuda, IL); Jiawei Wang (Shenzhen, CN); Yossef Efraim (Hong Kong Island, HK); Chen Rozenbaum (Beer Yaakov, IL)
Assignee: Mellanox Technologies, Ltd
H04L47/2483H04L45/748
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,218,849
App. No.
18/589,466
Granted
Feb 4, 2025
Kind
B2
Abstract

A method includes providing a library of hardware-agnostic packet-processing functions. A functional hardware-agnostic specification of a packet-processing pipeline is received from a user. The specification is defined in terms of one or more of the packet-processing functions drawn from the library. A hardware-specific design of the packet-processing pipeline, which is suited to given hardware, is derived from the specification.

Claims (75)

1. A method, comprising:

providing a library of hardware-agnostic packet-processing functions;

receiving, from a user, a functional hardware-agnostic specification of a packet-processing pipeline, the specification defined in terms of one or more of the packet-processing functions drawn from the library;

deriving, from the functional hardware-agnostic specification, a hardware-specific design of the packet-processing pipeline that is suited to manufacture a hardware device implementing the packet-processing pipeline, wherein deriving the hardware-specific design comprises (i) converting the functional hardware-agnostic specification into a hardware-agnostic intermediate representation, and (ii) generating the hardware-specific design from the intermediate representation; and

adding a new function or flow-pipe to the hardware-specific design, by:

converting a new functional hardware-agnostic specification, of the new function or flow-pipe, into the intermediate representation; and

generating an updated hardware-specific design, which includes the new function or flow-pipe, from (i) the intermediate representation of the functional hardware-agnostic specification of the packet-processing pipeline and (ii) the intermediate representation of the new function or flow-pipe.

2. The method according to claim 1 , wherein providing the library comprises exposing to the user an Application Programming Interface (API) for defining the specification using the library.

3. The method according to claim 1 , wherein the hardware-agnostic packet-processing functions perform one or more of:

Access Control List (ACL) functionality;

Longest Prefix Matching (LPM);

match table functionality;

encryption;

decryption;

packet modification;

packet mirroring;

packet metering;

packet counting;

connection tracking;

packet aging; and

packet forwarding.

4. The method according to claim 1 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable packet parsing operation, and wherein receiving the specification from the user comprises receiving a configuration of the packet parsing operation.

5. The method according to claim 1 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable action, and wherein receiving the specification from the user comprises receiving a configuration of the action.

6. The method according to claim 1 , wherein deriving the hardware-specific design of the packet-processing pipeline comprises deriving a design of one of a switch, a router, a gateway, a network adapter, a firewall and a User-Plane Function (UPF).

7. An apparatus, comprising:

a memory, to store a library of hardware-agnostic packet-processing functions; and

a processor, to:

provide the library to a user;

receive, from the user, a functional hardware-agnostic specification of a packet-processing pipeline, the specification defined in terms of one or more of the packet-processing functions drawn from the library;

derive, from the functional hardware-agnostic specification, a hardware-specific design of the packet-processing pipeline that is suited to manufacture a hardware device implementing the packet-processing pipeline, wherein, to derive the hardware-specific design, the processor is to (i) convert the functional hardware-agnostic specification into a hardware-agnostic intermediate representation, and (ii) generate the hardware-specific design from the intermediate representation; and

add a new function or flow-pipe to the hardware-specific design, by:

converting a new functional hardware-agnostic specification, of the new function or flow-pipe, into the intermediate representation; and

generating an updated hardware-specific design, which includes the new function or flow-pipe, from (i) the intermediate representation of the functional hardware-agnostic specification of the packet-processing pipeline and (ii) the intermediate representation of the new function or flow-pipe.

8. The apparatus according to claim 7 , wherein the processor is to expose to the user an Application Programming Interface (API) for defining the specification using the library.

9. The apparatus according to claim 7 , wherein the hardware-agnostic packet-processing functions perform one or more of:

Access Control List (ACL) functionality;

Longest Prefix Matching (LPM);

match table functionality;

encryption;

decryption;

packet modification;

packet mirroring;

packet metering;

packet counting;

connection tracking;

packet aging; and

packet forwarding.

10. The apparatus according to claim 7 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable packet parsing operation, and wherein, in receiving the specification from the user, the processor is to receive a configuration of the packet parsing operation.

11. The apparatus according to claim 7 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable action, and wherein, in receiving the specification from the user, the processor is to receive a configuration of the action.

12. The apparatus according to claim 7 , wherein the processor is to derive, from the specification, a hardware-specific design of one of a switch, a router, a gateway, a network adapter, a firewall and a User-Plane Function (UPF).

13. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to:

store a library of hardware-agnostic packet-processing functions;

provide the library to a user;

receive, from the user, a functional hardware-agnostic specification of a packet-processing pipeline, the specification defined in terms of one or more of the packet-processing functions drawn from the library;

derive, from the functional hardware-agnostic specification, a hardware-specific design of the packet-processing pipeline that is suited to manufacture a hardware device implementing the packet-processing pipeline, wherein, to derive the hardware-specific design, the instructions cause the processor to (i) convert the functional hardware-agnostic specification into a hardware-agnostic intermediate representation, and (ii) generate the hardware-specific design from the intermediate representation; and

add a new function or flow-pipe to the hardware-specific design, by:

converting a new functional hardware-agnostic specification, of the new function or flow-pipe, into the intermediate representation; and

generating an updated hardware-specific design, which includes the new function or flow-pipe, from (i) the intermediate representation of the functional hardware-agnostic specification of the packet-processing pipeline and (ii) the intermediate representation of the new function or flow-pipe.

14. The product according to claim 13 , wherein the instructions cause the processor to expose to the user an Application Programming Interface (API) for defining the specification using the library.

15. The product according to claim 13 , wherein the hardware-agnostic packet-processing functions perform one or more of:

Access Control List (ACL) functionality;

Longest Prefix Matching (LPM);

match table functionality;

encryption;

decryption;

packet modification;

packet mirroring;

packet metering;

packet counting;

connection tracking;

packet aging; and

packet forwarding.

16. The product according to claim 13 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable packet parsing operation, and wherein the instructions cause the processor to receive from the user a configuration of the packet parsing operation.

17. The product according to claim 13 , wherein at least one of the hardware-agnostic packet-processing functions comprises a user-configurable action, and wherein the instructions cause the processor to receive from the user a configuration of the action.

18. The product according to claim 13 , wherein the instructions cause the processor to derive, from the specification, a hardware-specific design of one of a switch, a router, a gateway, a network adapter, a firewall and a User-Plane Function (UPF).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2024
From: BAR YANAI, RONI; WANG, JIAWEI; EFRAIM, YOSSEF; ROZENBAUM, CHEN
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 066581/0915 →
Continuity (3)
Continuation 17955583 · Sep 29, 2022
Provisional Application 63274553 · Nov 2, 2021
Related Publication 20240250911A1 · Jul 25, 2024
References Cited (20)
US 7669166B1 · Brebner et al. · 2010 [cited by applicant]
US 9405866B1 · Cho et al. · 2016 [cited by applicant]
US 9983857B2 · Powers et al. · 2018 [cited by applicant]
US 10521283B2 · Shuler et al. · 2019 [cited by applicant]
US 10841243B2 · Levi et al. · 2020 [cited by applicant]
US 11271874B2 · Levi et al. · 2022 [cited by applicant]
US 11968126B2 · Bar Yanai et al. · 2024 [cited by applicant]
US 20130163475A1 · Beliveau et al. · 2013 [cited by applicant]
US 20160191530A1 · Jain · 2016 [cited by examiner]
US 20190081899A1 · Mundkur · 2019 [cited by examiner]
US 20220078043A1 · Marcovitch et al. · 2022 [cited by applicant]
US 20220078107A1 · Subhaschandra et al. · 2022 [cited by applicant]
US 20230251980A1 · Syrivelis et al. · 2023 [cited by applicant]
US 20230315659A1 · Marcovitch et al. · 2023 [cited by applicant]
US 20230376450A1 · Ranadive et al. · 2023 [cited by applicant]
Wikipedia, “PCI Express,” pp. 1-26, last edited Aug. 29, 2022. [cited by applicant]
NVIDIA Developer, “CUDA Toolkit,” NVIDIA Corporation, pp. 1-7, year 2022, as downloaded from https://developer.nvidia.com/cuda-toolkit. [cited by applicant]
Purandare, “DeepStream SDK,” NVIDIA, pp. 1-19, Mar. 2018, as downloaded from https://on-demand.gputechconf.com/gtc/2018/presentation/s81047-introduction-to-deep-stream-sdk.pdf. [cited by applicant]
Infiniband Trade Association, “InfiniBandTM Architecture Specification”, vol. 1, Release 1.3, pp. 1-1842, Mar. 3, 2015. [cited by applicant]
Wheeler, “DPU-Based Hardware Acceleration: A Software Perspective,” White Paper, The Linley Group, Inc., pp. 1-8, Jun. 2021. [cited by applicant]