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. 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; 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; 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.