linux/net/mac80211/offchannel.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Off-channel operation helpers
 *
 * Copyright 2003, Jouni Malinen <[email protected]>
 * Copyright 2004, Instant802 Networks, Inc.
 * Copyright 2005, Devicescape Software, Inc.
 * Copyright 2006-2007	Jiri Benc <[email protected]>
 * Copyright 2007, Michael Wu <[email protected]>
 * Copyright 2009	Johannes Berg <[email protected]>
 * Copyright (C) 2019, 2022-2024 Intel Corporation
 */
#include <linux/export.h>
#include <net/mac80211.h>
#include "ieee80211_i.h"
#include "driver-ops.h"

/*
 * Tell our hardware to disable PS.
 * Optionally inform AP that we will go to sleep so that it will buffer
 * the frames while we are doing off-channel work.  This is optional
 * because we *may* be doing work on-operating channel, and want our
 * hardware unconditionally awake, but still let the AP send us normal frames.
 */
static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)
{}

/* inform AP that we are awake again */
static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
{}

void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local)
{}

void ieee80211_offchannel_return(struct ieee80211_local *local)
{}

static void ieee80211_roc_notify_destroy(struct ieee80211_roc_work *roc)
{}

static unsigned long ieee80211_end_finished_rocs(struct ieee80211_local *local,
						 unsigned long now)
{}

static bool ieee80211_recalc_sw_work(struct ieee80211_local *local,
				     unsigned long now)
{}

static void ieee80211_handle_roc_started(struct ieee80211_roc_work *roc,
					 unsigned long start_time)
{}

static void ieee80211_hw_roc_start(struct wiphy *wiphy, struct wiphy_work *work)
{}

void ieee80211_ready_on_channel(struct ieee80211_hw *hw)
{}
EXPORT_SYMBOL_GPL();

static void _ieee80211_start_next_roc(struct ieee80211_local *local)
{}

void ieee80211_start_next_roc(struct ieee80211_local *local)
{}

void ieee80211_reconfig_roc(struct ieee80211_local *local)
{}

static void __ieee80211_roc_work(struct ieee80211_local *local)
{}

static void ieee80211_roc_work(struct wiphy *wiphy, struct wiphy_work *work)
{}

static void ieee80211_hw_roc_done(struct wiphy *wiphy, struct wiphy_work *work)
{}

void ieee80211_remain_on_channel_expired(struct ieee80211_hw *hw)
{}
EXPORT_SYMBOL_GPL();

static bool
ieee80211_coalesce_hw_started_roc(struct ieee80211_local *local,
				  struct ieee80211_roc_work *new_roc,
				  struct ieee80211_roc_work *cur_roc)
{}

static int ieee80211_start_roc_work(struct ieee80211_local *local,
				    struct ieee80211_sub_if_data *sdata,
				    struct ieee80211_channel *channel,
				    unsigned int duration, u64 *cookie,
				    struct sk_buff *txskb,
				    enum ieee80211_roc_type type)
{}

int ieee80211_remain_on_channel(struct wiphy *wiphy, struct wireless_dev *wdev,
				struct ieee80211_channel *chan,
				unsigned int duration, u64 *cookie)
{}

static int ieee80211_cancel_roc(struct ieee80211_local *local,
				u64 cookie, bool mgmt_tx)
{}

int ieee80211_cancel_remain_on_channel(struct wiphy *wiphy,
				       struct wireless_dev *wdev, u64 cookie)
{}

int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
		      struct cfg80211_mgmt_tx_params *params, u64 *cookie)
{}

int ieee80211_mgmt_tx_cancel_wait(struct wiphy *wiphy,
				  struct wireless_dev *wdev, u64 cookie)
{}

void ieee80211_roc_setup(struct ieee80211_local *local)
{}

void ieee80211_roc_purge(struct ieee80211_local *local,
			 struct ieee80211_sub_if_data *sdata)
{}