X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-base%2Fsrc%2Fmain%2Fyang%2Fmatch-types.yang;h=7dcd254ad7cc751e64d30bf275a8629781f625be;hp=757686c662ab747baced122af0d5218a170f061a;hb=43b37a609662f705d2dd701cb8b7c479144d2ef1;hpb=738d46bed116293e3e42171ad2035ab805b0b2be diff --git a/opendaylight/md-sal/model/model-flow-base/src/main/yang/match-types.yang b/opendaylight/md-sal/model/model-flow-base/src/main/yang/match-types.yang index 757686c662..7dcd254ad7 100644 --- a/opendaylight/md-sal/model/model-flow-base/src/main/yang/match-types.yang +++ b/opendaylight/md-sal/model/model-flow-base/src/main/yang/match-types.yang @@ -2,12 +2,12 @@ module opendaylight-match-types { namespace "urn:opendaylight:model:match:types"; prefix "match"; - import ietf-inet-types {prefix inet;} - import ietf-yang-types {prefix yang;} - import opendaylight-l2-types {prefix l2t;} + import ietf-inet-types {prefix inet; revision-date "2010-09-24";} + import ietf-yang-types {prefix yang; revision-date "2010-09-24";} + import opendaylight-l2-types {prefix l2t;revision-date "2013-08-27";} - revision "2013-08-19" { - description "Initial revision of flow service"; + revision "2013-10-26" { + description "Initial revision of macth types"; } grouping "mac-address-filter" { @@ -19,6 +19,16 @@ module opendaylight-match-types { type binary; } } + + grouping "of-metadata" { + leaf metadata { + type uint64; + } + + leaf metadata-mask { + type binary; + } + } /** Match Groupings **/ grouping "ethernet-match-fields" { @@ -40,6 +50,7 @@ module opendaylight-match-types { mandatory true; type l2t:ether-type; // Needs to define that as general model } + leaf mask { type binary; } @@ -75,32 +86,77 @@ module opendaylight-match-types { description "IP DSCP (6 bits in ToS field)."; type inet:dscp; } + leaf ip-ecn { description "IP ECN (2 bits in ToS field)."; type uint8; } - } - + + 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; + } + } + + 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" { + leaf ipv6-exthdr { + description "IPv6 Extension Header field"; + type uint16; + } + + leaf ipv6-exthdr-mask { + type binary; + } + } } grouping "udp-match-fields" { @@ -114,6 +170,34 @@ module opendaylight-match-types { } } + grouping "protocol-match-fields" { + leaf mpls-label { + 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; + } + } + } + grouping "tcp-match-fields" { leaf tcp-source-port { description "TCP source port."; @@ -146,8 +230,23 @@ module opendaylight-match-types { type uint8; // Define ICMP Code } } + + grouping "icmpv6-match-fields" { + leaf icmpv6-type { + description "ICMP type."; + type uint8; // Define ICMP Type + } + description "ICMP code."; + leaf icmpv6-code { + type uint8; // Define ICMP Code + } + } grouping "arp-match-fields" { + leaf arp-op { + type uint16; + } + leaf arp-source-transport-address { description "ARP source IPv4 address."; type inet:ipv4-prefix; @@ -160,79 +259,47 @@ module opendaylight-match-types { container arp-source-hardware-address { description "ARP source hardware address."; presence "Match field is active and set"; - uses mac-address-filter; + uses mac-address-filter; } container arp-target-hardware-address { description "ARP target hardware address."; presence "Match field is active and set"; - uses mac-address-filter; + uses mac-address-filter; } } - - grouping action { - choice action { - case output-action { - leaf-list output-node-connector { - type string; - } - } - - case controller-action { - leaf max-length { - type uint16 { - range "0..65294"; - } - } - } - - case set-queue-action { - leaf queue { - type string; // TODO: define queues - } - } - - case pop-mpls-action { - container pop-mpls { - leaf ethernet-type { - type uint16; // TODO: define ethertype type - } - } - } - - case set-mpls-ttl-action { - leaf mpls-ttl { - type uint8; - } - } - - case set-nw-ttl-action { - leaf nw-ttl { - type uint8; - } - } - - case push-pbb-action { - - } - - case push-mpls-action { - + + grouping match { + leaf in-port { + type uint32; + } + + leaf in-phy-port { + type uint32; + } + + container "metadata" { + uses of-metadata; + } + + container "tunnel" { + leaf tunnel-id { + description "Metadata associated in the logical port"; + type uint64; } - - case push-vlan-action { - + + leaf tunnel-mask { + type binary; } } - } - - - grouping match { + container "ethernet-match" { uses "ethernet-match-fields"; } + container "vlan-match" { uses "vlan-match-fields"; } + container "ip-match" { uses "ip-match-fields"; } @@ -260,8 +327,17 @@ module opendaylight-match-types { 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"; + } } } \ No newline at end of file