revision "2013-10-26" {
description "Initial revision of macth types";
}
-
+
grouping "mac-address-filter" {
leaf address {
mandatory true;
type yang:mac-address;
}
leaf mask {
- type binary;
+ type yang:mac-address;
}
}
-
+
grouping "of-metadata" {
leaf metadata {
type uint64;
}
-
+
leaf metadata-mask {
- type binary;
+ type uint64;
}
}
container ethernet-type {
description "Ethernet frame type.";
presence "Match field is active and set";
-
+
leaf type {
mandatory true;
type l2t:ether-type; // Needs to define that as general model
}
-
- leaf mask {
- type binary;
- }
}
}
leaf vlan-id-present {
type boolean;
}
-
+
leaf vlan-id {
- type l2t:vlan-id;
+ type l2t:vlan-id;
}
}
leaf vlan-pcp {
grouping "ip-match-fields" {
leaf ip-protocol {
description "IP protocol.";
- type uint8;
+ type uint8;
}
leaf ip-dscp {
description "IP DSCP (6 bits in ToS field).";
- type inet:dscp;
+ type inet:dscp;
}
-
+
leaf ip-ecn {
description "IP ECN (2 bits in ToS field).";
- type uint8;
+ type uint8;
}
-
- leaf ip-proto {
- description "IP Proto (IPv4 or IPv6 Protocol Number).";
- type inet:ip-version;
+
+ leaf ip-proto {
+ description "IP Proto (IPv4 or IPv6 Protocol Number).";
+ type inet:ip-version;
}
- }
-
+ }
+
grouping "ipv4-match-fields" {
leaf ipv4-source {
description "IPv4 source address.";
type inet:ipv4-prefix;
}
-
+
leaf ipv4-destination {
description "IPv4 destination address.";
type inet:ipv4-prefix;
}
-
+
}
-
+
grouping "ipv6-match-fields" {
leaf ipv6-source {
description "IPv6 source address.";
type inet:ipv6-prefix;
}
-
+
leaf ipv6-destination {
description "IPv6 destination address.";
type inet:ipv6-prefix;
}
-
+
leaf ipv6-nd-target {
description "IPv6 target address for neighbour discovery message";
type inet:ipv6-address;
}
-
+
container "ipv6-label" {
leaf ipv6-flabel {
type inet:ipv6-flow-label;
}
-
+
leaf flabel-mask {
- type binary;
+ type inet:ipv6-flow-label;
}
}
-
+
leaf ipv6-nd-sll {
description "Link layer source address for neighbour discovery message";
type yang:mac-address;
}
-
+
leaf ipv6-nd-tll {
description "Link layer target address for neighbour discovery message";
type yang:mac-address;
}
-
- container "ipv6-ext-header" {
+
+ container "ipv6-ext-header" {
leaf ipv6-exthdr {
description "IPv6 Extension Header field";
type uint16;
}
leaf ipv6-exthdr-mask {
- type binary;
+ type uint16 {
+ range "0..512";
+ }
}
}
}
description "Label in the first MPLS shim header";
type uint32;
}
-
+
leaf mpls-tc {
description "TC in the first MPLS shim header";
type uint8;
}
-
+
leaf mpls-bos {
description "BoS bit in the first MPLS shim header";
type uint8;
}
-
+
container "pbb" {
leaf pbb-isid {
description "I-SID in the first PBB service instance tag";
type uint32;
- }
+ }
leaf pbb-mask {
- type binary;
+ type uint32 {
+ range "0..16777216";
+ }
}
}
}
-
+
grouping "tcp-match-fields" {
leaf tcp-source-port {
description "TCP source port.";
type uint8; // Define ICMP Code
}
}
-
+
grouping "icmpv6-match-fields" {
leaf icmpv6-type {
description "ICMP type.";
leaf arp-op {
type uint16;
}
-
+
leaf arp-source-transport-address {
description "ARP source IPv4 address.";
type inet:ipv4-prefix;
}
-
+
leaf arp-target-transport-address {
description "ARP target IPv4 address.";
type inet:ipv4-prefix;
uses mac-address-filter;
}
}
-
+
grouping match {
leaf in-port {
type inv:node-connector-id;
}
-
+
leaf in-phy-port {
type inv:node-connector-id;
}
-
+
container "metadata" {
uses of-metadata;
}
-
+
container "tunnel" {
leaf tunnel-id {
description "Metadata associated in the logical port";
type uint64;
}
-
+
leaf tunnel-mask {
- type binary;
+ 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";
uses "arp-match-fields";
}
}
-
+
choice layer-4-match {
case "udp-match" {
uses "udp-match-fields";
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";
}