blob: 36b4e092a99602eec8e0e1e793e266b518090f89 [file] [log] [blame]
/*
* hostapd / Interface steering
* Copyright (c) 2015 Google, Inc.
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
*/
#ifndef STEERING_H
#define STEERING_H
#define MAX_STEERING_TIMESTAMP_FILES 100
/* 10 seconds is long enough to scan all channels on both bands at least twice
* at 100ms/channel.
*/
#define BANDSTEERING_DELAY_SECONDS 10
#define BANDSTEERING_EXPIRATION_SECONDS 120
extern char *steering_timestamp_path;
struct hostapd_data;
struct ieee80211_mgmt;
struct os_reltime;
struct dirent;
/**
* Writes timestamp for the interface specified by hw_mode and the source
* address in mgmt. Returns 1 iff the write succeeded.
*/
int write_timestamp_file(const struct ieee80211_mgmt *mgmt,
const struct hostapd_data *hapd,
const struct os_reltime timestamp);
/**
* Reads a timestamp for the interface specified by hw_mode and the source
* address in mgmt, putting the result in timestamp. Returns 1 iff the read
* succeeded.
*/
int read_timestamp_file(const struct ieee80211_mgmt *mgmt,
const struct hostapd_data *hapd,
struct os_reltime *timestamp);
/**
* Delete all but the most recent MAX_TIMESTAMP_FILES files in
* steering_timestamp_path. Returns the number of files deleted.
*/
int garbage_collect_timestamp_files();
#endif /* STEERING_H */