CONTROLLER FOR FLEXIBLE AND EXTENSIBLE FLOW PROCESSING IN SOFTWARE-DEFINED NETWORKS
First Claim
1. A method performed by a network device acting as a controller within a software-defined network, comprising the steps of:
- receiving a processing definition, wherein the processing definition includes a first representation of;
configurable definitions of protocols including relevant header fields of protocol headers,configurable flow table definitions including key compositions based on a first plurality of the relevant header fields, wherein the key composition for each of the flow table definitions identifies a set of one or more of the relevant header fields selected for that flow table definition, andconfigurable logic for selecting, based on a second plurality of the relevant header fields, between flow tables defined by the configurable flow table definitions;
translating the processing definition to create a parser configuration package, wherein the parser configuration package includes a second representation of the configurable flow table definitions and the configurable logic for selecting between flow tables;
distributing the parser configuration package to a plurality of forwarding elements to cause each to create a flow table based on each of the configurable flow table definitions, wherein each of the flow tables includes a configurable key column for each of the relevant header fields identified by the key composition included in the flow table definition on which that flow table is based, wherein each of the flow tables also includes a set of one or more action columns to store forwarding decisions; and
transmitting data to populate the configurable key columns and action columns of the flow tables created within each of the plurality of forwarding elements.
1 Assignment
0 Petitions
Accused Products
Abstract
A network device acts as a controller within a software-defined network. The network device receives a processing definition, which includes a representation of configurable definitions of protocols, configurable flow table definitions, and configurable logic for selecting between flow tables defined by the configurable flow table definitions. The network device translates the processing definition to create a parser configuration package, which is distributed to a plurality of forwarding elements. This distribution causes each forwarding element to create a flow table based on each of the configurable flow table definitions. The flow tables include one or more configurable key columns and a set of one or more action columns to store forwarding decisions. The network device transmits data to populate the configurable key columns and action columns of the flow tables created within each of the plurality of forwarding elements.
250 Citations
20 Claims
-
1. A method performed by a network device acting as a controller within a software-defined network, comprising the steps of:
-
receiving a processing definition, wherein the processing definition includes a first representation of; configurable definitions of protocols including relevant header fields of protocol headers, configurable flow table definitions including key compositions based on a first plurality of the relevant header fields, wherein the key composition for each of the flow table definitions identifies a set of one or more of the relevant header fields selected for that flow table definition, and configurable logic for selecting, based on a second plurality of the relevant header fields, between flow tables defined by the configurable flow table definitions; translating the processing definition to create a parser configuration package, wherein the parser configuration package includes a second representation of the configurable flow table definitions and the configurable logic for selecting between flow tables; distributing the parser configuration package to a plurality of forwarding elements to cause each to create a flow table based on each of the configurable flow table definitions, wherein each of the flow tables includes a configurable key column for each of the relevant header fields identified by the key composition included in the flow table definition on which that flow table is based, wherein each of the flow tables also includes a set of one or more action columns to store forwarding decisions; and transmitting data to populate the configurable key columns and action columns of the flow tables created within each of the plurality of forwarding elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A network device to act as a controller within a software-defined network, comprising:
-
a definition reception module operable to receive a processing definition, wherein the processing definition includes a first representation of; configurable definitions of protocols including relevant header fields of protocol headers, configurable flow table definitions including key compositions based on a first plurality of the relevant header fields, wherein the key composition for each of the flow table definitions identifies a set of one or more of the relevant header fields selected for that flow table definition, and configurable logic for selecting, based on a second plurality of the relevant header fields, between flow tables defined by the configurable flow table definitions; a translator operable to translate the processing definition to create a parser configuration package, wherein the parser configuration package includes a second representation of the configurable flow table definitions and the configurable logic for selecting between flow tables; a distribution module operable to distribute the parser configuration package to a plurality of forwarding elements to cause each to create a flow table based on each of the configurable flow table definitions, wherein each of the flow tables includes a configurable key column for each of the relevant header fields identified by the key composition included in the flow table definition on which that flow table is based, wherein each of the flow tables also includes a set of one or more action columns to store forwarding decisions; and a flow table population module operable to transmit data to populate the configurable key columns and action columns of the flow tables created within each of the plurality of forwarding elements. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification