/* * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved. * * This program and the accompanying materials are made available under the * 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-action { namespace "urn:opendaylight:openflow:common:action"; prefix "ofaction"; import ietf-inet-types {prefix inet;} import ietf-yang-types {prefix yang;} import openflow-types { prefix oft; } import openflow-extensible-match { prefix oxm;} revision "2015-02-03" { description "#NOT_PUBLISHED# OpenFlow 1.3 - action model"; } identity experimenter-action-sub-type { description "The base identity for vendor's actions."; } container action-container { uses action-grouping; } grouping actions-grouping { list action { uses action-grouping; leaf experimenter-id { type oft:experimenter-id; } } } grouping action-grouping { choice action-choice { case output-action-case { container output-action { leaf port { type oft:port-number; } leaf max-length { type uint16; } } } case copy-ttl-out-case { // empty action } case copy-ttl-in-case { // empty action } case set-mpls-ttl-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case dec-mpls-ttl-case { // empty action } case push-vlan-case { container push-vlan-action { leaf ethertype { type oft:ether-type; } } } case pop-vlan-case { // empty action } case push-mpls-case { container push-mpls-action { leaf ethertype { type oft:ether-type; } } } case pop-mpls-case { container pop-mpls-action { leaf ethertype { type oft:ether-type; } } } case set-queue-case { container set-queue-action { leaf queue-id { type uint32; } } } case group-case { container group-action { leaf group-id { type uint32; } } } case set-nw-ttl-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case dec-nw-ttl-case { // empty action } case set-field-case { container set-field-action { uses oxm:match-entries-grouping; } } case push-pbb-case { container push-pbb-action { leaf ethertype { type oft:ether-type; } } } case pop-pbb-case { // empty action } // OF1.0 structures case set-vlan-vid-case { container set-vlan-vid-action { leaf vlan-vid { type uint16; } } } case set-vlan-pcp-case { container set-vlan-pcp-action { leaf vlan-pcp { type uint8; } } } case strip-vlan-case { // empty action } case set-dl-src-case { container set-dl-src-action { leaf dl-src-address { type yang:mac-address; } } } case set-dl-dst-case { container set-dl-dst-action { leaf dl-dst-address { type yang:mac-address; } } } case set-nw-src-case { container set-nw-src-action { leaf ip-address { type inet:ipv4-address; } } } case set-nw-dst-case { container set-nw-dst-action { leaf ip-address { type inet:ipv4-address; } } } case set-nw-tos-case { container set-nw-tos-action { leaf nw-tos { type uint8; } } } case set-tp-src-case { container set-tp-src-action { leaf port { type oft:port-number; } } } case set-tp-dst-case { container set-tp-dst-action { leaf port { type oft:port-number; } } } case enqueue-case { container enqueue-action { leaf port { type oft:port-number; } leaf queue-id { type oft:queue-id; } } } } } }