WlanInformationAPI_TypesAndValues.ttcn 38.2 KB
Newer Older
YannGarcia's avatar
YannGarcia committed
/**
 *  @author     ETSI / TTF T012
 *  @version    $Url$
 *              $Id$
 *  @desc       Types ANd Values for ETSI GS MEC 028 V2.1.1 (2020-06)
 *  @copyright   ETSI Copyright Notification
 *               No part may be reproduced except as authorized by written permission.
 *               The copyright and the foregoing restriction extend to reproduction in all media.
 *               All rights reserved.
 */
module WlanInformationAPI_TypesAndValues {

  // JSON
  import from JSON all;

  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  /**
   * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 Seconds;

  /**
   * @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 NanoSeconds;

  /**
   * @desc Time stamp description
   * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   * @see MEC030 Clause 6.5.2 Type: TimeStamp
   */
  type record TimeStamp {
    Seconds seconds,
    NanoSeconds nanoSeconds
  }


  type record of JSON.String SsidList;
  type record of JSON.String IpAddressList;
  /**
   * @desc Identifiers determining a specific Access Point
   * @member macId Unique Identifier assigned to an Access Point
   * @member ssid Service Set Identifier to identify logical networks including Basic Service Set and Extended Service Set
   * @member ipAddress IPv4 or IPv6 address allocated for the Access Point
   * @see ETSI GS MEC 028 Clause 6.5.3 Type: ApIdentity
   */
  type record ApIdentity {
    JSON.String macId,
    SsidList ssid optional,
    IpAddressList ipAddress optional
  }

  /**
   * @desc information on HT capabilities of an Access Point
   * @member htCapabilityInfo HT Capability Information
   * @member ampduParameters A-MPDU parameters
   * @member supportedMcsSet Supported MCS set
   * @member htExtendedCap Extended HT Capabilities
   * @member txBeamFormCap Transmit Beamforming Capabilities
   * @member aselCap ASEL capabilities
   * @see ETSI GS MEC 028 Clause 6.5.14 Type: HtCapabilities
   */
YannGarcia's avatar
YannGarcia committed
  type integer  UInt128 with {variant "unsigned 128 bit"};
YannGarcia's avatar
YannGarcia committed
  type record HtCapabilities {
    UInt16 htCapabilityInfo,
    UInt8 ampduParameters,
    UInt128 supportedMcsSet,
    UInt16 htExtendedCap,
    UInt32 txBeamFormCap,
    UInt8 aselCap
YannGarcia's avatar
YannGarcia committed
  }

  /**
   * @desc Information on VHT Capabilities of an Access Point
   * @member vhtCapInfo VHT capabilities Info
   * @member vhtMcsNss Supported VHT-MCS and NSS Set
   * @see ETSI GS MEC 028 Clause 6.5.15 Type: VhtCapabilities
   */
  type record VhtCapabilities {
    UInt32 vhtCapInfo,
    UInt64 vhtMcsNss
  }

  /**
   * @desc Information on VHT Capabilities of an Access Point
   * @member heMacCapInfo MAC capabilities of an Access Point
   * @member hePhyCapinfo PHY capabilities of an Access Point
   * @member supportedHeMcsNssSet Supported MCS and NSS Set
   * @see ETSI GS MEC 028 Clause 6.5.16 Type: HeCapabilities
   */
  type record HeCapabilities {
    UInt8 heMacCapInfo,
    UInt8 hePhyCapinfo,
YannGarcia's avatar
YannGarcia committed
    UInt8 supportedHeMcsNssSet
YannGarcia's avatar
YannGarcia committed
  }

  /**
   * @desc Information on DMG Capabilities of an Access Point
   * @member dmgStaCapInfo DMG station capabilities information
   * @member dmgApOrPcpCapInfo DMG AP or PCP capabilities information
   * @member dmgStaBeamTrackTimeLimit DMG station beam tracking time limit
   * @member extScMcsCap  Extended SC MCS capabilities
   * @member maxNrBasicAmsduSubframes Number of basic A-MSDU subframes in A-MSDU
   * @member maxNrShortAmsduSubframes Number of short A-MSDU subframes in A-MSDU
   * @see ETSI GS MEC 028 Clause 6.5.17 Type: DmgCapabilities
   */
  type record DmgCapabilities {
    UInt64 dmgStaCapInfo,
    UInt16 dmgApOrPcpCapInfo,
    UInt16 dmgStaBeamTrackTimeLimit,
    UInt8 extScMcsCap,
    UInt8 maxNrBasicAmsduSubframes,
YannGarcia's avatar
YannGarcia committed
    UInt8 maxNrShortAmsduSubframes
YannGarcia's avatar
YannGarcia committed
  }

