From 137d8db856cf5231391c86a6324288b53c2c16cb Mon Sep 17 00:00:00 2001 From: Deepthi V V Date: Tue, 26 Nov 2013 18:21:26 +0530 Subject: [PATCH] Table features : modified yang model. Patch set 2: Modified match types as identity for extensibility. Signed-off-by: Deepthi V V Change-Id: I12f9f99ccc40162951889acc5515940e56e9f211 --- .../src/main/yang/table-types.yang | 251 ++++++++++++++---- 1 file changed, 199 insertions(+), 52 deletions(-) diff --git a/opendaylight/md-sal/model/model-flow-base/src/main/yang/table-types.yang b/opendaylight/md-sal/model/model-flow-base/src/main/yang/table-types.yang index 2a16bfcf50..52629516f3 100644 --- a/opendaylight/md-sal/model/model-flow-base/src/main/yang/table-types.yang +++ b/opendaylight/md-sal/model/model-flow-base/src/main/yang/table-types.yang @@ -19,7 +19,186 @@ module opendaylight-table-types { type bits { bit DEPRECATED-MASK; } - } + } + + // field types + identity match-field { + description "Base identity for match Fields"; + } + + identity in_port { + base match-field; + description "Match for Switch input port."; + } + identity in_phy_port { + base match-field; + description "Match for Switch physical input port."; + } + identity metadata { + base match-field; + description "Match for Metadata passed between tables."; + } + identity eth_dst { + base match-field; + description "Match for Ethernet destination address."; + } + identity eth_src { + base match-field; + description "Match for Ethernet source address."; + } + identity eth_type { + base match-field; + description "Match for Ethernet frame type."; + } + identity vlan_vid { + base match-field; + description "Match for VLAN id."; + } + identity vlan_pcp { + base match-field; + description "Match for VLAN priority."; + } + identity ip_dscp { + base match-field; + description "Match for IP DSCP (6 bits in ToS field)."; + } + identity ip_ecn { + base match-field; + description "Match for IP ECN (2 bits in ToS field)."; + } + identity ip_proto { + base match-field; + description "Match for IP protocol."; + } + identity ipv4_src { + base match-field; + description "Match for IPv4 source address."; + } + identity ipv4_dst { + base match-field; + description "Match for IPv4 destination address."; + } + identity tcp_src { + base match-field; + description "Match for TCP source port."; + } + identity tcp_dst { + base match-field; + description "Match for TCP destination port."; + } + identity udp_src { + base match-field; + description "Match for UDP source port."; + } + identity udp_dst { + base match-field; + description "Match for UDP destination port."; + } + identity sctp_src { + base match-field; + description "Match for SCTP source port."; + } + identity sctp_dst { + base match-field; + description "Match for SCTP destination port."; + } + identity icmpv4_type { + base match-field; + description "Match for ICMP type."; + } + identity icmpv4_code { + base match-field; + description "Match for ICMP code."; + } + identity arp_op { + base match-field; + description "Match for ARP opcode."; + } + identity arp_spa { + base match-field; + description "Match for ARP source IPv4 address."; + } + identity arp_tpa { + base match-field; + description "Match for ARP target IPv4 address."; + } + identity arp_sha { + base match-field; + description "Match for ARP source hardware address."; + } + identity arp_tha { + base match-field; + description "Match for ARP target hardware address."; + } + identity ipv6_src { + base match-field; + description "Match for IPv6 source address."; + } + identity ipv6_dst { + base match-field; + description "Match for IPv6 destination address."; + } + identity ipv6_flabel { + base match-field; + description "Match for IPv6 Flow Label"; + } + identity icmpv6_type { + base match-field; + description "Match for ICMPv6 type."; + } + identity icmpv6_code { + base match-field; + description "Match for ICMPv6 code."; + } + identity ipv6_nd_target { + base match-field; + description "Match for Target address for ND."; + } + identity ipv6_nd_sll { + base match-field; + description "Match for Source link-layer for ND."; + } + identity ipv6_nd_tll { + base match-field; + description "Match for Target link-layer for ND."; + } + identity mpls_label { + base match-field; + description "Match for MPLS label."; + } + identity mpls_tc { + base match-field; + description "Match for MPLS TC."; + } + identity mpls_bos { + base match-field; + description "Match for MPLS BoS bit."; + } + identity pbb_isid { + base match-field; + description "Match for PBB I-SID."; + } + identity tunnel_id { + base match-field; + description "Match for Logical Port Metadata"; + } + identity ipv6_exthdr { + base match-field; + description "Match for IPv6 Extension Header pseudo-field"; + } + + grouping set-field-match { + list set-field-match { + leaf match-type { + type identityref { + base match-field; + } + } + leaf has-mask { + type boolean; + } + } + } grouping table-feature-prop-type { choice table-feature-prop-type { @@ -37,24 +216,16 @@ module opendaylight-table-types { case next-table { container tables { - list table-id { - key "table"; - - leaf table-id { - type table-ref; - } + leaf-list table-ids { + type uint8; } } } case next-table-miss { container tables { - list table-id { - key "table-id"; - - leaf table-id { - type table-ref; - } + leaf-list table-ids { + type uint8; } } } @@ -83,52 +254,28 @@ module opendaylight-table-types { } } - case match { - container matches { - leaf-list match { - type uint32; - } - } + case match { + uses set-field-match; } case wildcards { - container wildcards { - leaf-list wildcard { - type uint32; - } - } + uses set-field-match; } case write-setfield { - container write-setfield { - leaf-list setfield { - type uint32; - } - } + uses set-field-match; } case write-setfield-miss { - container write-setfield-miss { - leaf-list setfield { - type uint32; - } - } + uses set-field-match; } case apply-setfield { - container apply-setfield { - leaf-list setfield { - type uint32; - } - } + uses set-field-match; } case apply-setfield-miss { - container apply-setfield-miss { - leaf-list setfield { - type uint32; - } - } + uses set-field-match; } } } @@ -138,7 +285,7 @@ module opendaylight-table-types { key "table-id"; leaf table-id { - type table-ref; + type uint8; } leaf name { @@ -167,15 +314,15 @@ module opendaylight-table-types { } container table-properties { - list instruction-id { - key "order"; - leaf order { - type int32; - } - - uses table-feature-prop-type; + list table-feature-properties { + key "order"; + leaf order { + type int32; + } + uses table-feature-prop-type; } } + } } } \ No newline at end of file -- 2.36.6