From 639509ad42f8bd6baf9b6f5b668a9bbfb05108d4 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Thu, 20 Dec 2018 17:49:33 +0100 Subject: Add Openconfig YANG modules. Change-Id: I7e98bf1ca7196cff042a35b8bf096d2ea9d80028 Signed-off-by: Andrej Kozemcak --- .../yang/openconfig/openconfig-wifi-phy.yang | 393 +++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 src/plugins/yang/openconfig/openconfig-wifi-phy.yang (limited to 'src/plugins/yang/openconfig/openconfig-wifi-phy.yang') diff --git a/src/plugins/yang/openconfig/openconfig-wifi-phy.yang b/src/plugins/yang/openconfig/openconfig-wifi-phy.yang new file mode 100644 index 0000000..7c4453c --- /dev/null +++ b/src/plugins/yang/openconfig/openconfig-wifi-phy.yang @@ -0,0 +1,393 @@ +module openconfig-wifi-phy { + + yang-version "1"; + + // namespace + namespace "http://openconfig.net/yang/wifi/phy"; + + // Assign this module a prefix to be used by other modules, when imported. + prefix "oc-wifi-phy"; + + // Imports + import openconfig-yang-types { prefix oc-yang; } + // OC-specific types + import openconfig-extensions { prefix oc-ext; } + import openconfig-types { prefix oc-types; } + import openconfig-wifi-types { prefix oc-wifi-types; } + + // Some required meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "Model for managing PHY layer configuration of Radio interfaces."; + + oc-ext:openconfig-version "0.2.0"; + + revision "2017-12-21" { + description + "Add last-seen to neighbor-table."; + reference "0.2.0"; + } + + revision "2017-11-06" { + description + "Add SSID to neighbor-table."; + reference "0.1.1"; + } + + revision "2017-07-25" { + description + "Initial revision."; + reference "0.1.0"; + } + + // Grouping statements + grouping radio-common-config { + description + "Configuration items common to all Radio interfaces, independent + of frequency"; + + leaf id { + type uint8; + description + "Unique ID of the radio."; + } + + leaf operating-frequency { + type identityref { + base oc-wifi-types:OPERATING_FREQUENCY; + } + description + "Operating frequency of this radio."; + } + + leaf enabled { + type boolean; + default "true"; + description + "The desired operational state (up/down) of this radio interface."; + } + + leaf transmit-power { + type uint8; + units dBm; + default 9; + description + "Transmit power of the radio, in dBm."; + } + + leaf channel { + type uint8 { + range "1..165"; + } + description + "Operating channel of this radio. If using channel-bonding this + will represent the Primary 20MHz channel of the 40,80,160MHz channel."; + } + + leaf channel-width { + type uint8; + units MHz; + default 20; + description + "Operating channel-width of this radio."; + } + + leaf dca { + type boolean; + default "true"; + description + "Utilize Dynamic Channel Assignment on this Radio."; + } + + leaf-list allowed-channels { + type oc-wifi-types:channels-type; + description + "Allowed channel list for this Radio to utilize."; + } + + leaf dtp { + type boolean; + default "true"; + description + "Utilize dynamic transmit-power on this Radio."; + } + + leaf dtp-min { + when "../dtp = 'true'"; + type uint8; + default '3'; + description + "Minimum allowed transmit-power on this radio, if utilizing dtp. + Expressed in dBm."; + } + + leaf dtp-max { + when "../dtp = 'true'"; + type uint8; + default '15'; + description + "Maximum allowed transmit-power on this radio, if utilizing dtp. + Expressed in dBm."; + } + + leaf antenna-gain { + type int8; + description + "Antenna gain applied to this Radio; typically used when + external antennae connected."; + } + + leaf scanning { + type boolean; + default "true"; + description + "Whether the radio will perform off-channel scanning, to collect + neighboring RF information."; + } + + leaf scanning-interval { + type uint8; + units seconds; + description + "How often, in seconds, the radio will go off-channel to perform + scanning."; + } + + leaf scanning-dwell-time { + type uint16; + units milliseconds; + description + "Amount of time, in milliseconds, the radio will spend on a + channel during scanning-interval. If a Monitor-mode Radio, it will + cycle through scanning-allowed-channels spending this amount of time + on each."; + } + + leaf scanning-defer-clients { + type uint8; + description + "Do not perform scanning if this amount of Stations are Associated + to the Radio."; + } + + leaf scanning-defer-traffic { + type boolean; + description + "Do not perform scanning if any traffic received from an active Station + in the past 100ms marked as AC_VO or AC_VI."; + } + } + + grouping radio-common-state { + description + "Grouping for defining radio-specific operational state"; + + leaf base-radio-mac { + type oc-yang:mac-address; + description + "Represents the 'burned-in' base-radio MAC + address for the a Radio interface."; + } + + leaf dfs-hit-time { + type oc-types:timeticks64; + description + "Reports the time of the last DFS hit. The value is the timestamp + in seconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; + } + + leaf channel-change-reason { + type identityref { + base oc-wifi-types:CHANGE_REASON_TYPE; + } + description + "When an Access Point changes channels, this will + provide the reason that led to the change."; + } + + leaf total-channel-utilization { + type oc-types:percentage; + description + "Total 802.11 and non-802.11 channel utilization on this Radio. The + total channel utilization should include all time periods the AP + spent actively receiving and transmitting 802.11 frames, and also + include all time spent with clear channel assessment (CCA) in a + busy state"; + } + + leaf rx-dot11-channel-utilization { + type oc-types:percentage; + description + "Received channel-utilization due to 802.11 frames"; + } + + leaf rx-noise-channel-utilization { + type oc-types:percentage; + description + "Received channel-utilization percentage due to Noise."; + } + + leaf tx-dot11-channel-utilization { + type oc-types:percentage; + description + "Transmit channel-utilization percentage."; + } + } + + grouping radio-counters-state { + description + "Radio telemetry statistics."; + container counters { + description + "A collection of radio-related statistics objects."; + + // Rx Counters + leaf failed-fcs-frames { + type oc-yang:counter64; + description + "Number of frames that failed the FCS"; + } + + // Tx Counters + leaf noise-floor { + type int8; + description + "Noise Floor, as measured by this radio."; + } + } + } + + // neighbor BSSID | SSID | RSSI | Channel | Center Channel | Last-seen + grouping neighbor-list-state { + description + "Operational state data relating to neighboring + BSSIDs and their received signal strength."; + leaf bssid { + type oc-yang:mac-address; + description + "Neighboring BSSID."; + } + + leaf ssid { + type string; + description + "The SSID of this neighboring BSSID."; + } + + leaf rssi { + type int8; + description + "The RSSI of this neighboring BSSID."; + } + + leaf channel { + type uint16; + description + "The channel of this neighboring BSSID. This is to utilize 802.11ac + nomenclature. For example, 40MHz channel 36-40 represented as + channel 38. primary-channel used to identify the primary + 20MHz channel of the neighbor."; + } + + leaf primary-channel { + type uint16; + description + "The primary 20MHz channel, if the neighbor is operating on bonded + channel."; + } + + leaf last-seen { + type oc-types:timeticks64; + description + "Reports the time this reading was taken, indicating when this neighbor + was last seen. If a cache is used, it MUST be updated instantly when a + neighbor BSS changes channels, or a new BSS is seen. The value is the + timestamp in seconds relative to the Unix Epoch + (Jan 1, 1970 00:00:00 UTC)."; + } + } + + grouping neighbor-bssid-top { + description + "Top-level grouping for neighbor table + operational state data."; + + container neighbors { + description + "Top-level container for RF neighbors."; + list neighbor { + key "bssid"; + config false; + description + "The mac address, or BSSID, of a neighbor, and + their corresponding RSSI."; + + leaf bssid { + type leafref { + path "../state/bssid"; + } + config false; + description "Reference to neighbor bssid."; + } + + container state { + config false; + description + "State container for RF neighbors."; + uses neighbor-list-state; + } + } + } + } + + grouping radio-top { + description + "Top-level grouping for radio configuration and + operational state data"; + + container radios { + description + "Top level container for radios, including configuration + and state data."; + + list radio { + key "id"; + description + "The list of radios on the device."; + + leaf id { + type leafref { + path "../config/id"; + } + description + "References the configured id of the radio"; + } + + container config { + description + "Configurable items at the global, radio interface + level"; + + uses radio-common-config; + } + + container state { + config false; + description + "Operational state data at the global radio level"; + + uses radio-common-config; + uses radio-common-state; + uses radio-counters-state; + } + uses neighbor-bssid-top; + } + } + } + uses radio-top; +} -- cgit 1.2.3-korg