Managing network forwarding configurations using algorithmic policies
OwnerAndreas Richard Voellmyinventor
Life of this patent
Estimating the term…
Abstract
Techniques for managing forwarding configurations in a data communications network include accessing, at the at least one controller, an algorithmic policy defined by a user comprising one or more programs written in a general-purpose programming language other than a language of data forwarding element forwarding rules, which algorithmic policy in particular defines a packet-processing function specifying how data packets are to be processed through the data communications network via the at least one controller. A forwarding configuration for at least one data forwarding element in the data communications network may be derived from the user-defined packet-processing policy, and may be applied to the at least one data forwarding element.
Claims32
In a data communications network comprising a plurality of data forwarding elements each having a set of forwarding rules and being configured to forward data packets according to the set of forwarding rules, the data communications network further comprising at least one controller including at least one processor configured to update forwarding rules in at least some of the plurality of data forwarding elements, a method comprising:
- accessing, at the at least one controller, an algorithmic policy defined by a user comprising one or more programs written in a general-purpose programming language other than a language of data forwarding element forwarding rules, which algorithmic policy in particular defines a packet-processing function specifying how data packets are to be processed through the data communications network;
- applying the packet-processing function at the at least one controller to process a first data packet through the data communications network, whereby the first data packet has been delivered to the controller by a data forwarding element that did not contain a set of forwarding configurations capable of addressing the data packet;
- recording one or more characteristics of the first data packet queried by the at least one controller in applying the packet-processing function to process the first data packet, and a manner in which the first data packet is processed by the packet-processing function;
- defining forwarding rules specifying that data packets having the one or more queried characteristics are to be processed in the manner in which the first data packet is processed;
- and
- applying the derived forwarding rules to the at least one data forwarding element, wherein
- 1. the user-defined algorithmic policy declares state components including variables of any type, sets containing elements of any type, and finite key-value maps with arbitrary key and value types, and the packet processing function accesses said state components when processing a packet through read or write operations,
- 2. the dependency of an algorithmic policy execution on declared state components accessed during the execution is recorded in a state dependency table, and
- 3. when a state component is changed the state dependency table is used to determine the packet processing function executions which may no longer be valid, and the derived forwarding rules for invalidated executions are removed from the at least one data forwarding element and updates of other network element forwarding rules are made if needed to ensure correctness in the absence of the removed rules.
(canceled)
(canceled)
In a data communications network comprising a plurality of data forwarding elements each having a set of forwarding rules and being configured to forward data packets according to the set of forwarding rules, the data communications network further comprising at least one controller including at least one processor configured to update forwarding rules in at least some of the plurality of data forwarding elements, a method comprising:
- accessing, at the at least one controller, an algorithmic policy defined by a user in a general-purpose programming language other than a language of data forwarding element forwarding rules, which algorithmic policy defines a packet-processing function specifying how data packets are to be processed through the data communications network;
- applying the packet-processing function at the at least one controller to process a first data packet through the data communications network, whereby the first data packet has been delivered to the controller by a data forwarding element that did not contain a set of forwarding configurations capable of addressing the data packet;
- recording one or more characteristics of the first data packet queried by the at least one controller in applying the packet-processing function to process the first data packet, and a manner in which the first data packet is processed by the packet-processing function;
- defining forwarding rules specifying that data packets having the one or more queried characteristics are to be processed in the manner in which the first data packet is processed and
- applying the derived forwarding rules to the at least one data forwarding element, used to implement any of the following network services:
- a. Ethernet (L2) network services,
- b. IP routing services,
- c. Firewall services,
- d. Multi-tenant cloud services, including virtual address spaces,
- e. Network Address Translation (NAT) services,
- f. Server load balancing services,
- g. ARP proxy,
- h. DHCP services,
- i. DNS services,
- j. Traffic monitoring services (forwarding traffic of desired classes to one or more monitoring devices connected to the network),
- k. Traffic statistics collection,
- l. Service chaining system where packets are delivered through a chain of services, according to user-specified per-traffic class service chain configuration, where services may be realized as traditional network appliances or as virtualized as virtual machines running on standard computing systems,
- m. Traffic engineering over wide-area network (WAN) connections, or
- n. Quality of service forwarding to support voice and video network applications.
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
30-33. (canceled)
Dependencies are inferred from the claim text.