WlanInformationAPI_TypesAndValues.ttcn 25.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
   * @member PPE Threshold determines the nominal packet padding value for a HE PPDU
   * @see ETSI GS MEC 028 Clause 6.5.16 Type: HeCapabilities
   */
  type record HeCapabilities {
    UInt8 heMacCapInfo,
    UInt8 hePhyCapinfo,
    UInt8 supportedHeMcsNssSet,
    PpeThresholds ppeThresholds optional
  }
  type UInt8 PpeThresholds; // Type not defined, to be reviewed. See ETSI GS MEC 028 Clause 6.5.16 Type: HeCapabilities

  /**
   * @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
   * @member tddCap TDD capabilities
   * @member sarCap SAR capabilities
   * @see ETSI GS MEC 028 Clause 6.5.17 Type: DmgCapabilities
   */
  type record DmgCapabilities {
    UInt64 dmgStaCapInfo,
    UInt16 dmgApOrPcpCapInfo,
    UInt16 dmgStaBeamTrackTimeLimit,
    UInt8 extScMcsCap,
    UInt8 maxNrBasicAmsduSubframes,
    UInt8 maxNrShortAmsduSubframes,
    UInt16 tddCap,
    UInt8 sarCap
  }

  /**
   * @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,
    UInt32 supportedMcs,
    UInt8 reserved optional
  }
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
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623
  }

  /**
   * @desc Stations that are associated with the Access Point
   * @member macId Unique identifier assigned to a station (as network interface controller) for communications at the data link layer of a network segment
   * @member assocId  Unique number which identifies a particular association between an Access Point and a station
   * @member ipAddress IPv4 or IPv6 address allocated for the station associated with the Access
   * @see ETSI GS MEC 028 Clause 6.5.5 Type: AssociatedStations
   */
  type record AssociatedStations {
    JSON.String macId,
    JSON.String assocId optional,
    JSON.String ipAddress optional
  }

  /**
   * @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 Information about neighbor Access Points
   * @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 optionalSubelements Optional subelements
   * @see ETSI GS MEC 028 Clause 6.5.10 Type: NeighborReport
   */
  type record NeighborReport {
    JSON.String bssid,
    UInt32 bssidInfo,
    UInt8 operatingClass,
    UInt8 channel,
    UInt8 phyType,
    OptionalSubelements optionalSubelements optional
  }
  type record of UInt8 OptionalSubelements; // Not defined, see ETSI GS MEC 028 Clause 6.5.10 Type: NeighborReport, to be reviewed

  /**
   * @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;

  /**
   * @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
  }

  /**
   * @desc Information statistics of the client station
   * @member md Measurement Duration
   * @member groupIdentity Indicates the requested statistics group describing the Statistics Group Data
   * @member statisticsGroupData Statistics Group Data
   * @member optionalSubelements Optional subelements
   * @see ETSI GS MEC 028 Clause 6.5.13 Type: StaStatistics
   */
  type record StaStatistics {
    UInt16 md,
    UInt8 groupIdentity,
    StatisticsGroupData statisticsGroupData,
    OptionalSubelements optionalSubelements optional
  }
  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
  }

  /**
   * @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
   */
  type record BeaconReport {
    StaIdentity staId,
    JSON.String measurementId,
    UInt32 channelId,
    BssIds bssId,
    SsIds ssId optional
  }

  /**
   * @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
   * @member apNeighbor Information about neighbor Access Points
   * @see ETSI GS MEC 028 Clause 6.2.2 Type: ApInfo
   */
  type record ApInfo {
    TimeStamp timeStamp optional,
    ApIdentity apId,
    UInt32 channel optional,
    BssLoad bssLoad optional,
    ExtBssLoad extBssLoad optional,
    ApLocation apLocation optional,
    NeighborReport apNeighbor optional
  }

  /**
   * @desc Information on wireless stations 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 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
   * @member beaconReport  Beacon Report as defined in Wi-Fi Agile Multiband Specification
   * @see ETSI GS MEC 028 Clause 6.2.3 Type: StaInfo
   */
  type record StaInfo {
    TimeStamp timeStamp optional,
    ApIdentity apId,
    UInt32 channel optional,
    ApAssociated apAssociated optional,
    Rssi rssi optional,
    StaDataRate staDataRate optional,
    StaStatistics staStatistics optional,
    BeaconReport beaconReport optional
  }

  /**
   * @desc Different measurements configuration available from the WLAN Access Information Service
   * @member measurementId Identifier of this measurement configuration
   * @member measurementDuration Duration of the measurement
   * @member randomnInterval Random interval to be used for starting the measurement
   * @member channelLoad Configuration related to the Channel Load
   * @member beaconRequest Configuration related to Beacon Request
   * @member staStatistics Configuration related to the statistics provided by STAs
   * @see ETSI GS MEC 028 Clause 6.2.4 Type: MeasurementConfig
   */
  type record MeasurementConfig {
    JSON.String measurementId,
    UInt32 measurementDuration,
    UInt32 randomnInterval,
    ChannelLoadConfig channelLoad optional,
    BeaconRequestConfig beaconRequest optional,
    StaStatisticsConfig staStatistics optional
  }

  /**
   * @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
   * @member _links Hyperlink related to the resource
   * @member apId Identifier(s) to uniquely specify the target Access Point for the subscription
   * @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,
    LinkType links optional,
    ApIdentity apId,
    TimeStamp expiryDeadline optional
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @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
   * @member _links Hyperlink related to the resource
   * @member staId Identifier(s) to uniquely specify the target client station(s) for the subscription
   * @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,
    LinkType links optional,
    StaIdentities staId,
    TimeStamp expiryDeadline optional
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @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
   * @member notificationType 
   * @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

} // End of module WlanInformationAPI_TypesAndValues