  /**
   * @desc Information on EDMG Capabilities of an Access Point
   * @member ampduParameters A-MPDU parameters
   * @member trnParameters Training parameters
   * @member supportedMcs Supported MCS
   * @member reserved
   * @see ETSI GS MEC 028 Clause 6.5.18 Type: EdmgCapabilities
   */
  type record EdmgCapabilities {
    UInt8 ampduParameters,
    UInt16 trnParameters,
YannGarcia's avatar
YannGarcia committed
    UInt32 supportedMcs
YannGarcia's avatar
YannGarcia committed

  /**
   * @desc WLAN capabilities of the Access Point
   * @member ht Information about Access Point HT capabilities
   * @member vht Information about Access Point VHT capabilities
   * @member he Information about Access Point HE capabilities
   * @member dmg Information about Access Point DMG capabilities
   * @member edmg Information about Access Point EDMG capabilities
   * @see ETSI GS MEC 028 Clause 6.5.4 Type: WlanCapabilities
   */
YannGarcia's avatar
YannGarcia committed
  type record WlanCapabilities {
YannGarcia's avatar
YannGarcia committed
    HtCapabilities ht optional,
    VhtCapabilities vht optional,
    HeCapabilities he optional,
    DmgCapabilities dmg optional,
    EdmgCapabilities edmg optional
YannGarcia's avatar
YannGarcia committed
  }

  /**
   * @desc Metrics related to the backhaul characteristics of an Access Point as defined for WAN metrics
   * @member wanInfo Info about WAN link status, link symmetricity and capacity currently used
   * @member downlinkSpeed  4-octet positive integer whose value is an estimate of the WAN Backhaul link current downlink speed in kilobits per second
   * @member uplinkSpeed 4-octet positive integer whose value is an estimate of the WAN Backhaul link's current uplink speed in kilobits per second
   * @member downlinkLoad 1-octet positive integer representing the current percentage loading of the downlink WAN connection
   * @member uplinkLoad  1-octet positive integer representing the current percentage loading of the uplink WAN connection
   * @member lmd The LMD (Load Measurement Duration)
   * @see ETSI GS MEC 028 Clause 6.5.6 Type: WanMetrics
   */
  type record WanMetrics {
    UInt8 wanInfo,
    UInt32 downlinkSpeed,
    UInt32 uplinkSpeed,
    UInt8 downlinkLoad,
    UInt8 uplinkLoad,
    UInt16 lmd
  }

  /**
   * @desc Load of a BSS
   * @member staCount Indicates the total number of STAs currently associated with this BSS
   * @member channelUtilization The percentage of time
   * @member availAdmCap Available Admission Capacity that specifies the remaining amount of medium time available via explicit admission control, in units of 32 μs/s
   * @see ETSI GS MEC 028 Clause 6.5.7 Type: BssLoad
   */
  type record BssLoad {
    UInt16 staCount,
    UInt8 channelUtilization,
    UInt16 availAdmCap
  }

  /**
   * @desc Extended BSS Load information
   * @member muMimoStaCount Indicates the total number of STAs currently associated with this BSS that have a 1 in the MU Beamformee Capable field of their VHT Capabilities element
   * @member spatStreamUnderUtil The percentage of time that the AP has underutilized spatial domain resources for given busy time of the medium
   * @member obsSec20MhzUtil Observable loading on each of the secondary 20 MHz channel
   * @member obsSec40MhzUtil Observable loading on each of the secondary 40 MHz channel
   * @member obsSec80MhzUtil Observable loading on each of the secondary 80 MHz channel
   * @see ETSI GS MEC 028 Clause 6.5.8 Type: ExtBssLoad
   */
  type record ExtBssLoad {
    UInt16 muMimoStaCount,
    UInt8 spatStreamUnderUtil,
    UInt8 obsSec20MhzUtil,
    UInt8 obsSec40MhzUtil,
    UInt8 obsSec80MhzUtil
  }

  /**
   * @desc Information Geospatial Location of an Access Point
   * @member latUncertainty The uncertainty for Latitude information
   * @member The latitude value of location
   * @member longUncertainty The uncertainty for Longitude information
   * @member long The longitude value of location
   * @member altitudeType The type description for altitude
   * @member altitudeUncertainty The uncertainty for altitude information
   * @member altitude The altitude value of location
   * @member datum The datum value to express how coordinates are organized and related to real world
   * @see ETSI GS MEC 028 Clause 6.5.19 Type: GeoLocation
   */
  type record GeoLocation {
    UInt8 latUncertainty,
    UInt64 lat,
    UInt8 longUncertainty,
    UInt64 long,
    UInt8 altitudeType optional,
    UInt8 altitudeUncertainty optional,
    UInt32 altitude optional,
    UInt8 datum
  }

  /**
   * @desc Iinformation on Civic Location of an Access Point
   * @member country The two-letter ISO 3166 [i.9] country code in capital ASCII letters, e.g. DE or US, as per ISO 3166
   * @member ca0 Language
   * @member ca0 Language
   * @member ca1 National subdivisions (state, canton, region,province, prefecture)
   * @member ca2 County, parish, gun (JP), district (IN)
   * @member ca3 City, township, shi (JP)
   * @member ca4 City division, borough, city district, ward, chou (JP)
   * @member ca5 Neighborhood, block
   * @member ca6 Group of streets below the neighborhood level
   * @member ca16 Leading street direction
   * @member ca17 Trailing street suffix
   * @member ca18 Street suffix or type
   * @member ca19 House number
   * @member ca20 House number suffix
   * @member ca21 Landmark of vanity address
   * @member ca22 Additional location information
   * @member ca23 Name (residence and office occupant)
   * @member ca24 Postal/zip code
   * @member ca25 Building (structure)
   * @member ca26 Unit (apartment/suite)
   * @member ca27 Floor
   * @member ca28 Room
   * @member ca29 Type of place
   * @member ca30 Postal community name
   * @member ca31 Post office box
   * @member ca32 Additional code
   * @member ca33 Seat (desk.cubicle, workstation)
   * @member ca34 Primary road name
   * @member ca35 Road section
   * @member ca36 Branch road name
   * @member ca37 Sub-branch road name
   * @member ca38 Street name pre-modifier
   * @member ca39 Street name post-modifier
   * @member ca128 Script
   * @see ETSI GS MEC 028 Clause 6.5.20 Type: CivicLocation
   */
  type record CivicLocation {
    JSON.String country,
    JSON.String ca0 optional,
    JSON.String ca1 optional,
    JSON.String ca2 optional,
    JSON.String ca3 optional,
    JSON.String ca4 optional,
    JSON.String ca5 optional,
    JSON.String ca6 optional,
    JSON.String ca16 optional,
    JSON.String ca17 optional,
    JSON.String ca18 optional,
    JSON.String ca19 optional,
    JSON.String ca20 optional,
    JSON.String ca21 optional,
    JSON.String ca22 optional,
    JSON.String ca23 optional,
    JSON.String ca24 optional,
    JSON.String ca25 optional,
    JSON.String ca26 optional,
    JSON.String ca27 optional,
    JSON.String ca28 optional,
    JSON.String ca29 optional,
    JSON.String ca30 optional,
    JSON.String ca31 optional,
    JSON.String ca32 optional,
    JSON.String ca33 optional,
    JSON.String ca34 optional,
    JSON.String ca35 optional,
    JSON.String ca36 optional,
    JSON.String ca37 optional,
    JSON.String ca38 optional,
    JSON.String ca39 optional,
    JSON.String ca128 optional
  }

  /**
   * @desc Location information of the Access Point
   * @member geolocation Geospatial Location of the AP
   * @member civicLocation Civic Location of the AP
   * @see ETSI GS MEC 028 Clause 6.5.9 Type: ApLocation
   */
  type record ApLocation {
    GeoLocation geolocation optional,
    CivicLocation civicLocation optional
  }

  /**
   * @desc Identifiers determining a specific client station
   * @member macId Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment
   * @member ssid Service Set Identifier to identify logical networks
   * @member aid Number which identifies a particular association between a station and an Access Point
   * @member ipAddress IPv4 or IPv6 address allocated for the station
   * @see ETSI GS MEC 028 Clause 6.5.11 Type: StaIdentity
   */
  type record StaIdentity {
    JSON.String macId,
    JSON.String ssid optional,
    JSON.String aid optional,
    JSON.String ipAddress optional
  }
  type record of StaIdentity StaIdentities;

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Information about neighbor Access Points
   * @member staId Identifier to uniquely specify the station whose information is exposed within this report
   * @member measurementId Measurement ID of the Measurement configuration applied to this Neighbor Report
   * @member bssid BSS Id of the Access Point that is being reported
   * @member bssidInfo Additional information related to Access Point that is being reported
   * @member operatingClass The channel set of the AP indicated by this BSSID
   * @member channel The channel currently used by this Access Point
   * @member phyType PHY type of the AP indicated by this BSSID. It is an integer value coded according to the value of the dot11PHYType
   * @member bssTransitionCandidatePreference Relative value indicating the preferred ordering for this BSS as a transition candidate for roaming
   * @see ETSI GS MEC 028 Clause 6.5.10 Type: NeighborReport
   */
  type record NeighborReportItem {
    StaIdentity staId,
    JSON.String measurementId,
    JSON.String bssid,
    UInt32 bssidInfo,
    UInt8 operatingClass,
    UInt8 channel,
    UInt8 phyType,
    UInt8 bssTransitionCandidatePreference optional
  }
  type record of NeighborReportItem NeighborReport;

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Information for the Access Point that the client station is associated to
   * @member macId Unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment
   * @member ssid Service Set Identifier to identify logical networks
   * @member assocId Unique number which identifies a particular association between the  station and Access Point
   * @member ipAddress IPv4 or IPv6 address allocated for the Access Point
   * @see ETSI GS MEC 028 Clause 6.5.12 Type: ApAssociated
   */
  type record ApAssociated {
    JSON.String macId,
    JSON.String ssid optional,
    JSON.String assocId optional,
    JSON.String ipAddress optional
  }

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Optionally reported reason for STA Statistics Group Identities 0 or 1 (STA Counters) in the STA Statistics Optional subelements
   * @member failed dot11Failed
   * @member fcsError dot11FCSError
   * @member multipleRetry dot11MultipleRetry
   * @member frameDuplicate dot11FrameDuplicate
   * @member rtsFailure dot11RTSFailure
   * @member ackFailure dot11AckFailure
   * @member retry dot11Retry
   * @see ETSI GS MEC 028 Clause 6.5.37	Type: ReportingReasonStaCounters
   */
  type record ReportingReasonStaCounters {
    JSON.Bool failed,
    JSON.Bool fcsError,
    JSON.Bool multipleRetry,
    JSON.Bool frameDuplicate,
    JSON.Bool rtsFailure,
    JSON.Bool ackFailure,
    JSON.Bool retry
  }

  /**
   * @desc Optionally reported reason for STA Statistics Group Identities 2 to 9 (QoS STA Counters) in the STA Statistics
   * @member qosFailed dot11QoSFailed
   * @member qosRetry dot11QoSRetry
   * @member qosMultipleRetry dot11QoSMultipleRetry
   * @member qosFrameDuplicate dot11QoSFrameDuplicate
   * @member qosRtsFailure dot11QoSRTSFailure
   * @member qosAckFailure dot11QoSAckFailure
   * @member qosDiscarded dot11QoSDiscarded
   * @see ETSI GS MEC 028 Clause 6.5.38	Type: ReportingReasonQoSCounters
   */
  type record ReportingReasonQoSCounters {
    JSON.Bool qosFailed,
    JSON.Bool qosRetry,
    JSON.Bool qosMultipleRetry,
    JSON.Bool qosFrameDuplicate,
    JSON.Bool qosRtsFailure,
    JSON.Bool qosAckFailure,
    JSON.Bool qosDiscarded
  }

  /**
   * @desc Channel Load report from a station
   * @member staId Identifier to uniquely specify the station whose information is exposed within this report
   * @member measurementId Measurement ID of the Measurement configuration applied to this Channel Load Report
   * @member operatingClass Operating Class field indicates an operating class value
   * @member channel Channel number indicates the channel number for which the measurement report applies
   * @member measurementDuration Duration over which the Channel Load report was measured, in units of TUs of 1024 µs
   * @member channelLoad Proportion of measurement duration for which the measuring STA determined the channel to be busy, as a percentage of time, linearl scaled with 255 representing 100%
   * @see ETSI GS MEC 028 Clause 6.5.39	Type: ChannelLoad
   */
  type record ChannelLoadItem {
    StaIdentity staId	optional,
    JSON.String measurementId,
    UInt8 operatingClass,
    UInt8 channel,
    UInt8 measurementDuration,
    UInt8 channelLoad
  }
  type record of ChannelLoadItem ChannelLoad;

  /**
   * @desc The load of a Overlapping BSS
   * @member allocatedTrafficSelfMean Mean of allocated traffic from this AP (BSS) in units of 32 µs per second
   * @member allocatedTrafficSelfStdDev Standard deviation from the mean of allocation traffic from this BSS in units of 32 µs per second
   * @member Mean of the sum of allocated traffic from other APs on the overlapping channel in unit of 32 µs per second
   * @member Standard deviation from the mean of the sum of allocated traffic from other APs on the overlapping channel in unit of 32 µs per second
   * @member overlap Indicates the number of other APs that are sharing the same channel as the reporting AP
   * @see ETSI GS MEC 028 Clause 6.5.40	Type: OBssLoad
   */
  type record OBssLoad {
    UInt16 allocatedTrafficSelfMean,
    UInt16 allocatedTrafficSelfStdDev optional,
    UInt16 allocatedTrafficShareMean,
    UInt16 allocatedTrafficShareStdDev optional,
    UInt8 overlap	optional
  }

  /**
   * @desc
   * @member ssid Contains an SSID element
   * @member bssid BSSID of the neighbor AP which information is intended to obtain
   * @see ETSI GS MEC 028 Clause 6.5.32	Type: NeighborReportConfig
   */
  type record NeighborReportConfig {
    JSON.String ssid optional,
    JSON.String bssid optional
  }

  /**
   * @desc The information required to define client station measurements available from the WLAN Access Information Service
   * @member measurementDuration Duration of the measurement in time units (TUs) of 1024 µs
   * @member randomInterval Random interval to be used for starting the measurement in TUs of 1024 µs
   * @member channelLoadConf Configuration related to the Channel Load
   * @member beaconRequestConf Configuration related to Beacon Request
   * @member staStatisticsConf Configuration related to the statistics provided by STAs
   * @member neighborReportConf Configuration related to Neighbor Reports
   * @see ETSI GS MEC 028 Clause 6.5.41	Type: MeasurementInfo
   */
  type record MeasurementInfo {
    UInt16 measurementDuration optional,
    UInt16 randomInterval	optional,
    ChannelLoadConfig channelLoadConf	optional,
    BeaconRequestConfig beaconRequestConf optional,
    StaStatisticsConfig staStatisticsConf optional,
    NeighborReportConfig neighborReportConf optional
  }

  /**
   * @desc STA Statistics Group Data for Group Identity = 0
   * @member transmittedFragmentCount	dot11TransmittedFragmentCount counter
   * @member groupTransmittedFrameCount	dot11GroupTransmittedFrameCount counter
   * @member failedCount dot11FailedCount counter
   * @member receivedFragmentCountdot11ReceivedFragmentCount counter
   * @member groupReceivedFrameCountdot11GroupReceivedFrameCount counter
   * @member fcsErrorCount dot11FCSErrorCount counter
   * @member transmittedFrameCount dot11TransmittedFrameCount counter
   * @member reportingReasonStaCounters	Optionally reported reason for STA Statistics Group 0
   * @see ETSI GS MEC 028 Clause 6.5.34	Type: StaStatisticsGroupZeroData
   */
  type record StaStatisticsGroupZeroData {
    UInt32 transmittedFragmentCount,
    UInt32 groupTransmittedFrameCount,
    UInt32 failedCount,
    UInt32 receivedFragmentCount,
    UInt32 groupReceivedFrameCount,
    UInt32 fcsErrorCount,
    UInt32 transmittedFrameCount,
    ReportingReasonStaCounters reportingReasonStaCounters	optional
  }

  /**
   * @desc STA Statistics Group Data for Group Identity = 1
   * @member retryCount dot11RetryCount counter
   * @member multipleRetryCount dot11MultipleRetryCount counter
   * @member frameDuplicateCount dot11FrameDuplicateCount counter
   * @member rtsSuccessCount dot11RTSSuccessCount counter
   * @member rtsFailureCount dot11RTSFailureCount counter
   * @member ackFailureCount dot11AckFailureCount counter
   * @member reportingReasonStaCounters Optionally reported reason for STA Statistics Group 1
   * @see ETSI GS MEC 028 Clause 6.5.35-1: Attributes of the StaStatisticsGroupOneData
   */
  type record StaStatisticsGroupOneData {
    UInt32 retryCount,
    UInt32 multipleRetryCount,
    UInt32 frameDuplicateCount,
    UInt32 rtsSuccessCount,
    UInt32 rtsFailureCount,
    UInt32 ackFailureCount,
    ReportingReasonStaCounters reportingReasonStaCounters	optional
  }


  /**
   * @desc STA Statistics Group Data for Group Identity = 2 through 9
   * @member qosTransmittedFragmentCount dot11QosTransmittedFragmentCount counter
   * @member qosFailedCount dot11QosFailedCount counter
   * @member qosRetryCount dot11QosRetryCount counter
   * @member qosMultipleRetryCount dot11QosMultipleRetryCount counter
   * @member qosFrameDuplicateCount dot11QosFrameDuplicateCount counter
   * @member qosRTSSuccessCount dot11QosRTSSuccessCount counter
   * @member qosRTSFailureCount dot11QosRTSFailureCount counter
   * @member qosAckFailureCount dot11QosAckFailureCount counter
   * @member qosReceivedFragmentCount dot11QosReceivedFragmentCount counter
   * @member qosTransmittedFrameCount dot11QosTransmittedFrameCount counter
   * @member qosDiscardedFrameCount dot11QosDiscardedFrameCount counter
   * @member qosMPDUsReceivedCount dot11QosMPDUsReceivedCount counter
   * @member qosRetriesReceivedCount dot11QosRetriesReceivedCount counter
   * @member reportingReasonQoSCounters Optionally reported reason for STA Statistics Groups 2 to 9
   * @see ETSI GS MEC 028 Clause 6.5.36-1: Attributes of the StaStatisticsGroup2to9Data
   */
  type record StaStatisticsGroup2to9Data {
    UInt32 qosTransmittedFragmentCount,
    UInt32 qosFailedCount,
    UInt32 qosRetryCount,
    UInt32 qosMultipleRetryCount,
    UInt32 qosFrameDuplicateCount,
    UInt32 qosRTSSuccessCount,
    UInt32 qosRTSFailureCount,
    UInt32 qosAckFailureCount,
    UInt32 qosReceivedFragmentCount,
    UInt32 qosTransmittedFrameCount,
    UInt32 qosDiscardedFrameCount,
    UInt32 qosMPDUsReceivedCount,
    UInt32 qosRetriesReceivedCount,
    ReportingReasonQoSCounters reportingReasonQoSCounters optional
  }

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Information statistics of the client station
YannGarcia's avatar
YannGarcia committed
   * @member staId Identifier to uniquely specify the station whose information is exposed within this report
   * @member measurementId Measurement ID of the Measurement configuration applied to this STA Statistics Report
   * @member measurementDuration Duration over which the Statistics Group Data was measured in time units of 1024 µs
YannGarcia's avatar
YannGarcia committed
   * @member groupIdentity Indicates the requested statistics group describing the Statistics Group Data
YannGarcia's avatar
YannGarcia committed
   * @member groupZeroData STA Statistics Data for Group Identity = 0
   * @member groupOneData STA Statistics Data for Group Identity = 1
   * @member group2to9Data STA Statistics Data for Group Identity = 2 through 9
YannGarcia's avatar
YannGarcia committed
   * @see ETSI GS MEC 028 Clause 6.5.13 Type: StaStatistics
   */
  type record StaStatistics {
YannGarcia's avatar
YannGarcia committed
    StaIdentity staId optional,
    JSON.String measurementId,
    JSON.String measurementDuration,
YannGarcia's avatar
YannGarcia committed
    UInt8 groupIdentity,
YannGarcia's avatar
YannGarcia committed
    StaStatisticsGroupZeroData groupZeroData optional,
    StaStatisticsGroupOneData groupOneData optional,
    StaStatisticsGroup2to9Data group2to9Data optional
YannGarcia's avatar
YannGarcia committed
  }
  type UInt8 StatisticsGroupData; // Note defined, see ETSI GS MEC 028 Clause 6.5.13 Type: StaStatistics

  /**
   * @desc Information on the Received Signal Strength Indicator (RSSI) of a client station
   * @member rssi The Received Signal Strength Indicator from a station
   * @see ETSI GS MEC 028 Clause 6.5.21 Type: Rssi
   */
  type record Rssi {
    UInt8 rssi
  }

  /**
   * @desc Data rates of a client station as defined in Data Elements Specification v1.0
   * @member staId Identifier(s) to uniquely specify the client station(s) associated
   * @member staLastDataDownlinkRate The data transmit rate in kbps that was most recently used for transmission of data PPDUs from the access point to the station
   * @member staLastDataUplinkRate The data transmit rate in Kbps that was most recently used for transmission of data PPDUs from the associated station to the access point
   * @see ETSI GS MEC 028 Clause 6.5.22 Type: StaDataRate
   */
  type record StaDataRate {
    StaIdentity staId optional,
    UInt32 staLastDataDownlinkRate optional,
    UInt32 staLastDataUplinkRate optional
  }
  type record of StaDataRate StaDataRates;

  /**
   * @desc Type of link
   * @member href URI referring to a resource
   * @see ETSI GS MEC 028 Clause 6.5.23 Type: LinkType
   */
  type record LinkType {
    JSON.AnyURI href
  }

  type record LinkTypes {
    LinkType self_
  } with {
    variant (self_) "name as 'self'";
  }

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc This configuration applies to BssLoad measurement
   * @member apId Identifier(s) to uniquely specify the target Access Point
   * @member cChannelId Channel number which load is reported
   * @member channelLoad Channel load as per IEEE 802.11-2012
   * @see ETSI GS MEC 028 Clause 6.5.24 Type: ChannelLoadConfig
   */
  type record ChannelLoadConfig {
    ApIdentity apId,
    UInt32 cChannelId,
    UInt32 channelLoad
  }

  /**
   * @desc
   * @member staId Identifier to uniquely specify the station whose information is exposed within this data type
   * @member channelId Channel number to scan
   * @member measurementMode 
   * @member bssId The BSSID field indicates the BSSID of the BSS(s) for which a beacon report is requested. When requesting beacon reports for all BSSs on the channel, the BSSID field contains the wildcard BSSID
   * @member ssId The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is requested
   * @member reportingCondition As in table T9-89 of IEEE 802.11-2012
   * @see ETSI GS MEC 028 Clause 6.5.25 Type: BeaconRequestConfig
   */
  type record BeaconRequestConfig {
    StaIdentity staId,
    UInt32 channelId,
    UInt32 measurementMode,
    BssIds bssId,
    SsIds ssId optional,
    UInt32 reportingCondition
  }
  type record of JSON.String BssIds;
  type record of JSON.String SsIds;

  /**
   * @desc 
   * @member staId Identifier to uniquely specify the station whose information is exposed within this data type
   * @member groupIdentity As per table T 9-114 of IEEE 802.11-2012
   * @member triggeredReport Yes, use triggered report
   * @member triggerTimeout The Trigger Timeout field contains a value in units of 100 TUs during which a measuring STA does not generate further triggered STA Statistics Reports after a trigger condition has been met
   * @member triggerCondition As per Figure 9-161 of IEEE 802.11. This bitmap defines what are the metrics returned by the STA Statistics Report
   * @see ETSI GS MEC 028 Clause 6.5.26 Type: StaStatisticsConfig
   */
  type record StaStatisticsConfig {
    StaIdentity staId,
    UInt32 groupIdentity,
    boolean triggeredReport,
    UInt32 triggerTimeout,
    UInt16 triggerCondition
  }

  /**
   * @desc 
   * @member staId Identifier to uniquely specify the station whose information is exposed within this data type
   * @member measurementId Measurement ID of the Measurement configuration applied to this Beacon Report
   * @member bssId The BSSID field indicates the BSSID of the BSS(s) for which a beacon report has been received
   * @member ssId The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is received
   * @see ETSI GS MEC 028 Clause 6.5.27 Type: BeaconReport
   */
YannGarcia's avatar
YannGarcia committed
  type record BeaconReportItem {
YannGarcia's avatar
YannGarcia committed
    StaIdentity staId,
    JSON.String measurementId,
    UInt32 channelId,
    BssIds bssId,
    SsIds ssId optional
  }
YannGarcia's avatar
YannGarcia committed
  type record of BeaconReportItem BeaconReport;
YannGarcia's avatar
YannGarcia committed

  /**
   * @desc Information on Access Points available from the WLAN Access Information Service
   * @member timeStamp TimeStamp
   * @member apId Identifier(s) to uniquely specify the Access Point whose information is exposed within this data type
   * @member channel Channel configured for the Access Point
   * @member wlanCap WLAN capabilities of Access Point
   * @member wanMetrics WAN Metrics element provides information about the WAN link connecting an IEEE 802.11 Access Node and the Internet
   * @member bssLoad BSS Load attribute contains information on the current STA population and traffic levels in the BSS
   * @member extBssLoad Extended BSS Load attribute contains more detailed information on the current STA population and traffic levels in the BSS
   * @member apLocation The location on the Access Point
   * @see ETSI GS MEC 028 Clause 6.2.2 Type: ApInfo
   */
  type record ApInfo {
    TimeStamp timeStamp optional,
    ApIdentity apId,
    UInt32 channel optional,
YannGarcia's avatar
YannGarcia committed
    WlanCapabilities wlanCap optional,
    WanMetrics wanMetrics optional,
YannGarcia's avatar
YannGarcia committed
    BssLoad bssLoad optional,
    ExtBssLoad extBssLoad optional,
YannGarcia's avatar
YannGarcia committed
    OBssLoad oBssLoad optional,
    ApLocation apLocation optional
  type record of ApInfo ApInfoList;
YannGarcia's avatar
YannGarcia committed

  /**
   * @desc Information on wireless stations available from the WLAN Access Information Service
   * @member timeStamp TimeStamp
YannGarcia's avatar
YannGarcia committed
   * @member staId Identifier(s) to uniquely specify station whose information is exposed within this data type
YannGarcia's avatar
YannGarcia committed
   * @member channel Channel configured for the Access Point
   * @member apAssociated Information about the Access Point that this Client Station is associated to
   * @member rssi Receive Signal Strength Indicator
   * @member staDataRate Station Data Rate
   * @member staStatistics Statistics as defined in IEEE 802.11-2016 for the client station collected over measurement duration
YannGarcia's avatar
YannGarcia committed
   * @member beaconReport Beacon Report as defined in Wi-Fi Agile Multiband Specification
   * @member neighborReport Information about neighbor Access Points seen by the station
   * @member channelLoad Channel Load reports as seen by the station
YannGarcia's avatar
YannGarcia committed
   * @see ETSI GS MEC 028 Clause 6.2.3 Type: StaInfo
   */
  type record StaInfo {
    TimeStamp timeStamp optional,
YannGarcia's avatar
YannGarcia committed
    StaIdentity staId,
YannGarcia's avatar
YannGarcia committed
    UInt32 channel optional,
    ApAssociated apAssociated optional,
    Rssi rssi optional,
    StaDataRate staDataRate optional,
    StaStatistics staStatistics optional,
YannGarcia's avatar
YannGarcia committed
    BeaconReport beaconReport optional,
    NeighborReport neighborReport optional,
    ChannelLoad channelLoad	optional

  type record of StaInfo StaInfoList;
YannGarcia's avatar
YannGarcia committed

  /**
   * @desc Different measurements configuration available from the WLAN Access Information Service
YannGarcia's avatar
YannGarcia committed
   * @member _links Hyperlink related to the resource
   * @member staId Identifier(s) to uniquely specify the target client station(s) for the measurement configuration
YannGarcia's avatar
YannGarcia committed
   * @member measurementId Identifier of this measurement configuration
YannGarcia's avatar
YannGarcia committed
   * @member measurementInfo Information used to configure this measurement
YannGarcia's avatar
YannGarcia committed
   * @see ETSI GS MEC 028 Clause 6.2.4 Type: MeasurementConfig
   */
  type record MeasurementConfig {
YannGarcia's avatar
YannGarcia committed
    LinkTypes links optional,
    StaIdentities staId,
YannGarcia's avatar
YannGarcia committed
    JSON.String measurementId,
YannGarcia's avatar
YannGarcia committed
    MeasurementInfo measurementInfo
  } with {
    variant (links) "name as '_links'";
  }

  type record MeasurementConfig_MeasurementConfigLinkList {
    JSON.AnyURI href,
    JSON.String measurementId
  }

  /**
   * @desc The different measurement configurations available from the WLAN Access Information Service
   * @member _links Hyperlink related to the resource
   * @member measurementConfig 
   * @see ETSI GS MEC 028 Clause 6.2.5	Type: MeasurementConfigLinkList
   */
  type record MeasurementConfigLinkList {
    LinkTypes links optional,
    MeasurementConfig_MeasurementConfigLinkList measurementConfig
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc Set for trigger-based event notification reporting
   * @member trigger_ Trigger for the notification
   * @member threshold Number of connected stations threshold for trigger-based event reporting
   * @see ETSI GS MEC 028 Clause 6.3.2	Type: AssocStaSubscription
   */
  type record NotificationEvent {
    UInt8 trigger_,
    UInt8 threshold
  } with {
    variant (trigger_) "name as 'trigger'";
YannGarcia's avatar
YannGarcia committed
  }

  /**
   * @desc Subscription to get updates on client stations that are associated to an Access Point
   * @member subscriptionType Shall be set to "AssocStaSubscription"
   * @member callbackReference URI selected by the service consumer to receive notifications on the subscribed WLAN information
YannGarcia's avatar
YannGarcia committed
   * @member requestTestNotification Set to TRUE by the service consumer to request a test notification on the callbackReference URI to determine if it is reachable by the WAIS for notifications
   * @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the WAIS and the service consumer for notifications, either in place of the callbackReference URI or if it is not reachable via the test notification
YannGarcia's avatar
YannGarcia committed
   * @member _links Hyperlink related to the resource
   * @member apId Identifier(s) to uniquely specify the target Access Point for the subscription
YannGarcia's avatar
YannGarcia committed
   * @member notificationPeriod Set for periodic notification reporting
   * @member notificationEvent Set for trigger-based event notification reporting
YannGarcia's avatar
YannGarcia committed
   * @member expiryDeadline The expiration time of the subscription determined by the WLAN Access Information Service
   * @see ETSI GS MEC 028 Clause 6.3.2 Type: AssocStaSubscription
   */
  type record AssocStaSubscription {
    JSON.String subscriptionType,
    JSON.AnyURI callbackReference,
YannGarcia's avatar
YannGarcia committed
    JSON.Bool requestTestNotification optional,
    WebsockNotifConfig websockNotifConfig optional,
    LinkTypes links optional,
YannGarcia's avatar
YannGarcia committed
    ApIdentity apId,
YannGarcia's avatar
YannGarcia committed
    UInt8 notificationPeriod optional,
    NotificationEvent notificationEvent optional,
YannGarcia's avatar
YannGarcia committed
    TimeStamp expiryDeadline optional
  } with {
    variant (links) "name as '_links'";
  }
  type record of AssocStaSubscription AssocStaSubscriptionList;
YannGarcia's avatar
YannGarcia committed

  /**
   * @desc Subscription to get updates on the Data Rate of targeted client station(s)
   * @member subscriptionType Shall be set to "AssocStaSubscription"
   * @member callbackReference URI selected by the service consumer to receive notifications on the subscribed WLAN information
YannGarcia's avatar
YannGarcia committed
   * @member requestTestNotification Set to TRUE by the service consumer to request a test notification on the callbackReference URI to determine if it is reachable by the WAIS for notifications
   * @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the WAIS and the service consumer for notifications, either in place of the callbackReference URI or if it is not reachable via the test notification
YannGarcia's avatar
YannGarcia committed
   * @member _links Hyperlink related to the resource
   * @member staId Identifier(s) to uniquely specify the target client station(s) for the subscription
YannGarcia's avatar
YannGarcia committed
   * @member notificationPeriod Set for periodic notification reporting
   * @member notificationEvent Set for trigger-based event notification reporting
YannGarcia's avatar
YannGarcia committed
   * @member expiryDeadline The expiration time of the subscription determined by the WLAN Access Information Service
   * @see ETSI GS MEC 028 Clause 6.3.3 Type: StaDataRateSubscription
   */
  type record StaDataRateSubscription {
    JSON.String subscriptionType,
    JSON.AnyURI callbackReference,
YannGarcia's avatar
YannGarcia committed
    JSON.Bool requestTestNotification optional,
    WebsockNotifConfig websockNotifConfig optional,
    LinkTypes links optional,
YannGarcia's avatar
YannGarcia committed
    StaIdentities staId,
YannGarcia's avatar
YannGarcia committed
    UInt8 notificationPeriod optional,
    NotificationEvent notificationEvent optional,
YannGarcia's avatar
YannGarcia committed
    TimeStamp expiryDeadline optional
  } with {
    variant (links) "name as '_links'";
  }
  type record of StaDataRateSubscription StaDataRateSubscriptionList;

  /**
YannGarcia's avatar
YannGarcia committed
   * @desc 
   * @member href The URI referring to the subscription
   * @member subscriptionType Type of the subscription
   * @see ETSI GS MEC 028 Clause 6.3.4  Type: SubscriptionLinkList
   */
  type record SubscriptionItem {
    JSON.AnyURI href,
    JSON.String subscriptionType
  }
  type record of SubscriptionItem Subscription;

  /**
   * @desc List of links related to currently existing subscriptions for the service consumer
   * @member links List of hyperlinks related to the resource
   * @member assocStaSubscription 
YannGarcia's avatar
YannGarcia committed
   * @see ETSI GS MEC 028 Clause 6.3.4	Type: SubscriptionLinkList
   */
  type record SubscriptionLinkList {
    LinkTypes links,
YannGarcia's avatar
YannGarcia committed
    Subscription subscription optional
  } with {
    variant (links) "name as '_links'";
  }
YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Configuration for the delivery of subscription notifications over Websockets
   * @member websocketUri Set by WAIS to indicate to the service consumer the Websocket URI to be used for delivering notifications
   * @member requestWebsocketUri Set to true by the service consumer to indicate that Websocket delivery is requested
   * @see ETSI GS MEC 028 Clause 6.3.6	Type: WebsockNotifConfig
   */
  type record WebsockNotifConfig {
    JSON.AnyURI websocketUri optional,
    JSON.Bool requestWebsocketUri optional
  }

YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Notification from WLAN Access Information Service with regards to client stations associated to the targeted Access Point
   * @member notificationType Shall be set to "AssocStaNotification"
   * @member timeStamp Time stamp
   * @member apId Identifier(s) to uniquely specify the Access Point to which the client stations are associated
   * @member staId  Identifier(s) to uniquely specify the client station(s) associated
   * @see ETSI GS MEC 028 Clause 6.4.2 Type: AssocStaNotification
   */
  type record AssocStaNotification {
    JSON.String notificationType,
    TimeStamp timeStamp optional,
    ApIdentity apId,
    StaIdentities staId optional
  }

  /**
   * @desc Notification from WLAN Information service with regards to Data Rates of the subscribed client stations
YannGarcia's avatar
YannGarcia committed
   * @member notificationType Shall be set to "StaDataRateNotification"
YannGarcia's avatar
YannGarcia committed
   * @member timeStamp Time stamp
   * @member staDataRate Data rates of a client station
   * @see ETSI GS MEC 028 Clause 6.4.3 Type: StaDataRateNotification
   */
  type record StaDataRateNotification {
    JSON.String notificationType,
    TimeStamp timeStamp optional,
    StaDataRates staDataRate optional
  }
YannGarcia's avatar
YannGarcia committed
  /**
   * @desc Notification from WLAN Access Information service with regards to expiry of an existing subscription
   * @member notificationType  Shall be set to "ExpiryNotification"
   * @member links Hyperlink related to the resource
   * @member expiryDeadlineTime stamp
   * @see ETSI GS MEC 028 Clause 6.4.4	Type: ExpiryNotification
   */
  type record ExpiryNotification {
    JSON.String notificationType,
    LinkTypes links,
    TimeStamp expiryDeadline
  } with {
    variant (links) "name as '_links'";
  }

 }
 with {
  encode "JSON"
YannGarcia's avatar
YannGarcia committed
} // End of module WlanInformationAPI_TypesAndValues