Plugin code review corresponding to this change: https://git.opendaylight.org/gerrit/#/c/4638/
Patch3: Fixed masks to use the same type as values (MacAddress for MacAddress and
IPv6FlowLabel for IPv6FlowLabel) rather than arbitrary uint* values.
Signed-off-by: Deepthi V V <deepthi.v.v@ericsson.com>
Change-Id: Icbc84312c0a2f26738ab9d84f6af34783c4aad5d
Signed-off-by: Ed Warnicke <eaw@cisco.com>
revision "2013-10-26" {
description "Initial revision of macth types";
}
revision "2013-10-26" {
description "Initial revision of macth types";
}
grouping "mac-address-filter" {
leaf address {
mandatory true;
type yang:mac-address;
}
leaf mask {
grouping "mac-address-filter" {
leaf address {
mandatory true;
type yang:mac-address;
}
leaf mask {
grouping "of-metadata" {
leaf metadata {
type uint64;
}
grouping "of-metadata" {
leaf metadata {
type uint64;
}
container ethernet-type {
description "Ethernet frame type.";
presence "Match field is active and set";
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 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-present {
type boolean;
}
grouping "ip-match-fields" {
leaf ip-protocol {
description "IP protocol.";
grouping "ip-match-fields" {
leaf ip-protocol {
description "IP protocol.";
}
leaf ip-dscp {
description "IP DSCP (6 bits in ToS field).";
}
leaf ip-dscp {
description "IP DSCP (6 bits in ToS field).";
leaf ip-ecn {
description "IP ECN (2 bits in ToS field).";
leaf ip-ecn {
description "IP ECN (2 bits in ToS field).";
-
- 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;
}
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;
}
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;
}
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-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;
}
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;
}
container "ipv6-label" {
leaf ipv6-flabel {
type inet:ipv6-flow-label;
}
+ 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-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;
}
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 {
leaf ipv6-exthdr {
description "IPv6 Extension Header field";
type uint16;
}
leaf ipv6-exthdr-mask {
+ type uint16 {
+ range "0..512";
+ }
description "Label in the first MPLS shim header";
type uint32;
}
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-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;
}
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;
container "pbb" {
leaf pbb-isid {
description "I-SID in the first PBB service instance tag";
type uint32;
+ type uint32 {
+ range "0..16777216";
+ }
grouping "tcp-match-fields" {
leaf tcp-source-port {
description "TCP source port.";
grouping "tcp-match-fields" {
leaf tcp-source-port {
description "TCP source port.";
type uint8; // Define ICMP Code
}
}
type uint8; // Define ICMP Code
}
}
grouping "icmpv6-match-fields" {
leaf icmpv6-type {
description "ICMP type.";
grouping "icmpv6-match-fields" {
leaf icmpv6-type {
description "ICMP type.";
leaf arp-op {
type uint16;
}
leaf arp-op {
type uint16;
}
leaf arp-source-transport-address {
description "ARP source IPv4 address.";
type inet:ipv4-prefix;
}
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;
leaf arp-target-transport-address {
description "ARP target IPv4 address.";
type inet:ipv4-prefix;
uses mac-address-filter;
}
}
uses mac-address-filter;
}
}
grouping match {
leaf in-port {
type inv:node-connector-id;
}
grouping match {
leaf in-port {
type inv:node-connector-id;
}
leaf in-phy-port {
type inv:node-connector-id;
}
leaf in-phy-port {
type inv:node-connector-id;
}
container "metadata" {
uses of-metadata;
}
container "metadata" {
uses of-metadata;
}
container "tunnel" {
leaf tunnel-id {
description "Metadata associated in the logical port";
type uint64;
}
container "tunnel" {
leaf tunnel-id {
description "Metadata associated in the logical port";
type uint64;
}
container "ethernet-match" {
uses "ethernet-match-fields";
}
container "ethernet-match" {
uses "ethernet-match-fields";
}
container "vlan-match" {
uses "vlan-match-fields";
}
container "vlan-match" {
uses "vlan-match-fields";
}
container "ip-match" {
uses "ip-match-fields";
}
container "ip-match" {
uses "ip-match-fields";
}
choice layer-3-match {
case "ipv4-match" {
uses "ipv4-match-fields";
choice layer-3-match {
case "ipv4-match" {
uses "ipv4-match-fields";
uses "arp-match-fields";
}
}
uses "arp-match-fields";
}
}
choice layer-4-match {
case "udp-match" {
uses "udp-match-fields";
choice layer-4-match {
case "udp-match" {
uses "udp-match-fields";
uses "sctp-match-fields";
}
}
uses "sctp-match-fields";
}
}
container "icmpv4-match" {
uses "icmpv4-match-fields";
}
container "icmpv4-match" {
uses "icmpv4-match-fields";
}
container "icmpv6-match" {
uses "icmpv6-match-fields";
}
container "icmpv6-match" {
uses "icmpv6-match-fields";
}
container "protocol-match-fields" {
uses "protocol-match-fields";
}
container "protocol-match-fields" {
uses "protocol-match-fields";
}