2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 module openflow-types {
10 namespace "urn:opendaylight:openflow:common:types";
13 revision "2013-07-31" {
14 description "#NOT_PUBLISHED# OpenFlow 1.3 - common types model";
18 description "Port numbering. Ports are numbered starting from 1 -
19 supports special / reserved values (in OF v1.3)";
23 typedef port-number-values {
24 description "Reserved OpenFlow Port (fake output \"ports\") (OF v1.3).";
27 description "Maximum number of physical and logical switch ports.";
28 value -256; // 0xffffff00
31 description "Send the packet out the input port. This
32 reserved port must be explicitly used
33 in order to send back out of the input
35 value -8; // 0xfffffff8
38 description "Submit the packet to the first flow table
39 NB: This destination port can only be
40 used in packet-out messages.";
41 value -7; // 0xfffffff9
44 description "Process with normal L2/L3 switching.";
45 value -6; // 0xfffffffa
48 description "All physical ports in VLAN, except input
49 port and those blocked or link down.";
50 value -5; // 0xfffffffb
53 description "All physical ports except input port.";
54 value -4; // 0xfffffffc
57 description "Send to controller.";
58 value -3; // 0xfffffffd
61 description "Local openflow \"port\".";
62 value -2; // 0xfffffffe
65 description "Wildcard port used only for flow mod
66 (delete) and flow stats requests. Selects
67 all flows regardless of output port
68 (including flows with no output port).";
69 value -1; // 0xffffffff
74 typedef port-features {
75 description "Features of ports available in datapath.";
79 description "10 Mb half-duplex rate support.";
83 description "10 Mb full-duplex rate support.";
87 description "100 Mb half-duplex rate support.";
91 description "100 Mb full-duplex rate support.";
95 description "1 Gb half-duplex rate support.";
99 description "1 Gb full-duplex rate support.";
103 description "10 Gb full-duplex rate support.";
107 description "40 Gb full-duplex rate support.";
111 description "100 Gb full-duplex rate support.";
115 description "1 Tb full-duplex rate support.";
119 description "Other rate, not in the list.";
123 description "Copper medium.";
127 description "Fiber medium.";
131 description "Auto-negotiation.";
135 description "Pause.";
139 description "Asymmetric pause.";
144 typedef port-config {
146 "Flags to indicate behavior of the physical port. These flags are
147 describe the current configuration and used port_mod message
148 to configure the port's behavior.";
151 //description " Port is administratively down.";
155 //description " Drop all packets received by port.";
159 //description " Drop packets forwarded to port.";
163 //description "Do not send packet-in msgs for port.";
171 "Current state of the physical port. These are not configurable from
175 //description "No physical link present.";
179 //description "Port is blocked";
183 //description "Live for Fast Failover Group.";
189 identity match-type-base {
191 "The match type indicates the match structure (set of fields that compose the
192 match) in use. The match type is placed in the type field at the beginning
193 of all match structures.Extensions that define match types may be
194 published on the ONF wiki. Support for extensions is optional.";
197 identity standard-match-type {
198 base oft:match-type-base;
201 identity instruction-base {
202 description "Base identity for instruction types";
205 identity action-base {
206 description "Base identity for action types";
209 identity experimenter-meter-band-sub-type {
210 description "The base identity for vendor's meter bands.";
233 typedef experimenter-id {
234 description "This type represents experimenter ID used in experimenter messages.
235 It also represents vendor ID - as it is the same for OF version 1.3+.
236 (VENDOR naming convention has been changed in OF v1.3 specification
244 description "Hello Protocol failed.";
248 description "Request was not understood.";
252 description "Error in action description.";
254 enum BAD_INSTRUCTION {
256 description "Error in instruction list.";
260 description "Error in match.";
262 enum FLOW_MOD_FAILED {
264 description "Problem modifying flow entry.";
266 enum GROUP_MOD_FAILED {
268 description "Problem modifying group entry.";
270 enum PORT_MOD_FAILED {
272 description "Port mod request failed.";
274 enum TABLE_MOD_FAILED {
276 description "Table mod request failed.";
278 enum QUEUE_OP_FAILED {
280 description "Queue operation failed.";
282 enum SWITCH_CONFIG_FAILED {
284 description "Switch config request failed.";
286 enum ROLE_REQUEST_FAILED {
288 description "Controller Role request failed.";
290 enum METER_MOD_FAILED {
292 description "Error in meter.";
294 enum TABLE_FEATURES_FAILED {
296 description "Setting table features failed.";
299 value 65535; //0xffff
300 description "Experimenter error messages.";
305 typedef hello-failed-code {
309 description "Hello Protocol failed.";
313 description "Request was not understood.";
318 typedef bad-request-code {
329 enum BAD_EXPERIMENTER {
344 enum BUFFER_UNKNOWN {
359 enum MULTIPART_BUFFER_OVERFLOW {
365 typedef bad-action-code {
373 enum BAD_EXPERIMENTER {
397 enum MATCH_INCONSISTENT {
400 enum UNSUPPORTED_ORDER {
412 enum BAD_SET_ARGUMENT {
418 typedef bad-instruction-code {
429 enum UNSUP_METADATA {
432 enum UNSUP_METADATA_MASK {
435 enum BAD_EXPERIMENTER {
450 typedef bad-match-code {
461 enum BAD_DL_ADDR_MASK {
464 enum BAD_NW_ADDR_MASK {
491 typedef flow-mod-failed-code {
520 typedef group-mod-failed-code {
528 enum WEIGHT_UNSUPPORTED {
534 enum OUT_OF_BUCKETS {
537 enum CHAINING_UNSUPPORTED {
540 enum WATCH_UNSUPPORTED {
570 typedef port-mod-failed-code {
590 typedef table-mod-failed-code {
604 typedef queue-op-failed-code {
618 typedef switch-config-failed-code {
632 typedef role-request-failed-code {
646 typedef meter-mod-failed-code {
675 enum BAD_BAND_VALUE {
687 typedef table-features-failed-code {
710 typedef hello-element-type {
714 description "Bitmap of version supported.";
719 typedef capabilities {
720 description "Capabilities supported by the datapath.";
722 bit OFPC_FLOW_STATS {
724 /* Flow statistics. */
726 bit OFPC_TABLE_STATS {
728 /* Table statistics. */
730 bit OFPC_PORT_STATS {
732 /* Port statistics. */
734 bit OFPC_GROUP_STATS {
736 /* Group statistics. */
740 /* Can reassemble IP fragments. */
742 bit OFPC_QUEUE_STATS {
744 /* Queue statistics. */
746 bit OFPC_PORT_BLOCKED {
748 /* Switch will block looping ports. */
753 typedef switch-config-flag {
754 description " Handling of IP fragments. ";
758 description "No special handling for fragments.";
760 enum OFPC_FRAG_DROP {
762 description "Drop fragments.";
764 enum OFPC_FRAG_REASM {
766 description "Reassemble (only if OFPC_IP_REASM set).";
768 enum OFPC_FRAG_MASK {
774 typedef flow-removed-reason {
775 description "Why was this flow removed?";
777 enum OFPRR_IDLE_TIMEOUT {
779 description "Flow idle time exceeded idle_timeout.";
781 enum OFPRR_HARD_TIMEOUT {
783 description "Time exceeded hard_timeout.";
787 description "Evicted by a DELETE flow mod.";
789 enum OFPRR_GROUP_DELETE {
791 description "Group was removed.";
796 typedef port-reason {
797 description "What changed about the physical port";
801 description "The port was added.";
805 description "he port was removed.";
809 description "Some attribute of the port has changed.";
814 typedef flow-mod-command {
815 /* ofp_flow_mod_command */
819 description "New flow.";
823 description "Modify all matching flows.";
825 enum OFPFC_MODIFY_STRICT {
827 description "Modify entry strictly matching wildcards and priority.";
831 description "Delete all matching flows.";
833 enum OFPFC_DELETE_STRICT {
835 description "Delete entry strictly matching wildcards and priority.";
840 typedef flow-mod-flags {
841 /* ofp_flow_mod_flags */
843 bit OFPFF_SEND_FLOW_REM {
845 description "Send flow removed message when flow expires or is deleted.";
847 bit OFPFF_CHECK_OVERLAP {
849 description "Check for overlapping entries first.";
851 bit OFPFF_RESET_COUNTS {
853 description "Reset flow packet and byte counts.";
855 bit OFPFF_NO_PKT_COUNTS {
857 description "Don't keep track of packet count.";
859 bit OFPFF_NO_BYT_COUNTS {
861 description "Don't keep track of byte count.";
866 typedef group-mod-command {
867 /* ofp_group_mod_command */
871 description "New group.";
875 description "Modify all matching groups.";
879 description "Delete all matching groups.";
889 description "All (multicast/broadcast) group.";
893 description "Select group.";
895 enum OFPGT_INDIRECT {
897 description "Indirect group.";
901 description "Fast failover group.";
906 typedef table-values {
911 description "Last usable table number.";
915 description "Wildcard table used for table config,
916 flow stats and flow deletes.";
922 /* ofp_group - Group numbering. Groups can use any number up to OFPG_MAX.*/
925 value -256; //0xffffff00
926 description "Last usable group number";
930 value -4; //0xfffffffc
931 description "Represents all groups for group delete commands";
934 value -1; //0xffffffff
935 description "Wildcard group used only for flow stats requests.
936 Selects all flows regardless of group (including flows with no group)";
941 typedef multipart-request-flags {
942 description "enum ofp_multipart_request_flags ";
944 bit OFPMPF_REQ_MORE {
945 description "More requests to follow.";
951 typedef multipart-type {
955 description "Description of this OpenFlow switch.
956 The request body is empty.
957 The reply body is struct ofp_desc.";
961 description "Individual flow statistics.
962 The request body is struct ofp_flow_stats_request.
963 The reply body is an array of struct ofp_flow_stats.";
965 enum OFPMP_AGGREGATE {
967 description "Aggregate flow statistics.
968 The request body is struct ofp_aggregate_stats_request.
969 The reply body is struct ofp_aggregate_stats_reply.";
973 description "Flow table statistics.
974 The request body is empty.
975 The reply body is an array of struct ofp_table_stats.";
977 enum OFPMP_PORT_STATS {
979 description "Port statistics.
980 The request body is struct ofp_port_stats_request.
981 The reply body is an array of struct ofp_port_stats.";
985 description "Queue statistics for a port
986 The request body is struct ofp_queue_stats_request.
987 The reply body is an array of struct ofp_queue_stats";
991 description "Group counter statistics.
992 The request body is struct ofp_group_stats_request.
993 The reply is an array of struct ofp_group_stats.";
995 enum OFPMP_GROUP_DESC {
997 description "Group description.
998 The request body is empty.
999 The reply body is an array of struct ofp_group_desc.";
1001 enum OFPMP_GROUP_FEATURES {
1003 description "Group features.
1004 The request body is empty.
1005 The reply body is struct ofp_group_features.";
1009 description "Meter statistics.
1010 The request body is struct ofp_meter_multipart_requests.
1011 The reply body is an array of struct ofp_meter_stats.";
1013 enum OFPMP_METER_CONFIG {
1015 description "Meter configuration.
1016 The request body is struct ofp_meter_multipart_requests.
1017 The reply body is an array of struct ofp_meter_config.";
1019 enum OFPMP_METER_FEATURES {
1021 description "Meter features.
1022 The request body is empty.
1023 The reply body is struct ofp_meter_features.";
1025 enum OFPMP_TABLE_FEATURES {
1027 description "Table features.
1028 The request body is either empty or contains an array of
1029 struct ofp_table_features containing the controller’s
1030 desired view of the switch. If the switch is unable to
1031 set the specified view an error is returned.
1032 The reply body is an array of struct ofp_table_features.";
1034 enum OFPMP_PORT_DESC {
1036 description "Port description.
1037 The request body is empty.
1038 The reply body is an array of struct ofp_port.";
1040 enum OFPMP_EXPERIMENTER {
1041 value 65535; //0xffff
1042 description "Experimenter extension.
1043 The request and reply bodies begin with
1044 struct ofp_experimenter_multipart_header.
1045 The request and reply bodies are otherwise experimenter-defined.";
1050 typedef queue-properties {
1051 /* ofp_queue_properties */
1055 description "No property defined for queue (default).";
1057 enum OFPQT_MIN_RATE {
1059 description "Minimum datarate guaranteed.";
1061 enum OFPQT_MAX_RATE {
1063 description "Maximum datarate.";
1065 enum OFPQT_EXPERIMENTER {
1066 value 65535; // 0xffff
1067 description "Experimenter defined property.";
1072 typedef controller-role {
1073 /* ofp_controller_role */
1075 enum OFPCR_ROLE_NOCHANGE {
1077 description "Don’t change current role.";
1079 enum OFPCR_ROLE_EQUAL {
1081 description "Default role, full access.";
1083 enum OFPCR_ROLE_MASTER {
1085 description "Full access, at most one master.";
1087 enum OFPCR_ROLE_SLAVE {
1089 description "Read-only access.";
1094 typedef packet-in-reason {
1095 /* ofp_packet_in_reason */
1097 enum OFPR_NO_MATCH {
1099 description "No matching flow (table-miss flow entry). ";
1103 description "Action explicitly output to controller. ";
1105 enum OFPR_INVALID_TTL {
1107 description "Packet has invalid TTL ";
1112 typedef action-type {
1113 /* ofp_action_type */
1117 /* Output to switch port. */
1119 bit OFPAT_COPY_TTL_OUT {
1121 /* Copy TTL "outwards" -- from next-to-outermost to outermost */
1123 bit OFPAT_COPY_TTL_IN {
1125 /* Copy TTL "inwards" -- from outermost to next-to-outermost */
1127 bit OFPAT_SET_MPLS_TTL {
1131 bit OFPAT_DEC_MPLS_TTL {
1133 /* Decrement MPLS TTL */
1135 bit OFPAT_PUSH_VLAN {
1137 /* Push a new VLAN tag */
1139 bit OFPAT_POP_VLAN {
1141 /* Pop the outer VLAN tag */
1143 bit OFPAT_PUSH_MPLS {
1145 /* Push a new MPLS tag */
1147 bit OFPAT_POP_MPLS {
1149 /* Pop the outer MPLS tag */
1151 bit OFPAT_SET_QUEUE {
1153 /* Set queue id when outputting to a port */
1159 bit OFPAT_SET_NW_TTL {
1163 bit OFPAT_DEC_NW_TTL {
1165 /* Decrement IP TTL. */
1167 bit OFPAT_SET_FIELD {
1169 /* Set a header field using OXM TLV format. */
1171 bit OFPAT_PUSH_PBB {
1173 /* Push a new PBB service tag (I-TAG) */
1177 /* Pop the outer PBB service tag (I-TAG) */
1179 bit OFPAT_EXPERIMENTER {
1185 typedef meter-mod-command {
1186 /* ofp_meter_mod_command */
1189 description "New meter. ";
1192 description "Modify specified meter. ";
1195 description "Delete specified meter. ";
1200 typedef meter-flags {
1201 /* ofp_meter_flags */
1205 /* Rate value in kb/s (kilo-bit per second). */
1209 /* Rate value in packet/sec. */
1213 /* Do burst size. */
1217 /* Collect statistics. */
1222 typedef meter-band-type {
1223 /* ofp_meter_band_type */
1227 description "Drop packet. ";
1229 enum OFPMBT_DSCP_REMARK {
1231 description "Remark DSCP in the IP header. ";
1233 enum OFPMBT_EXPERIMENTER {
1234 value 65535; //0xFFFF
1235 description "Experimenter meter band. ";
1240 typedef meter-band-type-bitmap {
1241 /* ofp_meter_band_type */
1245 description "Drop packet. ";
1247 bit OFPMBT_DSCP_REMARK {
1249 description "Remark DSCP in the IP header. ";
1255 description "Meter numbering. Flow meters can use any number up to OFPM_MAX";
1258 value -65536; //0xffff0000
1259 description "Last usable meter number";
1261 /* Virtual meters. */
1262 enum OFPM_SLOWPATH {
1263 value -3; //0xfffffffd
1264 description "Meter for slow datapath";
1266 enum OFPM_CONTROLLER {
1267 value -2; //0xfffffffe
1268 description "Meter for controller connection";
1271 value -1; //0xffffffff
1272 description "Represents all meters for stat requests commands";
1277 typedef table-config {
1278 /* ofp_table_config */
1280 bit OFPTC_DEPRECATED_MASK {
1281 /* Deprecated bits */
1287 typedef table-features-prop-type {
1289 enum OFPTFPT_INSTRUCTIONS {
1291 description "Instructions property.";
1293 enum OFPTFPT_INSTRUCTIONS_MISS {
1295 description "Instructions for table-miss.";
1297 enum OFPTFPT_NEXT_TABLES {
1299 description "Next Table property.";
1301 enum OFPTFPT_NEXT_TABLES_MISS {
1303 description "Next Table for table-miss.";
1305 enum OFPTFPT_WRITE_ACTIONS {
1307 description "Write Actions property.";
1309 enum OFPTFPT_WRITE_ACTIONS_MISS {
1311 description "Write Actions for table-miss.";
1313 enum OFPTFPT_APPLY_ACTIONS {
1315 description "Apply Actions property.";
1317 enum OFPTFPT_APPLY_ACTIONS_MISS {
1319 description "Apply Actions for table-miss.";
1321 enum OFPTFPT_MATCH {
1323 description "Match property.";
1325 enum OFPTFPT_WILDCARDS {
1327 description "Wildcards property.";
1329 enum OFPTFPT_WRITE_SETFIELD {
1331 description "Write Set-Field property.";
1333 enum OFPTFPT_WRITE_SETFIELD_MISS {
1335 description "Write Set-Field for table-miss.";
1337 enum OFPTFPT_APPLY_SETFIELD {
1339 description "Apply Set-Field property.";
1341 enum OFPTFPT_APPLY_SETFIELD_MISS {
1343 description "Apply Set-Field for table-miss.";
1345 enum OFPTFPT_EXPERIMENTER {
1347 description "Experimenter property.";
1349 enum OFPTFPT_EXPERIMENTER_MISS {
1350 value 65535; //0xffff
1351 description "Experimenter for table-miss.";
1356 typedef group-types {
1357 /* ofp_group_type */
1360 description "All (multicast/broadcast) group.";
1364 description "Select group.";
1367 bit OFPGT_INDIRECT {
1368 description "Indirect group.";
1372 description "Fast failover group.";
1378 typedef group-capabilities {
1379 /* ofp_group_capabilities */
1381 bit OFPGFC_SELECT_WEIGHT {
1382 description "Support weight for select groups";
1385 bit OFPGFC_SELECT_LIVENESS {
1386 description "Support liveness for select groups";
1389 bit OFPGFC_CHAINING {
1390 description "Support chaining group";
1393 bit OFPGFC_CHAINING_CHECKS {
1394 description "Check chaining for loops and delete";
1400 typedef ipv6-exthdr-flags {
1401 description "Bit definitions for IPv6 Extension Header pseudo-field.";
1404 description "<No next header> encountered.";
1408 description "Encrypted Sec Payload header present.";
1412 description "Authentication header present.";
1416 description "1 or 2 dest headers present.";
1420 description "Fragment header present.";
1424 description "Router header present.";
1428 description "Hop-by-hop header present.";
1432 description "Unexpected repeats encountered.";
1436 description "Unexpected sequencing encountered.";
1442 // OPENFLOW v1.0 STRUCTURES
1443 // Structures under this line are needed to support OpenFlow version 1.0
1444 // wire protocol 0x01;
1446 typedef error-type-v10 {
1450 description "Hello Protocol failed.";
1454 description "Request was not understood.";
1458 description "Error in action description.";
1460 enum FLOW_MOD_FAILED {
1462 description "Problem modifying flow entry.";
1464 enum PORT_MOD_FAILED {
1466 description "Port mod request failed.";
1468 enum QUEUE_OP_FAILED {
1470 description "Queue operation failed.";
1475 typedef hello-failed-code-v10 {
1479 description "Hello Protocol failed.";
1483 description "Request was not understood.";
1488 typedef bad-request-code-v10 {
1514 enum BUFFER_UNKNOWN {
1520 typedef bad-action-code-v10 {
1531 enum BAD_VENDOR_TYPE {
1552 typedef flow-mod-failed-code-v10 {
1554 enum ALL_TABLES_FULL {
1563 enum BAD_EMERG_TIMEOUT {
1575 typedef port-mod-failed-code-v10 {
1586 typedef queue-op-failed-code-v10 {
1600 typedef port-number-values-v10 {
1601 description "Port numbering. Physical ports are numbered starting from 1.";
1604 value 65280; // 0xff00
1607 description "Send the packet out the input port. This
1608 virtual port must be explicitly used
1609 in order to send back out of the input
1611 value 65528; // 0xfff8
1614 description "Perform actions in flow table.
1615 NB: This can only be the destination
1616 port for packet-out messages.";
1617 value 65529; // 0xfff9
1620 description "Process with normal L2/L3 switching.";
1621 value 65530; // 0xfffa
1624 description "All physical ports except input port and
1625 those disabled by STP.";
1626 value 65531; // 0xfffb
1629 description "All physical ports except input port.";
1630 value 65532; // 0xfffc
1633 description "Send to controller.";
1634 value 65533; // 0xfffd
1637 description "Local openflow \"port\".";
1638 value 65534; // 0xfffe
1641 description "Not associated with a physical port.";
1642 value 65535; // 0xffff
1647 typedef port-config-v10 {
1649 "Flags to indicate behavior of the physical port. These flags are
1650 describe the current configuration and used port_mod message
1651 to configure the port's behavior.";
1654 description " Port is administratively down.";
1658 description "Disable 802.1D spanning tree on port.";
1662 description " Drop all packets received by port.";
1666 description " Drop received 802.1D STP packets.";
1670 description " Do not include this port when flooding.";
1674 description " Drop packets forwarded to port.";
1678 description "Do not send packet-in msgs for port.";
1684 typedef port-state-v10 {
1685 description "Current state of the physical port. These are not configurable from
1689 description "No physical link present.";
1693 description "Port is blocked";
1697 description "Live for Fast Failover Group.";
1701 description "Not learning or relaying frames.";
1704 description "Learning but not relaying frames.";
1707 description "Learning and relaying frames.";
1710 description "Not part of spanning tree.";
1713 description "Bit mask for OFPPS_STP_* values.";
1718 typedef port-features-v10 {
1719 description "Features of ports available in datapath.";
1720 reference "ofp_port_features";
1724 description "10 Mb half-duplex rate support.";
1728 description "10 Mb full-duplex rate support.";
1732 description "100 Mb half-duplex rate support.";
1736 description "100 Mb full-duplex rate support.";
1740 description "1 Gb half-duplex rate support.";
1744 description "1 Gb full-duplex rate support.";
1748 description "10 Gb full-duplex rate support.";
1752 description "Copper medium.";
1756 description "Fiber medium.";
1760 description "Auto-negotiation.";
1764 description "Pause.";
1768 description "Asymmetric pause.";
1773 typedef capabilities-v10 {
1775 bit OFPC_FLOW_STATS {
1777 description "Flow statistics.";
1779 bit OFPC_TABLE_STATS {
1781 description "Table statistics.";
1783 bit OFPC_PORT_STATS {
1785 description "Port statistics.";
1789 description "802.1d spanning tree.";
1793 description "Reserved, must be zero.";
1797 description "Can reassemble IP fragments.";
1799 bit OFPC_QUEUE_STATS {
1801 description "Queue statistics.";
1803 bit OFPC_ARP_MATCH_IP {
1805 description "Match IP addresses in ARP pkts.";
1810 typedef flow-mod-flags-v10 {
1811 /* ofp_flow_mod_flags */
1813 bit OFPFF_SEND_FLOW_REM {
1815 description "Send flow removed message when flow expires or is deleted.";
1817 bit OFPFF_CHECK_OVERLAP {
1819 description "Check for overlapping entries first.";
1823 description "Reset flow packet and byte counts.";
1828 typedef action-type-v10 {
1829 /* ofp_action_type */
1833 description "Output to switch port.";
1835 bit OFPAT_SET_VLAN_VID {
1837 description "Set the 802.1q VLAN id.";
1839 bit OFPAT_SET_VLAN_PCP {
1841 description "Set the 802.1q priority.";
1843 bit OFPAT_STRIP_VLAN {
1845 description "Strip the 802.1q header.";
1847 bit OFPAT_SET_DL_SRC {
1849 description "Ethernet source address.";
1851 bit OFPAT_SET_DL_DST {
1853 description "Ethernet destination address.";
1855 bit OFPAT_SET_NW_SRC {
1857 description "IP source address.";
1859 bit OFPAT_SET_NW_DST {
1861 description "IP destination address.";
1863 bit OFPAT_SET_NW_TOS {
1865 description "IP ToS (DSCP field, 6 bits).";
1867 bit OFPAT_SET_TP_SRC {
1869 description "TCP/UDP source port.";
1871 bit OFPAT_SET_TP_DST {
1873 description "TCP/UDP destination port.";
1877 description "Output to queue.";
1881 description "Experimenter in later versions.";
1886 typedef flow-wildcards-v10 {
1887 /* ofp_flow_wildcards */
1888 description "Flow wildcards - NW_SRC_MASK & NW_DST_MASK are handled separately";
1891 description "Switch input port.";
1895 description "VLAN id.";
1899 description "Ethernet source address.";
1903 description "Ethernet destination address.";
1907 description "Ethernet frame type.";
1911 description "IP protocol.";
1915 description "TCP/UDP source port.";
1919 description "TCP/UDP destination port.";
1923 description "VLAN priority.";
1927 description "IP ToS (DSCP field, 6 bits).";