summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-wifi-mac.yang
diff options
context:
space:
mode:
authorAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2018-12-20 17:49:33 +0100
committerAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2018-12-20 17:51:10 +0100
commit639509ad42f8bd6baf9b6f5b668a9bbfb05108d4 (patch)
tree83de866d2e47bd71dae0c6ff9e03f51c3269413b /src/plugins/yang/openconfig/openconfig-wifi-mac.yang
parentba089324594f450a1b549906ec7fde1ba63a1e89 (diff)
Add Openconfig YANG modules.
Change-Id: I7e98bf1ca7196cff042a35b8bf096d2ea9d80028 Signed-off-by: Andrej Kozemcak <andrej.kozemcak@pantheon.tech>
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-wifi-mac.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-wifi-mac.yang1482
1 files changed, 1482 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-wifi-mac.yang b/src/plugins/yang/openconfig/openconfig-wifi-mac.yang
new file mode 100644
index 0000000..3d51215
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-wifi-mac.yang
@@ -0,0 +1,1482 @@
+module openconfig-wifi-mac {
+
+ yang-version "1";
+
+ // namespace
+ namespace "http://openconfig.net/yang/wifi/mac";
+
+ // Assign this module a prefix to be used by other modules, when imported.
+ prefix "oc-wifi-mac";
+
+ import openconfig-yang-types { prefix oc-yang; }
+ // OC-specific types
+ import openconfig-extensions { prefix oc-ext; }
+ import openconfig-vlan-types { prefix oc-vlan-types; }
+ import openconfig-inet-types { prefix oc-inet; }
+ import openconfig-wifi-types { prefix oc-wifi-types; }
+ import openconfig-types { prefix oc-types; }
+
+ // Some required meta
+ organization "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ www.openconfig.net";
+
+ description
+ "Model for managing MAC layer configuration of Radio interfaces.";
+
+ oc-ext:openconfig-version "0.2.0";
+
+ revision "2017-12-21" {
+ description
+ "Add mobility-domain and move/create bssid-state list for
+ counters.";
+ reference "0.2.0";
+ }
+
+ revision "2017-07-25" {
+ description
+ "Initial revision";
+ reference "0.1.0";
+ }
+
+ grouping ssid-common-config {
+ description
+ "Configuration items common to all logical SSIDs.";
+
+ leaf name {
+ type string;
+ description
+ "The name of the SSID.";
+ }
+
+ leaf enabled {
+ type boolean;
+ default "true";
+ description
+ "The desired operational state (up/down) of this SSID.";
+ }
+
+ leaf hidden {
+ type boolean;
+ default "false";
+ description
+ "Whether this SSID IE is hidden within Beacons.";
+ }
+
+ leaf vlan-id {
+ type oc-vlan-types:vlan-id;
+ description
+ "Optional VLAN tag used by the SSID. When unspecified, defaults
+ to untagged.";
+ }
+
+ leaf operating-frequency {
+ type identityref {
+ base oc-wifi-types:OPERATING_FREQUENCY;
+ }
+ default "oc-wifi-types:FREQ_2_5_GHZ";
+ description
+ "Operating frequency of this SSID. When none specified, the default is
+ dual-band.";
+ }
+
+ leaf-list basic-data-rates {
+ type identityref {
+ base oc-wifi-types:DATA_RATE;
+ }
+ description
+ "Basic data-rates for the SSID.";
+ }
+
+ leaf-list supported-data-rates {
+ type identityref {
+ base oc-wifi-types:DATA_RATE;
+ }
+ description
+ "Supported data-rates for the SSID.";
+ }
+ // MCS rates explicitly absent, as they are typically not pruned.
+
+ leaf broadcast-filter {
+ type boolean;
+ description
+ "Convert all downstream broadcast ARP to unicast
+ only if Station is associated to the AP. Drop packet
+ if Station is not associated to the AP. All other
+ broadcast, except DHCP, is dropped by the AP.
+
+ DHCP Offers/ACKs are converted to Unicast, over-the-air.";
+ }
+
+ leaf multicast-filter {
+ type boolean;
+ description
+ "Drop all downstream Multicast packets.";
+ }
+
+ leaf ipv6-ndp-filter {
+ type boolean;
+ description
+ "Neighbor Advertisements will be cached at the AP (or WLC)
+ and unicast in response to Neighbor Solicitations.
+
+ Router Advertisements, in response to a Router Solicitation
+ are converted to Unicast for over-the-air transmission.";
+ }
+
+ leaf ipv6-ndp-filter-timer {
+ type uint16;
+ units seconds;
+ description
+ "Time, in seconds, the ndp-filter will cache
+ Neighbor Advertisements (NA).";
+ }
+
+ leaf station-isolation {
+ type boolean;
+ description
+ "Block Station peer to peer communication.";
+ }
+
+ leaf opmode {
+ type enumeration {
+ enum OPEN {
+ description
+ "Open authentication.";
+ }
+ enum WPA2_PERSONAL {
+ description
+ "WPA2-Personal with PSK authentication.";
+ }
+ enum WPA2_ENTERPRISE {
+ description
+ "WPA2-Enterprise with 802.1X authentication.";
+ }
+ }
+ default "OPEN";
+ description
+ "The type of Layer2 authentication in use.";
+ }
+ // Note, legacy 802.11 auth methods (ie Shared Key) explicitly absent here.
+ // It should never be used.
+
+ leaf wpa2-psk {
+ when "../opmode = 'WPA2_PERSONAL'";
+ type string {
+ length "8..63";
+ }
+ description
+ "The passphrase used on this WPA2-Personal SSID.";
+ }
+
+ leaf server-group {
+ when "../opmode = 'WPA2_ENTERPRISE' or ../opmode = 'WPA2_PERSONAL'";
+ type string;
+ description
+ "Specifies the RADIUS server-group to be used,
+ as defined in the openconfig-aaa.yang model.
+
+ Including WPA2_PERSONAL as it can be accompained by MAB.";
+ }
+
+ leaf dva {
+ type boolean;
+ description
+ "Enable/disable Dynamic VLAN Assignment,
+ using 'Tunnel-Private-Group-Id' RADIUS attribute.";
+ }
+
+ leaf mobility-domain {
+ type string;
+ description
+ "Specify the mobility domain where PMK-R0 distribution will occur.
+ Specifically, which APs will recieve PMK-R0 if using 802.11r (FT).";
+ }
+
+ leaf dhcp-required {
+ type boolean;
+ description
+ "Allow a Station to access the network only if
+ a DHCP exchange has occurred.";
+ }
+
+ leaf qbss-load {
+ type boolean;
+ description
+ "Advertisement of the QBSS Load Information ELement.";
+ }
+
+ leaf advertise-apname {
+ type boolean;
+ description
+ "Advertise the AP hostname in Beacon and Probe Resp. frames.";
+ }
+
+ leaf csa {
+ type boolean;
+ default "true";
+ description
+ "Enable/Disable 802.11h channel-switch-announcement.";
+ }
+
+ leaf ptk-timeout {
+ type uint16;
+ units seconds;
+ description
+ "Time, in seconds, for the Pairwise Transient Key to be timed out.";
+ }
+
+ leaf gtk-timeout {
+ type uint16;
+ units seconds;
+ description
+ "TTL for the Group Temporal Key.";
+ }
+
+ leaf dot11k {
+ type boolean;
+ description
+ "802.11k neighbor-list enabled/disabled.";
+ }
+
+ leaf okc {
+ type boolean;
+ description
+ "Enable/disable Opportunistic Key Caching.";
+ }
+ }
+
+ grouping dot11v-config {
+ description
+ "802.11v configuration & state data.";
+
+ leaf dot11v-dms {
+ type boolean;
+ description
+ "802.11v Directed Multicast Service enabled/disabled.";
+ }
+
+ leaf dot11v-bssidle {
+ type boolean;
+ description
+ "802.11v BSS Max Idle enabled/disabled.";
+ }
+
+ leaf dot11v-bssidle-timeout {
+ type uint16;
+ units seconds;
+ description
+ "802.11v BSS Max Idle timeout.";
+ }
+
+ leaf dot11v-bsstransition {
+ type boolean;
+ description
+ "802.11v BSS Transition enabled/disabled.";
+ }
+ }
+
+ grouping dot11r-config {
+ description
+ "802.11r related configuration & state data.";
+
+ leaf dot11r {
+ type boolean;
+ description
+ "Enable/disable 802.11r FT.";
+ }
+
+ leaf dot11r-domainid {
+ type uint16;
+ description
+ "Mobility Domain ID.";
+ }
+
+ leaf dot11r-method {
+ type enumeration {
+ enum OVA {
+ description
+ "802.11r Over-the-AIR.";
+ }
+ enum ODS {
+ description
+ "802.11r Over-the-DS.";
+ }
+ }
+ default "OVA";
+ description
+ "The type of 802.11r FT in use.";
+ }
+
+ leaf dot11r-r1key-timeout {
+ type uint16;
+ units seconds;
+ description
+ "TTL for the Pairwise Master Key R1.";
+ }
+ // At present R1 Key distribution is left up to vendor. All APs in mgmnt
+ // subnet, all APs on WLC etc.
+ }
+
+ grouping dot1x-timers-config {
+ description
+ "Configurable 802.1X timers, per ESS.";
+
+ leaf max-auth-failures {
+ type uint8;
+ description
+ "Number of consecutive authentication failures,
+ via RADIUS Access-Reject, before Station
+ is blacklisted.";
+ }
+
+ leaf blacklist-time {
+ type uint16;
+ units seconds;
+ description
+ "Length of time, in seconds, a Station will be
+ blacklisted as a result of max-auth-failures.";
+ }
+ }
+
+ grouping wmm-config {
+ description
+ "WMM & QoS marking config, per BSS.";
+
+ leaf trust-dscp {
+ type boolean;
+ default "true";
+ description
+ "The AP should trust DSCP on 802.11 frames received
+ in this BSS.";
+ }
+
+ leaf-list wmm-vo-remark {
+ type uint8;
+ max-elements 8;
+ description
+ "Allowed DSCP markings for WMM AC_VO. Remark to lowest in this list
+ if DSCP marking falls outside of these allowed markings.
+
+ From 1 (min) to 8 (max) integers.";
+ }
+
+ leaf-list wmm-vi-remark {
+ type uint8;
+ max-elements 8;
+ description
+ "Allowed DSCP markings for WMM AC_VI. Remark to lowest in this list
+ if DSCP marking falls outside of these allowed markings.
+
+ From 1 (min) to 8 (max) integers.";
+ }
+
+ leaf-list wmm-be-remark {
+ type uint8;
+ max-elements 8;
+ description
+ "Allowed DSCP markings for WMM AC_BE. Remark to lowest in this list
+ if DSCP marking falls outside of these allowed markings.
+
+ From 1 (min) to 8 (max) integers.";
+ }
+
+ leaf-list wmm-bk-remark {
+ type uint8;
+ max-elements 8;
+ description
+ "Allowed DSCP markings for WMM AC_BK. Remark to lowest in this list
+ if DSCP marking falls outside of these allowed markings.
+
+ From 1 (min) to 8 (max) integers.";
+ }
+ }
+
+ grouping band-steering-config {
+ description
+ "Grouping for band-steering specific configuration.";
+
+ leaf band-steering {
+ type boolean;
+ description
+ "Enable/disable band-steering.";
+ }
+
+ leaf steering-rssi {
+ type int8;
+ description
+ "Minimum RSSI a dual-band Station's Probe Request
+ must be heard at on a 5GHz radio, in order for
+ band-steering to withhold 2.4GHz Probe Responses.";
+ }
+ }
+
+ grouping ssid-common-state {
+ description
+ "Grouping for defining ssid-specific operational state";
+
+ leaf bssid {
+ type oc-yang:mac-address;
+ description
+ "Represents the BSSID. Typically this is base-radio mac +/- in last
+ octet; though not strictly required.";
+ }
+
+ leaf bss-channel-utilization {
+ type oc-types:percentage;
+ description
+ "Total 802.11 channel utilization on this BSS. The total channel
+ utilization should include all time periods the AP spent actively
+ receiving and transmitting 802.11 frames on this BSS.";
+ }
+
+ leaf rx-bss-dot11-channel-utilization {
+ type oc-types:percentage;
+ description
+ "Rx channel utilization percent for this BSS.";
+ }
+
+ leaf tx-bss-dot11-channel-utilization {
+ type oc-types:percentage;
+ description
+ "Tx channel utilization percent for this BSS.";
+ }
+ }
+
+ grouping bss-common-state {
+ description
+ "Grouping for defining bss-specific operational state.";
+
+ leaf ess {
+ type leafref {
+ path "../../../../ssids/ssid/name";
+ }
+ description
+ "Name of the ESS this BSS is utilizing.";
+ }
+
+ leaf num-associated-clients {
+ type uint8;
+ description
+ "Number of associated STAs to this BSS.";
+ }
+ }
+
+ grouping bssid-counters-state {
+ description
+ "BSSID telemetry statistics.";
+
+ leaf bssid {
+ type oc-yang:mac-address;
+ description
+ "MAC of the BSS.";
+ }
+
+ container counters {
+ config false;
+ description
+ "BSS Counters.";
+
+ // Rx Counters
+ leaf rx-mgmt {
+ type oc-yang:counter64;
+ description
+ "Received 802.11 Management frames.";
+ }
+
+ leaf rx-control {
+ type oc-yang:counter64;
+ description
+ "Received 802.11 Control frames.";
+ }
+
+ container rx-data-dist {
+ description
+ "The distribution of Data frame sizes in bytes of successfully
+ recieved AMPDU, or MPDU for non-aggregated, frames.
+ The distribution should characterize frame sizes starting at 64 bytes
+ or less with the bin size doubling for each successive bin to a
+ maximum of 1MB or larger, as represented in the following table:
+
+ Lower Bound Upper Bound
+ 0 64
+ 65 128
+ 129 256
+ 257 512
+ 513 1024
+ 1025 2048
+ 2049 4096
+ 4097 8192
+ 8193 16384
+ 16385 32768
+ 32769 65536
+ 65537 131072
+ 131073 262144
+ 262145 524288
+ 524289 1048576";
+
+ leaf rx-0-64 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 0 to 64 Bytes.";
+ }
+
+ leaf rx-65-128 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 65 to 128 Bytes.";
+ }
+
+ leaf rx-129-256 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 129 to 256 Bytes.";
+ }
+
+ leaf rx-257-512 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 257 to 512 Bytes.";
+ }
+
+ leaf rx-513-1024 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.";
+ }
+
+ leaf rx-1025-2048 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.";
+ }
+
+ leaf rx-2049-4096 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.";
+ }
+
+ leaf rx-4097-8192 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.";
+ }
+
+ leaf rx-8193-16384 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.";
+ }
+
+ leaf rx-16385-32768 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.";
+ }
+
+ leaf rx-32769-65536 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.";
+ }
+
+ leaf rx-65537-131072 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 65537 to 131072 Bytes.";
+ }
+
+ leaf rx-131073-262144 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 131073 to 262144 Bytes.";
+ }
+
+ leaf rx-262145-524288 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 262145 to 524288 Bytes.";
+ }
+
+ leaf rx-524289-1048576 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 524289 to 1048576 Bytes.";
+ }
+ }
+
+ container rx-data-wmm {
+ description
+ "Received 802.11 Data frames, per WMM Access Category.";
+
+ leaf vi {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames marked as Access Category Video.";
+ }
+
+ leaf vo {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames marked as Access Category Voice.";
+ }
+
+ leaf be {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames marked as Access Category Best Effort.";
+ }
+
+ leaf bk {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames marked as Access Category Background.";
+ }
+ }
+
+ container rx-mcs {
+ description
+ "Received Data frames, per MCS Index. It is expected that vendors
+ bucketize 802.11n MCS frames in their matching 802.11ac buckets.
+
+ Example, 802.11n MCS 15 = 802.11ac MCS 7.
+ 802.11n MCS 20 = 802.11ac MCS 4.";
+
+ leaf mcs0 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 0.";
+ }
+
+ leaf mcs1 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 1.";
+ }
+
+ leaf mcs2 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 2.";
+ }
+
+ leaf mcs3 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 3.";
+ }
+
+ leaf mcs4 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 4.";
+ }
+
+ leaf mcs5 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 5.";
+ }
+
+ leaf mcs6 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 6.";
+ }
+
+ leaf mcs7 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 7.";
+ }
+
+ leaf mcs8 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 8.";
+ }
+
+ leaf mcs9 {
+ type oc-yang:counter64;
+ description
+ "Rx Data frames at MCS 9.";
+ }
+ }
+
+ leaf rx-retries {
+ type oc-yang:counter64;
+ description
+ "Total number of received frames with the Retry bit set, within this
+ BSS.";
+ }
+
+ leaf rx-retries-data {
+ type oc-yang:counter64;
+ description
+ "Number of received QoS Data frames with the Retry bit set";
+ }
+ leaf rx-retries-subframe {
+ type oc-yang:counter64;
+ description
+ "Aggregated MPDUs which had individual subframes that fail and require
+ retransmission.";
+ }
+
+ leaf rx-bytes-data {
+ type oc-yang:counter64;
+ description
+ "Bytes received from QoS Data frames";
+ }
+
+ // Tx Counters
+ leaf tx-mgmt {
+ type oc-yang:counter64;
+ description
+ "Transmitted 802.11 Management frames.";
+ }
+
+ leaf tx-control {
+ type oc-yang:counter64;
+ description
+ "Transmitted 802.11 Control frames.";
+ }
+
+ container tx-data-dist {
+ description
+ "The distribution of Data frame sizes in bytes of successfully transmitted
+ AMPDU, or MPDU for non-aggregated, frames.
+ The distribution should characterize frame sizes starting at 64 bytes
+ or less with the bin size doubling for each successive bin to a
+ maximum of 1MB or larger, as represented in the following table:
+
+ Lower Bound Upper Bound
+ 0 64
+ 65 128
+ 129 256
+ 257 512
+ 513 1024
+ 1025 2048
+ 2049 4096
+ 4097 8192
+ 8193 16384
+ 16385 32768
+ 32769 65536
+ 65537 131072
+ 131073 262144
+ 262145 524288
+ 524289 1048576";
+
+ leaf tx-0-64 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 0 to 64 Bytes.";
+ }
+
+ leaf tx-65-128 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 65 to 128 Bytes.";
+ }
+
+ leaf tx-129-256 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 129 to 256 Bytes.";
+ }
+
+ leaf tx-257-512 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 257 to 512 Bytes.";
+ }
+
+ leaf tx-513-1024 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.";
+ }
+
+ leaf tx-1025-2048 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.";
+ }
+
+ leaf tx-2049-4096 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.";
+ }
+
+ leaf tx-4097-8192 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.";
+ }
+
+ leaf tx-8193-16384 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.";
+ }
+
+ leaf tx-16385-32768 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.";
+ }
+
+ leaf tx-32769-65536 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.";
+ }
+
+ leaf tx-65537-131072 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 65537 to 131072 Bytes.";
+ }
+
+ leaf tx-131073-262144 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 131073 to 262144 Bytes.";
+ }
+
+ leaf tx-262145-524288 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 262145 to 524288 Bytes.";
+ }
+
+ leaf tx-524289-1048576 {
+ type oc-yang:counter64;
+ description
+ "Transmitted AMPDU from 524289 to 1048576 Bytes.";
+ }
+ }
+
+ container tx-data-wmm {
+ description
+ "Transmitted QoS Data frames, per WMM AC.";
+ leaf vi {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames marked as Access Category Video.";
+ }
+
+ leaf vo {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames marked as Access Category Voice.";
+ }
+
+ leaf bk {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames marked as Access Category Background.";
+ }
+
+ leaf be {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames marked as Access Category Best Effort.";
+ }
+ }
+
+ container tx-mcs {
+ description
+ "Transmitted Data frames, per MCS Index. It is expected that vendors
+ bucketize 802.11n MCS frames in their matching 802.11ac buckets.
+
+ Example, 802.11n MCS 15 = 802.11ac MCS 7.
+ 802.11n MCS 20 = 802.11ac MCS 4.";
+
+ leaf mcs0 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 0.";
+ }
+
+ leaf mcs1 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 1.";
+ }
+
+ leaf mcs2 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 2.";
+ }
+
+ leaf mcs3 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 3.";
+ }
+
+ leaf mcs4 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 4.";
+ }
+
+ leaf mcs5 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 5.";
+ }
+
+ leaf mcs6 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 6.";
+ }
+
+ leaf mcs7 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 7.";
+ }
+
+ leaf mcs8 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 8.";
+ }
+
+ leaf mcs9 {
+ type oc-yang:counter64;
+ description
+ "Tx Data frames at MCS 9.";
+ }
+ }
+
+ leaf tx-retries {
+ type oc-yang:counter64;
+ description
+ "Number of frames transmitted with the Retry bit set";
+ }
+
+ leaf tx-retries-data {
+ type oc-yang:counter64;
+ description
+ "Number of transmitted QoS Data frames with the Retry bit set";
+ }
+
+ leaf tx-retries-subframe {
+ type oc-yang:counter64;
+ description
+ "Aggregated MPDUs which had individual subframes that fail and require
+ retransmission.";
+ }
+
+ leaf tx-bytes-data {
+ type oc-yang:counter64;
+ description
+ "Bytes transmitted from QoS Data frames";
+ }
+ }
+ }
+
+ grouping clients-state {
+ description
+ "List of clients; followed by state data, per client.";
+
+ leaf mac {
+ type oc-yang:mac-address;
+ description
+ "MAC address of the client.";
+ }
+
+ container counters {
+ description
+ "Per-client counters.";
+
+ leaf tx-bytes {
+ type oc-yang:counter64;
+ description
+ "Tx Bytes to this client.";
+ }
+
+ leaf rx-bytes {
+ type oc-yang:counter64;
+ description
+ "Rx Bytes from this client.";
+ }
+
+ leaf rx-retries {
+ type oc-yang:counter64;
+ description
+ "Rx retried frames from this client.";
+ }
+
+ leaf tx-retries {
+ type oc-yang:counter64;
+ description
+ "Tx retried frames to this client.";
+ }
+ }
+ }
+
+ grouping client-connect-state {
+ description
+ "Grouping for connection state related data, per client.";
+
+ container state {
+ description
+ "Container for connection state related data, per client.";
+
+ leaf client-state {
+ type identityref {
+ base oc-wifi-types:CLIENT_STATE;
+ }
+ description
+ "Various states a Client STA may be in.";
+ }
+
+ leaf connection-time {
+ type uint16;
+ units seconds;
+ description
+ "Time, in seconds, since Client Association.";
+ }
+
+ leaf username {
+ type string;
+ description
+ "Username of Client; can be outer-identity (if PEAP),
+ CN of certificate (if EAP-TLS) etc.";
+ }
+
+ leaf hostname {
+ type string;
+ description
+ "Hostname of the client, as discovered via DHCP, mDNS
+ or otherwise.";
+ }
+
+ leaf ipv4-address {
+ type oc-inet:ipv4-address;
+ description
+ "IPv4 address of the client.";
+ }
+
+ leaf ipv6-address {
+ type oc-inet:ipv6-address;
+ description
+ "IPv6 address of the client.";
+ }
+
+ leaf operating-system {
+ type string;
+ description
+ "Optional/if known; the OS of the client.";
+ }
+ }
+ }
+
+ grouping dot11k-neighbors-state {
+ description
+ "Grouping for Client beacon reports. Requires 802.11k enabled.
+ See Sec. 5.2.7.1 of 802.11k-2008 Standard.";
+ container state {
+ description
+ "Container for Client beacon reports. Requires 802.11k enabled.
+ See Sec. 5.2.7.1 of 802.11k-2008 Standard.";
+
+ leaf neighbor-bssid {
+ type oc-yang:mac-address;
+ description
+ "The BSSID of this neighbor.";
+ }
+
+ leaf neighbor-channel {
+ type uint8;
+ description
+ "The channel of this neighbor.";
+ }
+
+ leaf neighbor-rssi {
+ type int8;
+ description
+ "The RSSI of this neighbor in dBm, expressed as a negative number.";
+ }
+
+ leaf neighbor-antenna {
+ type uint8;
+ description
+ "Antenna details for this neighbor.";
+ }
+
+ leaf channel-load-report {
+ type uint8;
+ description
+ "Channel load, as reported by Client to AP
+ normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013 Spec.";
+ }
+ }
+ }
+
+ grouping client-capabilities-state {
+ description
+ "Groupig for Client capabilities, as reported by Assoc. Req. or
+ Probe Req. frames. Capability is supported, if present.";
+ container state {
+ description
+ "Container for Client capabilities, as reported by Assoc. Req. or
+ Probe Req. frames. Capability is supported, if present.";
+ leaf-list client-capabilities {
+ type identityref {
+ base oc-wifi-types:CLIENT_CAPABILITIES;
+ }
+ description
+ "Features supported by client that are Optional
+ within the 802.11 specifications.";
+ }
+
+ leaf-list channel-support {
+ type uint8;
+ description
+ "List of supported channels.";
+ }
+ }
+ }
+
+ grouping client-rf-state {
+ description
+ "Grouping for RF related client state data.";
+ container state {
+ description
+ "Container for RF related client state data.";
+
+ leaf rssi {
+ type int8;
+ description
+ "The RSSI of this client in dBm. Expressed as negative number";
+ }
+
+ leaf snr {
+ type uint8;
+ description
+ "The SNR of AP to Client, in dB.";
+ }
+
+ leaf ss {
+ type uint8;
+ description
+ "Number of Spatial Streams supported by the client.";
+ }
+
+ leaf phy-rate {
+ type uint16;
+ description
+ "Last used PHY rate of connected client.";
+ }
+
+ leaf connection-mode {
+ type enumeration {
+ enum A {
+ description
+ "Client connected using 802.11a.";
+ }
+ enum B {
+ description
+ "Client connected using 802.11b.";
+ }
+ enum G {
+ description
+ "Client connected using 802.11g.";
+ }
+ enum N {
+ description
+ "Client connected using 802.11n.";
+ }
+ enum AC {
+ description
+ "Client connected using 802.11ac.";
+ }
+ }
+ description
+ "802.11 protocol used for the client's connection.";
+ }
+
+ leaf frequency {
+ type uint8;
+ description
+ "Frequency the client is utilizing. Typically, 2.4 or 5[GHz].";
+ }
+ }
+ }
+
+ grouping clients-top {
+ description
+ "Top-level grouping for clients operational state data.";
+
+ container clients {
+ description
+ "Top-level container for clients operational state data.";
+ list client {
+ key "mac";
+ config false;
+ description
+ "List of clients per BSS.";
+ leaf mac {
+ type leafref {
+ path "../state/mac";
+ }
+ config false;
+ description
+ "The clients WiFi MAC address.";
+ }
+
+ container state {
+ config false;
+ description
+ "Client state data.";
+ uses clients-state;
+ }
+
+ container client-rf {
+ config false;
+ description
+ "RF radio-data per non-AP STA.";
+
+ uses client-rf-state;
+ }
+
+ container client-capabilities {
+ config false;
+ description
+ "Capabilites as advertised by the Client.";
+
+ uses client-capabilities-state;
+ }
+
+ container dot11k-neighbors {
+ config false;
+ description
+ "80211.k nieghbor information given from the Client to
+ the infrastructure.";
+
+ uses dot11k-neighbors-state;
+ }
+
+ container client-connection {
+ config false;
+ description
+ "Connection-state and meta-data associated with the Client.";
+
+ uses client-connect-state;
+ }
+ }
+ }
+ }
+
+ grouping wmm-top {
+ description
+ "Top-level grouping for WMM configuration and operational
+ state data.";
+
+ container wmm {
+ description
+ "Top-level container for WMM configuration and
+ state container.";
+ container config {
+ description
+ "Container for WMM configuration elements.";
+ uses wmm-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Container for WMM state elements.";
+ uses wmm-config;
+ }
+ }
+ }
+
+ grouping dot11r-top {
+ description
+ "Top-level grouping for 802.11r configuration and
+ operational state data.";
+
+ container dot11r {
+ description
+ "Top-level container for 802.11r configuration and
+ state container.";
+ container config {
+ description
+ "Container for 802.11r configuration elements.";
+ uses dot11r-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Container for 802.11r state elements.";
+ uses dot11r-config;
+ }
+ }
+ }
+
+ grouping dot11v-top {
+ description
+ "Top-level grouping for 802.11v configuration and
+ operational state data.";
+
+ container dot11v {
+ description
+ "Top-level container for 802.11v configuration and
+ operational state data.";
+ container config {
+ description
+ "Container for 802.11v configuration elements.";
+ uses dot11v-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Container for 802.11r state elements.";
+ uses dot11v-config;
+ }
+ }
+ }
+
+ grouping dot1x-timers-top {
+ description
+ "Top-level grouping for dot1x configuration and
+ operational state data.";
+
+ container dot1x-timers {
+ description
+ "Top-level container for dot1x configuration
+ and operational state data.";
+ container config {
+ description
+ "Container for dot1x configuration elements.";
+ uses dot1x-timers-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Container for dot1x state elements.";
+ uses dot1x-timers-config;
+ }
+ }
+ }
+
+ grouping band-steering-top {
+ description
+ "Top-level grouping for band-steering configuration
+ and operational state data.";
+
+ container band-steering {
+ description
+ "Top-level container for band-steering configuration
+ and operational state data.";
+ container config {
+ description
+ "Container for band-steering configuration elements.";
+ uses band-steering-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Container for band-steering state elements.";
+ uses band-steering-config;
+ }
+ }
+ }
+
+ grouping bssid-counters-top {
+ description
+ "Top-level grouping for BSSID operational state data.";
+
+ container bssids {
+ description
+ "Top-level container for BSSID operational state data.";
+ list bssid {
+ key "bssid";
+ config false;
+ description
+ "List of BSSIDs.";
+ leaf bssid {
+ type leafref {
+ path "../state/bssid";
+ }
+ config false;
+ description
+ "The BSSID MAC address.";
+ }
+
+ container state {
+ config false;
+ description
+ "BSSID state data.";
+
+ uses bss-common-state;
+ uses bssid-counters-state;
+ }
+ }
+ }
+ }
+
+ grouping ssid-top {
+ description
+ "Top-level grouping for ssid configuration and operational state data.";
+
+ container ssids {
+ description
+ "Top level container for ssids, including configuration
+ and state data.";
+
+ list ssid {
+ key "name";
+ description
+ "The list of named ssids on the APs.";
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description
+ "References the configured name of the ssid";
+ }
+
+ container config {
+ description
+ "Configurable items at the global, ssid level";
+
+ uses ssid-common-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state data at the ssid level";
+
+ uses ssid-common-config;
+ uses ssid-common-state;
+ }
+ uses wmm-top;
+ uses dot11r-top;
+ uses dot11v-top;
+ uses clients-top;
+ uses dot1x-timers-top;
+ uses band-steering-top;
+ }
+ }
+ }
+ uses ssid-top;
+ uses bssid-counters-top;
+}