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=671556e104bc83a4e2503d31a2e4c3f62391049f;hpb=07de1ed897da9d7dc70c6d550f38c59339ed751e;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 671556e1..b9e515b3 100644 --- a/openflow-protocol-api/src/main/yang/openflow-instruction.yang +++ b/openflow-protocol-api/src/main/yang/openflow-instruction.yang @@ -11,53 +11,65 @@ prefix "ofinstruction"; import openflow-types { prefix oft; } + import openflow-action {prefix ofaction;} revision "2013-07-31" { - description "OpenFlow 1.3 - instruction model"; - } - - identity goto_table { - description " Setup the next table in the lookup pipeline"; - base oft:instruction-base; - } - identity write_metadata { - description " Setup the metadata field for use later in pipeline"; - base oft:instruction-base; - } - identity write_actions { - description " Write the action(s) onto the datapath action set"; - base oft:instruction-base; - } - identity apply_actions { - description " Applies the action(s) immediately"; - base oft:instruction-base; - } - identity clear_actions { - description " Clears all actions from the datapath action set"; - base oft:instruction-base; - } - identity meter { - description " Apply meter (rate limiter)"; - base oft:instruction-base; - } - identity experimenter { - description "Experimenter instruction"; - base oft:instruction-base; + description "#NOT_PUBLISHED# OpenFlow 1.3 - instruction model"; } container instruction-container { - uses instructions-grouping; + uses instruction-grouping; } grouping instructions-grouping { list instruction { config false; - leaf type { - type identityref { - base oft:instruction-base; - } + uses instruction-grouping; + leaf experimenter-id { + type oft:experimenter-id; } } } + 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