EP2955886B1

Using transactions to compute and propagate network forwarding state

Abstract

This record has no abstract on file.

EP2955886B1, drawing sheet 1
Sheet 1 of 14

Term

6.6 yearsleft in the term

Expires 18 April 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

14 claims: 3 independent, 11 dependent

  1. 1
    A method for a first network controller (115) that distributes forwarding state data to a managed forwarding element (125) in order to configure the managed forwarding element (125) to forward data in a network, the method comprising:receiving a plurality of sets of input forwarding state data for a transaction from a second controller (110) that generates the input forwarding state data;for each set of input forwarding state data of the plurality of sets: determining whether the set of input forwarding state data has external dependencies, wherein the set of input forwarding state data has external dependencies when a response from the managed forwarding element is required before a resulting set of output state data can be produced;when the set of input forwarding state data has external dependencies: processing at least a portion of the received set of input forwarding state data (210) to generate a set of output forwarding state data;distributing the set of output forwarding state data to the managed forwarding element (125) as a request for additional data;and modifying the set of output forwarding state data based on a response from the managed forwarding element (125) to produce a resulting set of output state data;and when the set of input forwarding state data does not have external dependencies: processing the received set of input forwarding state data to generate a resulting set of output forwarding state data;and distributing the resulting sets of output forwarding state data to the managed forwarding element (125) only after processing all of the plurality of sets of input forwarding state data of the transaction.
  2. 13
    A machine readable medium storing a program for execution by at least one processing unit, the program comprising sets of instructions for implementing the method according to any of claims 1-12.
  3. 14
    An apparatus comprising:a set of processing units;and a machine readable medium storing a program for execution by at least one of the processing units, the program comprising sets of instructions for implementing the method according to any of claims 1-12.