IP Library Granted Patent US 12,568,045
Granted Patent B2
US 12,568,045 · App. 18/340,026 · Granted Mar 3, 2026

Execution of a command within a conditional command received in a data packet

Inventors: Renwei Li (Fremont, CA); Alexander Clemm (Los Gatos, CA); Uma S. Chunduri (Fremont, CA); Kiran Makhijani (Los Gatos, CA)
Assignee: Futurewei Technologies, Inc.
H04L45/566H04L45/02H04L45/20H04L47/2441H04L47/2458H04L47/32H04L47/76H04L49/3009H04L67/12H04L69/22H04L45/036H04L45/037H04L45/0377H04L45/08H04L47/2483H04L47/35
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,568,045
App. No.
18/340,026
Granted
Mar 3, 2026
Kind
B2
Abstract

A mechanism is disclosed for implementing conditional commands carried by network data packets. A data flow including a data packet is received. The data packet includes a conditional command. A condition and a command are obtained from the conditional command. The mechanism determines that the condition is satisfied. Based on the determination that the condition is satisfied, the command is executed to alter handling of the data flow, alter handling of the data packet, or alter a context for the data flow.

Claims (35)

1 . A network device comprising:

a receiver configured to receive a data packet including a conditional command block located between a data link header and a transport header of the data packet, the conditional command block comprising a conditional instruction set header indicating a number of conditional command fields in the conditional command block, a conditional command field comprising at least one command and at least one condition;

a memory storing instructions; and

at least one processor coupled to the receiver and the memory, the at least one processor configured, upon execution of the instructions, to perform the following steps:

obtain a conditional command from the command block;

obtain a condition from the conditional command field of the conditional command;

determine that the condition is satisfied; and

execute the command based on the determination that the condition is satisfied.

2 . The network device of claim 1 , wherein the conditional command field further includes one or more command parameters, a command parameter of the command parameters including an input value for the command.

3 . The network device of claim 1 , wherein the conditional command field further including a condition parameter, the condition parameter including data indicating a value to support evaluation of the condition.

4 . The network device of claim 1 , wherein the command is a complementary command executed in addition to the stored routing instructions.

5 . The network device of claim 1 , wherein the command is an override command executed instead of the stored routing instructions.

6 . The network device of claim 1 , wherein the command instructs the network device to perform at least one of: modifying a resource allocation for the data flow, modifying a chosen next hop for the data flow, or updating a flow context for the data flow.

7 . The network device of claim 1 , wherein the command instructs the network device to perform at least one of: modifying data in the data packet, modifying a chosen next hop for the data packet, modifying a priority for the data packet, dropping the data packet, buffering the data packet, or modifying metadata in the data packet.

8 . The network device of claim 1 , wherein determining the condition is satisfied includes performing at least one of: parsing data from the data packet, checking a flow context of a data flow including the data packet, checking a state of the network device, comparing data items, or checking an identity of the network device.

9 . A method comprising:

receiving, at a receiver in a network device, a data packet including a conditional command block located between a data link header and a transport header of the data packet, the conditional command block comprising a conditional instruction set header indicating a number of conditional command fields in the conditional command block, a conditional command field comprising at least one command and at least one condition;

obtaining, by a processor in the network device, a command from the command block;

obtaining, by the processor, a condition from the conditional command field of the conditional command;

determining, by the processor, that the condition is satisfied; and

executing, by the processor, the command based on the determination that the condition is satisfied.

10 . The method of claim 9 , wherein the conditional command field further includes one or more command parameters, a command parameter of the command parameters including an input value for the command.

11 . The method of claim 9 , wherein the conditional command field further including a condition parameter, the condition parameter including data indicating a value to support evaluation of the condition.

12 . The method of claim 9 , wherein the conditional command field further including a global parameter, the data packet comprises at least one other conditional command, and the global parameter contains data indicating a value to support evaluation of at least two conditional commands in the data packet.

13 . The method of claim 9 , wherein the command is a complementary command executed in addition to the stored routing instructions.

14 . The method of claim 9 , wherein the command is an override command executed instead of the stored routing instructions.

15 . The method of claim 9 , wherein the command instructs the network device to perform at least one of: modifying at least one of a resource allocation for the data flow, modifying a chosen next hop for the data flow, or updating a flow context for the data flow.

16 . The method of claim 9 , wherein the command instructs the network device to perform at least one of: modifying data in the data packet, modifying a chosen next hop for the data packet, modifying a priority for the data packet, dropping the data packet, buffering the data packet, or modifying metadata in the data packet.

17 . The method of claim 9 , wherein determining the condition is satisfied includes performing at least one of: parsing data from the data packet, checking a flow context of a data flow including the data packet, checking a state of the method, comparing data items, or checking an identity of the method.

18 . A non-transitory computer readable media storing computer instructions for use by a network device, that configure at least one processor, upon execution of the instructions, to perform the following steps:

receive a data packet including a conditional command block located between a data link header and a transport header of the data packet, the conditional command block comprising a conditional instruction set header indicating a number of conditional command fields in the conditional command block, a conditional command field comprising at least one command and at least one condition;

obtain a conditional command from the command block;

obtain a condition from the conditional command field of the conditional command;

determine that the condition is satisfied; and

execute the command based on the determination that the condition is satisfied.

Continuity (4)
Continuation 17070631 · Oct 14, 2020
Continuation 16124770 · Sep 7, 2018
Provisional Application 62565211 · Sep 29, 2017
Related Publication 20230336488A1 · Oct 19, 2023
References Cited (23)
US 6414939B1 · Yamato · 2002 [cited by applicant]
US 6970462B1 · Mcrae · 2005 [cited by applicant]
US 8139583B1 · Burton, III et al. · 2012 [cited by applicant]
US 10972397B2 · Li et al. · 2021 [cited by applicant]
US 11722424B2 · Li · 2023 [cited by examiner]
US 20050286517A1 · Babbar et al. · 2005 [cited by applicant]
US 20060050719A1 · Barr et al. · 2006 [cited by applicant]
US 20080291917A1 · Cassod et al. · 2008 [cited by applicant]
US 20090080461A1 · Barri et al. · 2009 [cited by applicant]
US 20130325994A1 · Chai · 2013 [cited by examiner]
US 20140280717A1 · Frost et al. · 2014 [cited by applicant]
US 20150120924A1 · Scott et al. · 2015 [cited by applicant]
US 20150135009A1 · Utaka · 2015 [cited by applicant]
CN 101783798A · 2010 [cited by applicant]
CN 101785255A · 2010 [cited by applicant]
CN 102158409A · 2011 [cited by applicant]
CN 105681223A · 2016 [cited by applicant]
CN 106302266A · 2017 [cited by applicant]
CN 107210975A · 2017 [cited by applicant]
EP 2869535A1 · 2015 [cited by applicant]
EP 2985971A1 · 2016 [cited by applicant]
JP 2014017019A · 2014 [cited by applicant]
Pat Bosshart et al: “P4: Programming Protocol-Independent Packet Processors”, May 15, 2014 (May 15, 2014), XP055207217, DOI: 10.1145/2656877.2656890, 8 pages. [cited by applicant]