X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflow-protocol-api%2Fsrc%2Fmain%2Fyang%2Fopenflow-instruction.yang;h=b9e515b3a2c66369d29e67922c320e1d717f455b;hb=1bab57414997362845756a427c5306076cdaf96c;hp=8f3a0434bbe80d7fb62430db90b5d1c30d26a6b4;hpb=5c20b51f4fd5f510f9bf81442b79f5283bcb7879;p=openflowjava.git diff --git a/openflow-protocol-api/src/main/yang/openflow-instruction.yang b/openflow-protocol-api/src/main/yang/openflow-instruction.yang index 8f3a0434..b9e515b3 100644 --- a/openflow-protocol-api/src/main/yang/openflow-instruction.yang +++ b/openflow-protocol-api/src/main/yang/openflow-instruction.yang @@ -5,59 +5,71 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - + module openflow-instruction { namespace "urn:opendaylight:openflow:common:instruction"; prefix "ofinstruction"; import openflow-types { prefix oft; } + import openflow-action {prefix ofaction;} revision "2013-07-31" { - // description "OpenFlow 1.3 - instruction model"; + description "#NOT_PUBLISHED# OpenFlow 1.3 - instruction model"; } - identity goto_table { - //description " Setup the next table in the lookup pipeline"; - base oft:instruction; - } - identity write_metadata { - //description " Setup the metadata field for use later in pipeline"; - base oft:instruction; - } - identity write_actions { - description " Write the action(s) onto the datapath action set"; - base oft:instruction; - } - identity apply_actions { - description " Applies the action(s) immediately"; - base oft:instruction; - } - identity clear_actions { - description " Clears all actions from the datapath action set"; - base oft:instruction; - } - identity meter { - description " Apply meter (rate limiter)"; - base oft:instruction; - } - identity experimenter { - description "Experimenter instruction"; - base oft:instruction; + container instruction-container { + uses instruction-grouping; } - container instruction-container { - uses instructions; + grouping instructions-grouping { + list instruction { + config false; + uses instruction-grouping; + leaf experimenter-id { + type oft:experimenter-id; + } + } } - grouping instructions { - list instructions { - key "type"; - leaf type { - type identityref { - base oft:instruction; + grouping instruction-grouping { + choice instruction-choice { + case goto-table-case { + container goto-table { + leaf table-id { + type uint8; + } + } + } + case write-metadata-case { + container write-metadata { + leaf metadata { + type binary; + } + leaf metadata-mask { + type binary; + } + } + } + case write-actions-case { + container write-actions { + uses ofaction:actions-grouping; + } + } + case apply-actions-case { + container apply-actions { + uses ofaction:actions-grouping; + } + } + case clear-actions-case { + // empty instruction + } + case meter-case { + container meter { + leaf meter-id { + type uint32; + } } } } } - } \ No newline at end of file