linux/net/mac80211/scan.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Scanning implementation
 *
 * 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 2013-2015  Intel Mobile Communications GmbH
 * Copyright 2016-2017  Intel Deutschland GmbH
 * Copyright (C) 2018-2024 Intel Corporation
 */

#include <linux/if_arp.h>
#include <linux/etherdevice.h>
#include <linux/rtnetlink.h>
#include <net/sch_generic.h>
#include <linux/slab.h>
#include <linux/export.h>
#include <linux/random.h>
#include <net/mac80211.h>

#include "ieee80211_i.h"
#include "driver-ops.h"
#include "mesh.h"

#define IEEE80211_PROBE_DELAY
#define IEEE80211_CHANNEL_TIME
#define IEEE80211_PASSIVE_CHANNEL_TIME

void ieee80211_rx_bss_put(struct ieee80211_local *local,
			  struct ieee80211_bss *bss)
{}

static bool is_uapsd_supported(struct ieee802_11_elems *elems)
{}

struct inform_bss_update_data {};

void ieee80211_inform_bss(struct wiphy *wiphy,
			  struct cfg80211_bss *cbss,
			  const struct cfg80211_bss_ies *ies,
			  void *data)
{}

struct ieee80211_bss *
ieee80211_bss_info_update(struct ieee80211_local *local,
			  struct ieee80211_rx_status *rx_status,
			  struct ieee80211_mgmt *mgmt, size_t len,
			  struct ieee80211_channel *channel)
{}

static bool ieee80211_scan_accept_presp(struct ieee80211_sub_if_data *sdata,
					struct ieee80211_channel *channel,
					u32 scan_flags, const u8 *da)
{}

void ieee80211_scan_rx(struct ieee80211_local *local, struct sk_buff *skb)
{}

static void ieee80211_prepare_scan_chandef(struct cfg80211_chan_def *chandef)
{}

/* return false if no more work */
static bool ieee80211_prep_hw_scan(struct ieee80211_sub_if_data *sdata)
{}

static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
{}

void ieee80211_scan_completed(struct ieee80211_hw *hw,
			      struct cfg80211_scan_info *info)
{}
EXPORT_SYMBOL();

static int ieee80211_start_sw_scan(struct ieee80211_local *local,
				   struct ieee80211_sub_if_data *sdata)
{}

static bool __ieee80211_can_leave_ch(struct ieee80211_sub_if_data *sdata)
{}

static bool ieee80211_can_scan(struct ieee80211_local *local,
			       struct ieee80211_sub_if_data *sdata)
{}

void ieee80211_run_deferred_scan(struct ieee80211_local *local)
{}

static void ieee80211_send_scan_probe_req(struct ieee80211_sub_if_data *sdata,
					  const u8 *src, const u8 *dst,
					  const u8 *ssid, size_t ssid_len,
					  const u8 *ie, size_t ie_len,
					  u32 ratemask, u32 flags, u32 tx_flags,
					  struct ieee80211_channel *channel)
{}

static void ieee80211_scan_state_send_probe(struct ieee80211_local *local,
					    unsigned long *next_delay)
{}

static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
				  struct cfg80211_scan_request *req)
{}

static unsigned long
ieee80211_scan_get_channel_time(struct ieee80211_channel *chan)
{}

static void ieee80211_scan_state_decision(struct ieee80211_local *local,
					  unsigned long *next_delay)
{}

static void ieee80211_scan_state_set_channel(struct ieee80211_local *local,
					     unsigned long *next_delay)
{}

static void ieee80211_scan_state_suspend(struct ieee80211_local *local,
					 unsigned long *next_delay)
{}

static void ieee80211_scan_state_resume(struct ieee80211_local *local,
					unsigned long *next_delay)
{}

void ieee80211_scan_work(struct wiphy *wiphy, struct wiphy_work *work)
{}

int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
			   struct cfg80211_scan_request *req)
{}

int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
				const u8 *ssid, u8 ssid_len,
				struct ieee80211_channel **channels,
				unsigned int n_channels)
{}

void ieee80211_scan_cancel(struct ieee80211_local *local)
{}

int __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
					struct cfg80211_sched_scan_request *req)
{}

int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
				       struct cfg80211_sched_scan_request *req)
{}

int ieee80211_request_sched_scan_stop(struct ieee80211_local *local)
{}

void ieee80211_sched_scan_results(struct ieee80211_hw *hw)
{}
EXPORT_SYMBOL();

void ieee80211_sched_scan_end(struct ieee80211_local *local)
{}

void ieee80211_sched_scan_stopped_work(struct wiphy *wiphy,
				       struct wiphy_work *work)
{}

void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw)
{}
EXPORT_SYMBOL();