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;
     }
   }
 }