Interface OpendaylightMatchTypesData

  • All Superinterfaces:
    org.opendaylight.yangtools.yang.binding.DataRoot

    @Generated("mdsal-binding-generator")
    public interface OpendaylightMatchTypesData
    extends org.opendaylight.yangtools.yang.binding.DataRoot

    This class represents the following YANG schema fragment defined in module opendaylight-match-types

     module opendaylight-match-types {
       namespace urn:opendaylight:model:match:types;
       prefix match;
       import ietf-inet-types {
         prefix inet;
         revision-date 2013-07-15;
       }
       import ietf-yang-types {
         prefix yang;
         revision-date 2013-07-15;
       }
       import opendaylight-l2-types {
         prefix l2t;
         revision-date 2013-08-27;
       }
       import opendaylight-inventory {
         prefix inv;
         revision-date 2013-08-19;
       }
       import opendaylight-arbitrary-bitmask-fields {
         prefix mask;
         revision-date 2016-01-30;
       }
       import opendaylight-ipv6-arbitrary-bitmask-fields {
         prefix ipv6-arbitrary-mask;
         revision-date 2016-02-24;
       }
       revision 2013-10-26 {
       }
       grouping mac-address-filter {
         leaf address {
           type yang:mac-address;
         }
         leaf mask {
           type yang:mac-address;
         }
       }
       grouping of-metadata {
         leaf metadata {
           type uint64;
         }
         leaf metadata-mask {
           type uint64;
         }
       }
       grouping packet-type-fields {
         leaf packet-type {
           type uint32;
         }
       }
       grouping ethernet-match-fields {
         container ethernet-source {
           presence "Match field is active and set";
           uses mac-address-filter;
         }
         container ethernet-destination {
           presence "Match field is active and set";
           uses mac-address-filter;
         }
         container ethernet-type {
           presence "Match field is active and set";
           leaf type {
             type l2t:ether-type;
           }
         }
       }
       grouping vlan-match-fields {
         container vlan-id {
           presence "Match field is active and set";
           leaf vlan-id-present {
             type boolean;
           }
           leaf vlan-id {
             type l2t:vlan-id;
           }
         }
         leaf vlan-pcp {
           type l2t:vlan-pcp;
         }
       }
       grouping ip-match-fields {
         leaf ip-protocol {
           type uint8;
         }
         leaf ip-dscp {
           type inet:dscp;
         }
         leaf ip-ecn {
           type uint8;
         }
         leaf ip-proto {
           type inet:ip-version;
         }
       }
       grouping ipv4-match-fields {
         leaf ipv4-source {
           type inet:ipv4-prefix;
         }
         leaf ipv4-destination {
           type inet:ipv4-prefix;
         }
       }
       grouping ipv6-match-fields {
         leaf ipv6-source {
           type inet:ipv6-prefix;
         }
         leaf ipv6-destination {
           type inet:ipv6-prefix;
         }
         leaf ipv6-nd-target {
           type inet:ipv6-address;
         }
         container ipv6-label {
           leaf ipv6-flabel {
             type inet:ipv6-flow-label;
           }
           leaf flabel-mask {
             type inet:ipv6-flow-label;
           }
         }
         leaf ipv6-nd-sll {
           type yang:mac-address;
         }
         leaf ipv6-nd-tll {
           type yang:mac-address;
         }
         container ipv6-ext-header {
           leaf ipv6-exthdr {
             type uint16;
           }
           leaf ipv6-exthdr-mask {
             type uint16 {
               range 0..512;
             }
           }
         }
       }
       grouping udp-match-fields {
         leaf udp-source-port {
           type inet:port-number;
         }
         leaf udp-source-port-mask {
           type inet:port-number;
         }
         leaf udp-destination-port {
           type inet:port-number;
         }
         leaf udp-destination-port-mask {
           type inet:port-number;
         }
       }
       grouping 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 {
               range 0..16777216;
             }
           }
         }
       }
       grouping tcp-match-fields {
         leaf tcp-source-port {
           type inet:port-number;
         }
         leaf tcp-source-port-mask {
           type inet:port-number;
         }
         leaf tcp-destination-port {
           type inet:port-number;
         }
         leaf tcp-destination-port-mask {
           type inet:port-number;
         }
       }
       grouping sctp-match-fields {
         leaf sctp-source-port {
           type inet:port-number;
         }
         leaf sctp-destination-port {
           type inet:port-number;
         }
       }
       grouping icmpv4-match-fields {
         leaf icmpv4-type {
           type uint8;
         }
         leaf icmpv4-code {
           type uint8;
         }
       }
       grouping icmpv6-match-fields {
         leaf icmpv6-type {
           type uint8;
         }
         leaf icmpv6-code {
           type uint8;
         }
       }
       grouping arp-match-fields {
         leaf arp-op {
           type uint16;
         }
         leaf arp-source-transport-address {
           type inet:ipv4-prefix;
         }
         leaf arp-target-transport-address {
           type inet:ipv4-prefix;
         }
         container arp-source-hardware-address {
           presence "Match field is active and set";
           uses mac-address-filter;
         }
         container arp-target-hardware-address {
           presence "Match field is active and set";
           uses mac-address-filter;
         }
       }
       grouping tcp-flags-match-fields {
         leaf tcp-flags {
           type uint16;
         }
         leaf tcp-flags-mask {
           type uint16;
         }
       }
       grouping tunnel-ipv4-match-fields {
         leaf tunnel-ipv4-source {
           type inet:ipv4-prefix;
         }
         leaf tunnel-ipv4-destination {
           type inet:ipv4-prefix;
         }
       }
       grouping match {
         leaf in-port {
           type inv:node-connector-id;
         }
         leaf in-phy-port {
           type inv:node-connector-id;
         }
         container packet-type-match {
           uses packet-type-fields;
         }
         container metadata {
           uses of-metadata;
         }
         container tunnel {
           leaf tunnel-id {
             type uint64;
           }
           leaf tunnel-mask {
             type uint64;
           }
         }
         container ethernet-match {
           uses ethernet-match-fields;
         }
         container vlan-match {
           uses vlan-match-fields;
         }
         container ip-match {
           uses ip-match-fields;
         }
         choice layer-3-match {
           case ipv4-match {
             uses ipv4-match-fields;
           }
           case ipv4-match-arbitrary-bit-mask {
             uses mask:ipv4-match-arbitrary-bitmask-fields;
           }
           case ipv6-match {
             uses ipv6-match-fields;
           }
           case ipv6-match-arbitrary-bit-mask {
             uses ipv6-arbitrary-mask:ipv6-match-arbitrary-bitmask-fields;
           }
           case arp-match {
             uses arp-match-fields;
           }
           case tunnel-ipv4-match {
             uses tunnel-ipv4-match-fields;
           }
         }
         choice layer-4-match {
           case udp-match {
             uses udp-match-fields;
           }
           case tcp-match {
             uses tcp-match-fields;
           }
           case sctp-match {
             uses sctp-match-fields;
           }
         }
         container icmpv4-match {
           uses icmpv4-match-fields;
         }
         container icmpv6-match {
           uses icmpv6-match-fields;
         }
         container protocol-match-fields {
           uses protocol-match-fields;
         }
         container tcp-flags-match {
           uses tcp-flags-match-fields;
         }
       }
     }