public interface OpendaylightDirectStatisticsService
extends org.opendaylight.yangtools.yang.binding.RpcService
rpc get-node-connector-statistics { "Get statistics for given node connector from the node"; input { leaf store-stats { type store-stats; } leaf node { type node-ref; } leaf node-connector-id { type node-connector-id; } } output { list node-connector-statistics-and-port-number-map { key "node-connector-id" leaf node-connector-id { type node-connector-id; } container packets { leaf received { type uint64; } leaf transmitted { type uint64; } } container bytes { leaf received { type uint64; } leaf transmitted { type uint64; } } leaf receive-drops { type uint64; } leaf transmit-drops { type uint64; } leaf receive-errors { type uint64; } leaf transmit-errors { type uint64; } leaf receive-frame-error { type uint64; } leaf receive-over-run-error { type uint64; } leaf receive-crc-error { type uint64; } leaf collision-count { type uint64; } container duration { leaf second { type counter32; } leaf nanosecond { type counter32; } } uses node-connector-statistics; } } } rpc get-queue-statistics { "Get statistics for given queues from given port of the node"; input { leaf store-stats { type store-stats; } leaf node { type node-ref; } leaf node-connector-id { type node-connector-id; } leaf queue-id { type queue-id; } } output { list queue-id-and-statistics-map { key "queue-id" "node-connector-id" leaf queue-id { type queue-id; } leaf node-connector-id { type node-connector-id; } leaf transmitted-bytes { type counter64; } leaf transmitted-packets { type counter64; } leaf transmission-errors { type counter64; } container duration { leaf second { type counter32; } leaf nanosecond { type counter32; } } uses generic-queue-statistics; } } } rpc get-group-statistics { "Get statistics for given group"; input { leaf store-stats { type store-stats; } leaf node { type node-ref; } leaf group-id { type group-id; } } output { list group-stats { key "group-id" leaf group-id { type group-id; } leaf ref-count { type counter32; } leaf packet-count { type counter64; } leaf byte-count { type counter64; } container duration { leaf second { type counter32; } leaf nanosecond { type counter32; } } container buckets { list bucket-counter { key "bucket-id" leaf bucket-id { type bucket-id; } leaf packet-count { type counter64; } leaf byte-count { type counter64; } } } uses group-statistics; } } } rpc get-flow-statistics { "Get statistics for given flow"; input { leaf store-stats { type store-stats; } leaf node { type node-ref; } container match { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } container instructions { list instruction { key "order" leaf order { type int32; } choice instruction { case apply-actions-case { container apply-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case clear-actions-case { container clear-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case go-to-table-case { container go-to-table { leaf table_id { type uint8; } } } case meter-case { container meter { leaf meter-id { type meter-id; } } } case write-actions-case { container write-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case write-metadata-case { container write-metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } } } } uses instruction; uses ordered; } uses instruction-list; } leaf container-name { type string; } leaf cookie_mask { type flow-cookie; } leaf buffer_id { type uint32; } leaf out_port { type uint64; } leaf out_group { type uint32; } leaf flags { type flow-mod-flags; } leaf flow-name { type string; } leaf installHw { type boolean; } leaf barrier { type boolean; } leaf strict { type strict; } leaf priority { type uint16; } leaf idle-timeout { type uint16; } leaf hard-timeout { type uint16; } leaf cookie { type flow-cookie; } leaf table_id { type uint8; } } output { list flow-and-statistics-map-list { key "flow-id" leaf flow-id { type flow-id; } leaf packet-count { type counter64; } leaf byte-count { type counter64; } container duration { leaf second { type counter32; } leaf nanosecond { type counter32; } } container match { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } container instructions { list instruction { key "order" leaf order { type int32; } choice instruction { case apply-actions-case { container apply-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case clear-actions-case { container clear-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case go-to-table-case { container go-to-table { leaf table_id { type uint8; } } } case meter-case { container meter { leaf meter-id { type meter-id; } } } case write-actions-case { container write-actions { list action { key "order" leaf order { type int32; } choice action { case controller-action-case { container controller-action { leaf max-length { type uint16; } } } case copy-ttl-in-case { container copy-ttl-in { } } case copy-ttl-out-case { container copy-ttl-out { } } case dec-mpls-ttl-case { container dec-mpls-ttl { } } case dec-nw-ttl-case { container dec-nw-ttl { } } case drop-action-case { container drop-action { } } case flood-action-case { container flood-action { } } case flood-all-action-case { container flood-all-action { } } case group-action-case { container group-action { leaf group { type string; } leaf group-id { type uint32; } } } case hw-path-action-case { container hw-path-action { } } case loopback-action-case { container loopback-action { } } case output-action-case { container output-action { leaf output-node-connector { type uri; } leaf max-length { type uint16; } } } case pop-mpls-action-case { container pop-mpls-action { leaf ethernet-type { type uint16; } } } case pop-pbb-action-case { container pop-pbb-action { } } case pop-vlan-action-case { container pop-vlan-action { } } case push-mpls-action-case { container push-mpls-action { leaf ethernet-type { type uint16; } } } case push-pbb-action-case { container push-pbb-action { leaf ethernet-type { type uint16; } } } case push-vlan-action-case { container push-vlan-action { leaf ethernet-type { type uint16; } leaf tag { type int32; } leaf pcp { type int32; } leaf cfi { type vlan-cfi; } leaf vlan-id { type vlan-id; } } } case set-dl-dst-action-case { container set-dl-dst-action { leaf address { type mac-address; } } } case set-dl-src-action-case { container set-dl-src-action { leaf address { type mac-address; } } } case set-dl-type-action-case { container set-dl-type-action { leaf dl-type { type ether-type; } } } case set-field-case { container set-field { leaf in-port { type node-connector-id; } leaf in-phy-port { type node-connector-id; } container metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } uses of-metadata; } container tunnel { leaf tunnel-id { type uint64; } leaf tunnel-mask { type uint64; } } container ethernet-match { container ethernet-source { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-destination { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container ethernet-type { leaf type { type ether-type; } } uses ethernet-match-fields; } container vlan-match { container vlan-id { leaf vlan-id-present { type boolean; } leaf vlan-id { type vlan-id; } } leaf vlan-pcp { type vlan-pcp; } uses vlan-match-fields; } container ip-match { leaf ip-protocol { type uint8; } leaf ip-dscp { type dscp; } leaf ip-ecn { type uint8; } leaf ip-proto { type ip-version; } uses ip-match-fields; } choice layer-3-match { case arp-match { leaf arp-op { type uint16; } leaf arp-source-transport-address { type ipv4-prefix; } leaf arp-target-transport-address { type ipv4-prefix; } container arp-source-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } container arp-target-hardware-address { leaf address { type mac-address; } leaf mask { type mac-address; } uses mac-address-filter; } } case ipv4-match { leaf ipv4-source { type ipv4-prefix; } leaf ipv4-destination { type ipv4-prefix; } } case ipv4-match-arbitrary-bit-mask { leaf ipv4-source-address-no-mask { type ipv4-address; } leaf ipv4-destination-address-no-mask { type ipv4-address; } leaf ipv4-source-arbitrary-bitmask { type dotted-quad; } leaf ipv4-destination-arbitrary-bitmask { type dotted-quad; } } case ipv6-match { leaf ipv6-source { type ipv6-prefix; } leaf ipv6-destination { type ipv6-prefix; } leaf ipv6-nd-target { type ipv6-address; } container ipv6-label { leaf ipv6-flabel { type ipv6-flow-label; } leaf flabel-mask { type ipv6-flow-label; } } leaf ipv6-nd-sll { type mac-address; } leaf ipv6-nd-tll { type mac-address; } container ipv6-ext-header { leaf ipv6-exthdr { type uint16; } leaf ipv6-exthdr-mask { type uint16; } } } case ipv6-match-arbitrary-bit-mask { leaf ipv6-source-address-no-mask { type ipv6-address; } leaf ipv6-source-arbitrary-bitmask { type ipv6-arbitrary-mask; } leaf ipv6-destination-address-no-mask { type ipv6-address; } leaf ipv6-destination-arbitrary-bitmask { type ipv6-arbitrary-mask; } } case tunnel-ipv4-match { leaf tunnel-ipv4-source { type ipv4-prefix; } leaf tunnel-ipv4-destination { type ipv4-prefix; } } } choice layer-4-match { case sctp-match { leaf sctp-source-port { type port-number; } leaf sctp-destination-port { type port-number; } } case tcp-match { leaf tcp-source-port { type port-number; } leaf tcp-destination-port { type port-number; } } case udp-match { leaf udp-source-port { type port-number; } leaf udp-destination-port { type port-number; } } } container icmpv4-match { leaf icmpv4-type { type uint8; } leaf icmpv4-code { type uint8; } uses icmpv4-match-fields; } container icmpv6-match { leaf icmpv6-type { type uint8; } leaf icmpv6-code { type uint8; } uses icmpv6-match-fields; } container protocol-match-fields { leaf mpls-label { type uint32; } leaf mpls-tc { type uint8; } leaf mpls-bos { type uint8; } container pbb { leaf pbb-isid { type uint32; } leaf pbb-mask { type uint32; } } uses protocol-match-fields; } container tcp-flags-match { leaf tcp-flags { type uint16; } leaf tcp-flags-mask { type uint16; } uses tcp-flags-match-fields; } uses match; } } case set-mpls-ttl-action-case { container set-mpls-ttl-action { leaf mpls-ttl { type uint8; } } } case set-next-hop-action-case { container set-next-hop-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-dst-action-case { container set-nw-dst-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-src-action-case { container set-nw-src-action { choice address { case ipv4 { leaf ipv4-address { type ipv4-prefix; } } case ipv6 { leaf ipv6-address { type ipv6-prefix; } } } uses address; } } case set-nw-tos-action-case { container set-nw-tos-action { leaf tos { type int32; } } } case set-nw-ttl-action-case { container set-nw-ttl-action { leaf nw-ttl { type uint8; } } } case set-queue-action-case { container set-queue-action { leaf queue { type string; } leaf queue-id { type uint32; } } } case set-tp-dst-action-case { container set-tp-dst-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-tp-src-action-case { container set-tp-src-action { leaf port { type port-number; } leaf ip-protocol { type ip-protocol; } } } case set-vlan-cfi-action-case { container set-vlan-cfi-action { leaf vlan-cfi { type vlan-cfi; } } } case set-vlan-id-action-case { container set-vlan-id-action { leaf vlan-id { type vlan-id; } } } case set-vlan-pcp-action-case { container set-vlan-pcp-action { leaf vlan-pcp { type vlan-pcp; } } } case strip-vlan-action-case { container strip-vlan-action { } } case sw-path-action-case { container sw-path-action { } } } uses action; uses ordered; } uses action-list; } } case write-metadata-case { container write-metadata { leaf metadata { type uint64; } leaf metadata-mask { type uint64; } } } } uses instruction; uses ordered; } uses instruction-list; } leaf container-name { type string; } leaf cookie_mask { type flow-cookie; } leaf buffer_id { type uint32; } leaf out_port { type uint64; } leaf out_group { type uint32; } leaf flags { type flow-mod-flags; } leaf flow-name { type string; } leaf installHw { type boolean; } leaf barrier { type boolean; } leaf strict { type strict; } leaf priority { type uint16; } leaf idle-timeout { type uint16; } leaf hard-timeout { type uint16; } leaf cookie { type flow-cookie; } leaf table_id { type uint8; } uses flow-and-statistics-map; } } } rpc get-meter-statistics { "Get statistics for given meter"; input { leaf store-stats { type store-stats; } leaf node { type node-ref; } leaf meter-id { type meter-id; } } output { list meter-stats { key "meter-id" leaf meter-id { type meter-id; } leaf flow-count { type counter32; } leaf packet-in-count { type counter64; } leaf byte-in-count { type counter64; } container duration { leaf second { type counter32; } leaf nanosecond { type counter32; } } container meter-band-stats { list band-stat { key "band-id" leaf band-id { type band-id; } leaf packet-band-count { type counter64; } leaf byte-band-count { type counter64; } } } uses meter-statistics; } } }
Modifier and Type | Method and Description |
---|---|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetFlowStatisticsOutput>> |
getFlowStatistics(GetFlowStatisticsInput input)
Get statistics for given flow
|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetGroupStatisticsOutput>> |
getGroupStatistics(GetGroupStatisticsInput input)
Get statistics for given group
|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetMeterStatisticsOutput>> |
getMeterStatistics(GetMeterStatisticsInput input)
Get statistics for given meter
|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetNodeConnectorStatisticsOutput>> |
getNodeConnectorStatistics(GetNodeConnectorStatisticsInput input)
Get statistics for given node connector from the node
|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetQueueStatisticsOutput>> |
getQueueStatistics(GetQueueStatisticsInput input)
Get statistics for given queues from given port of the node
|
Future<org.opendaylight.yangtools.yang.common.RpcResult<GetNodeConnectorStatisticsOutput>> getNodeConnectorStatistics(GetNodeConnectorStatisticsInput input)
java.util.concurrent.Future
nodeConnectorStatistics
, or null
if not presentFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetQueueStatisticsOutput>> getQueueStatistics(GetQueueStatisticsInput input)
java.util.concurrent.Future
queueStatistics
, or null
if not presentFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input)
java.util.concurrent.Future
groupStatistics
, or null
if not presentFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetFlowStatisticsOutput>> getFlowStatistics(GetFlowStatisticsInput input)
java.util.concurrent.Future
flowStatistics
, or null
if not presentFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input)
java.util.concurrent.Future
meterStatistics
, or null
if not presentCopyright © 2018 OpenDaylight. All rights reserved.