Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Resolve conflict betweend2912cb15b
("treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500") removing the GPL disclaimer andfe03d47456
("Update my email address") which updates Jozsef Kadlecsik's email. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* include/net/9p/9p.h
|
||||
*
|
||||
@@ -6,22 +7,6 @@
|
||||
* Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net>
|
||||
* Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
|
||||
* Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to:
|
||||
* Free Software Foundation
|
||||
* 51 Franklin Street, Fifth Floor
|
||||
* Boston, MA 02111-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NET_9P_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* include/net/9p/client.h
|
||||
*
|
||||
@@ -5,22 +6,6 @@
|
||||
*
|
||||
* Copyright (C) 2008 by Eric Van Hensbergen <ericvh@gmail.com>
|
||||
* Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to:
|
||||
* Free Software Foundation
|
||||
* 51 Franklin Street, Fifth Floor
|
||||
* Boston, MA 02111-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NET_9P_CLIENT_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* include/net/9p/transport.h
|
||||
*
|
||||
@@ -5,22 +6,6 @@
|
||||
*
|
||||
* Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net>
|
||||
* Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to:
|
||||
* Free Software Foundation
|
||||
* 51 Franklin Street, Fifth Floor
|
||||
* Boston, MA 02111-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NET_9P_TRANSPORT_H
|
||||
|
@@ -309,6 +309,22 @@ static inline struct inet6_dev *__in6_dev_get(const struct net_device *dev)
|
||||
return rcu_dereference_rtnl(dev->ip6_ptr);
|
||||
}
|
||||
|
||||
/**
|
||||
* __in6_dev_stats_get - get inet6_dev pointer for stats
|
||||
* @dev: network device
|
||||
* @skb: skb for original incoming interface if neeeded
|
||||
*
|
||||
* Caller must hold rcu_read_lock or RTNL, because this function
|
||||
* does not take a reference on the inet6_dev.
|
||||
*/
|
||||
static inline struct inet6_dev *__in6_dev_stats_get(const struct net_device *dev,
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
if (netif_is_l3_master(dev))
|
||||
dev = dev_get_by_index_rcu(dev_net(dev), inet6_iif(skb));
|
||||
return __in6_dev_get(dev);
|
||||
}
|
||||
|
||||
/**
|
||||
* __in6_dev_get_safely - get inet6_dev pointer from netdevice
|
||||
* @dev: network device
|
||||
|
@@ -1,17 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* IEEE 802.15.4 interface for userspace
|
||||
*
|
||||
* Copyright 2007, 2008 Siemens AG
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Written by:
|
||||
* Sergey Lapin <slapin@ossfans.org>
|
||||
* Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/* RxRPC kernel service interface definitions
|
||||
*
|
||||
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
|
||||
* Written by David Howells (dhowells@redhat.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_RXRPC_H
|
||||
|
@@ -1,16 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* VMware vSockets Driver
|
||||
*
|
||||
* Copyright (C) 2007-2013 VMware, Inc. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation version 2 and no later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#ifndef __AF_VSOCK_H__
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* include/net/ax88796.h
|
||||
*
|
||||
* Copyright 2005 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __NET_AX88796_PLAT_H
|
||||
|
@@ -1,11 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* drivers/net/bond/bond_options.h - bonding options
|
||||
* Copyright (c) 2013 Nikolay Aleksandrov <nikolay@redhat.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_BOND_OPTIONS_H
|
||||
|
@@ -38,6 +38,15 @@
|
||||
#define __long_aligned __attribute__((aligned((sizeof(long)))))
|
||||
#endif
|
||||
|
||||
#define slave_info(bond_dev, slave_dev, fmt, ...) \
|
||||
netdev_info(bond_dev, "(slave %s): " fmt, (slave_dev)->name, ##__VA_ARGS__)
|
||||
#define slave_warn(bond_dev, slave_dev, fmt, ...) \
|
||||
netdev_warn(bond_dev, "(slave %s): " fmt, (slave_dev)->name, ##__VA_ARGS__)
|
||||
#define slave_dbg(bond_dev, slave_dev, fmt, ...) \
|
||||
netdev_dbg(bond_dev, "(slave %s): " fmt, (slave_dev)->name, ##__VA_ARGS__)
|
||||
#define slave_err(bond_dev, slave_dev, fmt, ...) \
|
||||
netdev_err(bond_dev, "(slave %s): " fmt, (slave_dev)->name, ##__VA_ARGS__)
|
||||
|
||||
#define BOND_MODE(bond) ((bond)->params.mode)
|
||||
|
||||
/* slave list primitives */
|
||||
|
@@ -1,20 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* net busy poll support
|
||||
* Copyright(c) 2013 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Author: Eliezer Tamir
|
||||
*
|
||||
* Contact Information:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CAIF_DEV_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CAIF_DEVICE_H_
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Daniel Martensson / daniel.martensson@stericsson.com
|
||||
* Dmitry.Tarnyagin / dmitry.tarnyagin@stericsson.com
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CAIF_HSI_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CAIF_LAYER_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Daniel Martensson / Daniel.Martensson@stericsson.com
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CAIF_SPI_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFCNFG_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFCTRL_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFFRML_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFMUXL_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFPKT_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFSERL_H_
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef CFSRVL_H_
|
||||
|
@@ -1,13 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef __NET_CFG80211_WEXT_H
|
||||
#define __NET_CFG80211_WEXT_H
|
||||
/*
|
||||
* 802.11 device and configuration interface -- wext handlers
|
||||
*
|
||||
* Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef __NET_CFG80211_H
|
||||
#define __NET_CFG80211_H
|
||||
/*
|
||||
@@ -7,10 +8,6 @@
|
||||
* Copyright 2013-2014 Intel Mobile Communications GmbH
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2019 Intel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
@@ -381,6 +378,26 @@ ieee80211_get_sband_iftype_data(const struct ieee80211_supported_band *sband,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_get_he_iftype_cap - return HE capabilities for an sband's iftype
|
||||
* @sband: the sband to search for the iftype on
|
||||
* @iftype: enum nl80211_iftype
|
||||
*
|
||||
* Return: pointer to the struct ieee80211_sta_he_cap, or NULL is none found
|
||||
*/
|
||||
static inline const struct ieee80211_sta_he_cap *
|
||||
ieee80211_get_he_iftype_cap(const struct ieee80211_supported_band *sband,
|
||||
u8 iftype)
|
||||
{
|
||||
const struct ieee80211_sband_iftype_data *data =
|
||||
ieee80211_get_sband_iftype_data(sband, iftype);
|
||||
|
||||
if (data && data->he_cap.has_he)
|
||||
return &data->he_cap;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_get_he_sta_cap - return HE capabilities for an sband's STA
|
||||
* @sband: the sband to search for the STA on
|
||||
@@ -390,13 +407,7 @@ ieee80211_get_sband_iftype_data(const struct ieee80211_supported_band *sband,
|
||||
static inline const struct ieee80211_sta_he_cap *
|
||||
ieee80211_get_he_sta_cap(const struct ieee80211_supported_band *sband)
|
||||
{
|
||||
const struct ieee80211_sband_iftype_data *data =
|
||||
ieee80211_get_sband_iftype_data(sband, NL80211_IFTYPE_STATION);
|
||||
|
||||
if (data && data->he_cap.has_he)
|
||||
return &data->he_cap;
|
||||
|
||||
return NULL;
|
||||
return ieee80211_get_he_iftype_cap(sband, NL80211_IFTYPE_STATION);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -742,6 +753,9 @@ struct survey_info {
|
||||
* CFG80211_MAX_WEP_KEYS WEP keys
|
||||
* @wep_tx_key: key index (0..3) of the default TX static WEP key
|
||||
* @psk: PSK (for devices supporting 4-way-handshake offload)
|
||||
* @sae_pwd: password for SAE authentication (for devices supporting SAE
|
||||
* offload)
|
||||
* @sae_pwd_len: length of SAE password (for devices supporting SAE offload)
|
||||
*/
|
||||
struct cfg80211_crypto_settings {
|
||||
u32 wpa_versions;
|
||||
@@ -757,6 +771,8 @@ struct cfg80211_crypto_settings {
|
||||
struct key_params *wep_keys;
|
||||
int wep_tx_key;
|
||||
const u8 *psk;
|
||||
const u8 *sae_pwd;
|
||||
u8 sae_pwd_len;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -878,6 +894,7 @@ enum cfg80211_ap_settings_flags {
|
||||
* @he_cap: HE capabilities (or %NULL if HE isn't enabled)
|
||||
* @ht_required: stations must support HT
|
||||
* @vht_required: stations must support VHT
|
||||
* @twt_responder: Enable Target Wait Time
|
||||
* @flags: flags, as defined in enum cfg80211_ap_settings_flags
|
||||
*/
|
||||
struct cfg80211_ap_settings {
|
||||
@@ -904,6 +921,7 @@ struct cfg80211_ap_settings {
|
||||
const struct ieee80211_vht_cap *vht_cap;
|
||||
const struct ieee80211_he_cap_elem *he_cap;
|
||||
bool ht_required, vht_required;
|
||||
bool twt_responder;
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
@@ -3839,7 +3857,8 @@ struct cfg80211_ops {
|
||||
* on wiphy_new(), but can be changed by the driver if it has a good
|
||||
* reason to override the default
|
||||
* @WIPHY_FLAG_4ADDR_AP: supports 4addr mode even on AP (with a single station
|
||||
* on a VLAN interface)
|
||||
* on a VLAN interface). This flag also serves an extra purpose of
|
||||
* supporting 4ADDR AP mode on devices which do not support AP/VLAN iftype.
|
||||
* @WIPHY_FLAG_4ADDR_STATION: supports 4addr mode even as a station
|
||||
* @WIPHY_FLAG_CONTROL_PORT_PROTOCOL: This device supports setting the
|
||||
* control port protocol ethertype. The device also honours the
|
||||
@@ -4151,6 +4170,8 @@ struct sta_opmode_info {
|
||||
u8 rx_nss;
|
||||
};
|
||||
|
||||
#define VENDOR_CMD_RAW_DATA ((const struct nla_policy *)ERR_PTR(-ENODATA))
|
||||
|
||||
/**
|
||||
* struct wiphy_vendor_command - vendor command definition
|
||||
* @info: vendor command identifying information, as used in nl80211
|
||||
@@ -4161,6 +4182,10 @@ struct sta_opmode_info {
|
||||
* @dumpit: dump callback, for transferring bigger/multiple items. The
|
||||
* @storage points to cb->args[5], ie. is preserved over the multiple
|
||||
* dumpit calls.
|
||||
* @policy: policy pointer for attributes within %NL80211_ATTR_VENDOR_DATA.
|
||||
* Set this to %VENDOR_CMD_RAW_DATA if no policy can be given and the
|
||||
* attribute is just raw data (e.g. a firmware command).
|
||||
* @maxattr: highest attribute number in policy
|
||||
* It's recommended to not have the same sub command with both @doit and
|
||||
* @dumpit, so that userspace can assume certain ones are get and others
|
||||
* are used with dump requests.
|
||||
@@ -4173,6 +4198,8 @@ struct wiphy_vendor_command {
|
||||
int (*dumpit)(struct wiphy *wiphy, struct wireless_dev *wdev,
|
||||
struct sk_buff *skb, const void *data, int data_len,
|
||||
unsigned long *storage);
|
||||
const struct nla_policy *policy;
|
||||
unsigned int maxattr;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -5721,6 +5748,26 @@ void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
|
||||
*/
|
||||
void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
|
||||
|
||||
/**
|
||||
* cfg80211_bss_iter - iterate all BSS entries
|
||||
*
|
||||
* This function iterates over the BSS entries associated with the given wiphy
|
||||
* and calls the callback for the iterated BSS. The iterator function is not
|
||||
* allowed to call functions that might modify the internal state of the BSS DB.
|
||||
*
|
||||
* @wiphy: the wiphy
|
||||
* @chandef: if given, the iterator function will be called only if the channel
|
||||
* of the currently iterated BSS is a subset of the given channel.
|
||||
* @iter: the iterator function to call
|
||||
* @iter_data: an argument to the iterator function
|
||||
*/
|
||||
void cfg80211_bss_iter(struct wiphy *wiphy,
|
||||
struct cfg80211_chan_def *chandef,
|
||||
void (*iter)(struct wiphy *wiphy,
|
||||
struct cfg80211_bss *bss,
|
||||
void *data),
|
||||
void *iter_data);
|
||||
|
||||
static inline enum nl80211_bss_scan_width
|
||||
cfg80211_chandef_to_scan_width(const struct cfg80211_chan_def *chandef)
|
||||
{
|
||||
@@ -6231,8 +6278,11 @@ struct cfg80211_fils_resp_params {
|
||||
* case.
|
||||
* @bssid: The BSSID of the AP (may be %NULL)
|
||||
* @bss: Entry of bss to which STA got connected to, can be obtained through
|
||||
* cfg80211_get_bss() (may be %NULL). Only one parameter among @bssid and
|
||||
* @bss needs to be specified.
|
||||
* cfg80211_get_bss() (may be %NULL). But it is recommended to store the
|
||||
* bss from the connect_request and hold a reference to it and return
|
||||
* through this param to avoid a warning if the bss is expired during the
|
||||
* connection, esp. for those drivers implementing connect op.
|
||||
* Only one parameter among @bssid and @bss needs to be specified.
|
||||
* @req_ie: Association request IEs (may be %NULL)
|
||||
* @req_ie_len: Association request IEs length
|
||||
* @resp_ie: Association response IEs (may be %NULL)
|
||||
@@ -6280,8 +6330,12 @@ void cfg80211_connect_done(struct net_device *dev,
|
||||
*
|
||||
* @dev: network device
|
||||
* @bssid: the BSSID of the AP
|
||||
* @bss: entry of bss to which STA got connected to, can be obtained
|
||||
* through cfg80211_get_bss (may be %NULL)
|
||||
* @bss: Entry of bss to which STA got connected to, can be obtained through
|
||||
* cfg80211_get_bss() (may be %NULL). But it is recommended to store the
|
||||
* bss from the connect_request and hold a reference to it and return
|
||||
* through this param to avoid a warning if the bss is expired during the
|
||||
* connection, esp. for those drivers implementing connect op.
|
||||
* Only one parameter among @bssid and @bss needs to be specified.
|
||||
* @req_ie: association request IEs (maybe be %NULL)
|
||||
* @req_ie_len: association request IEs length
|
||||
* @resp_ie: association response IEs (may be %NULL)
|
||||
@@ -6491,6 +6545,16 @@ void cfg80211_remain_on_channel_expired(struct wireless_dev *wdev, u64 cookie,
|
||||
struct ieee80211_channel *chan,
|
||||
gfp_t gfp);
|
||||
|
||||
/**
|
||||
* cfg80211_tx_mgmt_expired - tx_mgmt duration expired
|
||||
* @wdev: wireless device
|
||||
* @cookie: the requested cookie
|
||||
* @chan: The current channel (from tx_mgmt request)
|
||||
* @gfp: allocation flags
|
||||
*/
|
||||
void cfg80211_tx_mgmt_expired(struct wireless_dev *wdev, u64 cookie,
|
||||
struct ieee80211_channel *chan, gfp_t gfp);
|
||||
|
||||
/**
|
||||
* cfg80211_sinfo_alloc_tid_stats - allocate per-tid statistics.
|
||||
*
|
||||
|
@@ -1,15 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2007, 2008, 2009 Siemens AG
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Written by:
|
||||
* Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
||||
*/
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -9,11 +10,6 @@
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Borrows very liberally from tcp.c and ip.c, see those
|
||||
* files for more names.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _CHECKSUM_H
|
||||
|
@@ -1,13 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* cls_cgroup.h Control Group Classifier
|
||||
*
|
||||
* Authors: Thomas Graf <tgraf@suug.ch>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _NET_CLS_CGROUP_H
|
||||
|
@@ -1,18 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2010, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author: John Fastabend <john.r.fastabend@intel.com>
|
||||
*/
|
||||
|
||||
|
@@ -1,18 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2008, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author: Lucy Liu <lucy.liu@intel.com>
|
||||
*/
|
||||
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* include/net/devlink.h - Network physical device Netlink interface
|
||||
* Copyright (c) 2016 Mellanox Technologies. All rights reserved.
|
||||
* Copyright (c) 2016 Jiri Pirko <jiri@mellanox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
#ifndef _NET_DEVLINK_H_
|
||||
#define _NET_DEVLINK_H_
|
||||
|
@@ -1,11 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* include/net/dsa.h - Driver for Distributed Switch Architecture switch chips
|
||||
* Copyright (c) 2008-2009 Marvell Semiconductor
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_NET_DSA_H
|
||||
@@ -185,7 +181,7 @@ struct dsa_port {
|
||||
struct dsa_switch *ds;
|
||||
unsigned int index;
|
||||
const char *name;
|
||||
const struct dsa_port *cpu_dp;
|
||||
struct dsa_port *cpu_dp;
|
||||
const char *mac;
|
||||
struct device_node *dn;
|
||||
unsigned int ageing_time;
|
||||
@@ -361,6 +357,7 @@ struct dsa_switch_ops {
|
||||
int port);
|
||||
|
||||
int (*setup)(struct dsa_switch *ds);
|
||||
void (*teardown)(struct dsa_switch *ds);
|
||||
u32 (*get_phy_flags)(struct dsa_switch *ds, int port);
|
||||
|
||||
/*
|
||||
|
@@ -1,12 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* linux/include/net/ethoc.h
|
||||
*
|
||||
* Copyright (C) 2008-2009 Avionic Design GmbH
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Written by Thierry Reding <thierry.reding@avionic-design.de>
|
||||
*/
|
||||
|
||||
|
@@ -46,6 +46,7 @@ struct flow_dissector_key_tags {
|
||||
|
||||
struct flow_dissector_key_vlan {
|
||||
u16 vlan_id:12,
|
||||
vlan_dei:1,
|
||||
vlan_priority:3;
|
||||
__be16 vlan_tpid;
|
||||
};
|
||||
@@ -199,6 +200,14 @@ struct flow_dissector_key_ip {
|
||||
__u8 ttl;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct flow_dissector_key_meta:
|
||||
* @ingress_ifindex: ingress ifindex
|
||||
*/
|
||||
struct flow_dissector_key_meta {
|
||||
int ingress_ifindex;
|
||||
};
|
||||
|
||||
enum flow_dissector_key_id {
|
||||
FLOW_DISSECTOR_KEY_CONTROL, /* struct flow_dissector_key_control */
|
||||
FLOW_DISSECTOR_KEY_BASIC, /* struct flow_dissector_key_basic */
|
||||
@@ -224,6 +233,7 @@ enum flow_dissector_key_id {
|
||||
FLOW_DISSECTOR_KEY_CVLAN, /* struct flow_dissector_key_vlan */
|
||||
FLOW_DISSECTOR_KEY_ENC_IP, /* struct flow_dissector_key_ip */
|
||||
FLOW_DISSECTOR_KEY_ENC_OPTS, /* struct flow_dissector_key_enc_opts */
|
||||
FLOW_DISSECTOR_KEY_META, /* struct flow_dissector_key_meta */
|
||||
|
||||
FLOW_DISSECTOR_KEY_MAX,
|
||||
};
|
||||
|
@@ -10,6 +10,10 @@ struct flow_match {
|
||||
void *key;
|
||||
};
|
||||
|
||||
struct flow_match_meta {
|
||||
struct flow_dissector_key_meta *key, *mask;
|
||||
};
|
||||
|
||||
struct flow_match_basic {
|
||||
struct flow_dissector_key_basic *key, *mask;
|
||||
};
|
||||
@@ -64,6 +68,8 @@ struct flow_match_enc_opts {
|
||||
|
||||
struct flow_rule;
|
||||
|
||||
void flow_rule_match_meta(const struct flow_rule *rule,
|
||||
struct flow_match_meta *out);
|
||||
void flow_rule_match_basic(const struct flow_rule *rule,
|
||||
struct flow_match_basic *out);
|
||||
void flow_rule_match_control(const struct flow_rule *rule,
|
||||
|
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2016 Qualcomm Atheros, Inc
|
||||
*
|
||||
* GPL v2
|
||||
*
|
||||
* Based on net/sched/sch_fq_codel.c
|
||||
*/
|
||||
#ifndef __NET_SCHED_FQ_H
|
||||
|
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2016 Qualcomm Atheros, Inc
|
||||
*
|
||||
* GPL v2
|
||||
*
|
||||
* Based on net/sched/sch_fq_codel.c
|
||||
*/
|
||||
#ifndef __NET_SCHED_FQ_IMPL_H
|
||||
|
@@ -12,18 +12,18 @@ struct hwbm_pool {
|
||||
/* constructor called during alocation */
|
||||
int (*construct)(struct hwbm_pool *bm_pool, void *buf);
|
||||
/* protect acces to the buffer counter*/
|
||||
spinlock_t lock;
|
||||
struct mutex buf_lock;
|
||||
/* private data */
|
||||
void *priv;
|
||||
};
|
||||
#ifdef CONFIG_HWBM
|
||||
void hwbm_buf_free(struct hwbm_pool *bm_pool, void *buf);
|
||||
int hwbm_pool_refill(struct hwbm_pool *bm_pool, gfp_t gfp);
|
||||
int hwbm_pool_add(struct hwbm_pool *bm_pool, unsigned int buf_num, gfp_t gfp);
|
||||
int hwbm_pool_add(struct hwbm_pool *bm_pool, unsigned int buf_num);
|
||||
#else
|
||||
void hwbm_buf_free(struct hwbm_pool *bm_pool, void *buf) {}
|
||||
int hwbm_pool_refill(struct hwbm_pool *bm_pool, gfp_t gfp) { return 0; }
|
||||
int hwbm_pool_add(struct hwbm_pool *bm_pool, unsigned int buf_num, gfp_t gfp)
|
||||
int hwbm_pool_add(struct hwbm_pool *bm_pool, unsigned int buf_num)
|
||||
{ return 0; }
|
||||
#endif /* CONFIG_HWBM */
|
||||
#endif /* _HWBM_H */
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -9,11 +10,6 @@
|
||||
*
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _ICMP_H
|
||||
#define _ICMP_H
|
||||
|
@@ -1,17 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* An interface between IEEE802.15.4 device and rest of the kernel.
|
||||
*
|
||||
* Copyright (C) 2007-2012 Siemens AG
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Written by:
|
||||
* Pavel Smolenskiy <pavel.smolenskiy@gmail.com>
|
||||
* Maxim Gorbachyov <maxim.gorbachev@siemens.com>
|
||||
|
@@ -1,15 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* inet6 interface/address list definitions
|
||||
* Linux INET6 implementation
|
||||
*
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_IF_INET6_H
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* ILA kernel interface
|
||||
*
|
||||
* Copyright (c) 2015 Tom Herbert <tom@herbertland.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_ILA_H
|
||||
|
@@ -1,14 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* NET Generic infrastructure for INET6 connection oriented protocols.
|
||||
*
|
||||
* Authors: Many people, see the TCPv6 sources
|
||||
*
|
||||
* From code originally in TCPv6
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _INET6_CONNECTION_SOCK_H
|
||||
#define _INET6_CONNECTION_SOCK_H
|
||||
|
@@ -1,14 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Authors: Lotsa people, from code originally in tcp
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _INET6_HASHTABLES_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* NET Generic infrastructure for INET connection oriented protocols.
|
||||
*
|
||||
@@ -6,11 +7,6 @@
|
||||
* Authors: Many people, see the TCP sources
|
||||
*
|
||||
* From code originally in TCP
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _INET_CONNECTION_SOCK_H
|
||||
#define _INET_CONNECTION_SOCK_H
|
||||
|
@@ -20,7 +20,7 @@ struct fqdir {
|
||||
|
||||
/* Keep atomic mem on separate cachelines in structs that include it */
|
||||
atomic_long_t mem ____cacheline_aligned_in_smp;
|
||||
struct rcu_work destroy_rwork;
|
||||
struct work_struct destroy_work;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -113,6 +113,12 @@ int inet_frags_init(struct inet_frags *);
|
||||
void inet_frags_fini(struct inet_frags *);
|
||||
|
||||
int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net);
|
||||
|
||||
static inline void fqdir_pre_exit(struct fqdir *fqdir)
|
||||
{
|
||||
fqdir->high_thresh = 0; /* prevent creation of new frags */
|
||||
fqdir->dead = true;
|
||||
}
|
||||
void fqdir_exit(struct fqdir *fqdir);
|
||||
|
||||
void inet_frag_kill(struct inet_frag_queue *q);
|
||||
|
@@ -1,14 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Authors: Lotsa people, from code originally in tcp
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _INET_HASHTABLES_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -7,11 +8,6 @@
|
||||
*
|
||||
* Authors: Many, reorganised here by
|
||||
* Arnaldo Carvalho de Melo <acme@mandriva.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _INET_SOCK_H
|
||||
#define _INET_SOCK_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -6,11 +7,6 @@
|
||||
* Definitions for a generic INET TIMEWAIT sock
|
||||
*
|
||||
* From code originally in net/tcp.h
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _INET_TIMEWAIT_SOCK_
|
||||
#define _INET_TIMEWAIT_SOCK_
|
||||
@@ -74,6 +70,7 @@ struct inet_timewait_sock {
|
||||
tw_flowlabel : 20,
|
||||
tw_pad : 2, /* 2 bits hole */
|
||||
tw_tos : 8;
|
||||
u32 tw_txhash;
|
||||
struct timer_list tw_timer;
|
||||
struct inet_bind_bucket *tw_tb;
|
||||
};
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -13,11 +14,6 @@
|
||||
*
|
||||
* Changes:
|
||||
* Mike McLagan : Routing by source
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _IP_H
|
||||
#define _IP_H
|
||||
@@ -283,7 +279,7 @@ void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb,
|
||||
const struct ip_options *sopt,
|
||||
__be32 daddr, __be32 saddr,
|
||||
const struct ip_reply_arg *arg,
|
||||
unsigned int len);
|
||||
unsigned int len, u64 transmit_time);
|
||||
|
||||
#define IP_INC_STATS(net, field) SNMP_INC_STATS64((net)->mib.ip_statistics, field)
|
||||
#define __IP_INC_STATS(net, field) __SNMP_INC_STATS64((net)->mib.ip_statistics, field)
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -9,11 +10,6 @@
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Borrows very liberally from tcp.c and ip.c, see those
|
||||
* files for more names.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@@ -1,13 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Linux INET6 implementation
|
||||
*
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _IP6_FIB_H
|
||||
@@ -53,6 +49,7 @@ struct fib6_config {
|
||||
u16 fc_delete_all_nh : 1,
|
||||
fc_ignore_dev_down:1,
|
||||
__unused : 14;
|
||||
u32 fc_nh_id;
|
||||
|
||||
struct in6_addr fc_dst;
|
||||
struct in6_addr fc_src;
|
||||
@@ -266,8 +263,7 @@ static inline u32 rt6_get_cookie(const struct rt6_info *rt)
|
||||
rcu_read_lock();
|
||||
|
||||
from = rcu_dereference(rt->from);
|
||||
if (from && (rt->rt6i_flags & RTF_PCPU ||
|
||||
unlikely(!list_empty(&rt->rt6i_uncached))))
|
||||
if (from)
|
||||
fib6_get_cookie_safe(from, &cookie);
|
||||
|
||||
rcu_read_unlock();
|
||||
@@ -320,6 +316,7 @@ struct fib6_walker {
|
||||
enum fib6_walk_state state;
|
||||
unsigned int skip;
|
||||
unsigned int count;
|
||||
unsigned int skip_in_node;
|
||||
int (*func)(struct fib6_walker *);
|
||||
void *args;
|
||||
};
|
||||
@@ -381,6 +378,7 @@ typedef struct rt6_info *(*pol_lookup_t)(struct net *,
|
||||
struct fib6_entry_notifier_info {
|
||||
struct fib_notifier_info info; /* must be first */
|
||||
struct fib6_info *rt;
|
||||
unsigned int nsiblings;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -454,6 +452,11 @@ int call_fib6_entry_notifiers(struct net *net,
|
||||
enum fib_event_type event_type,
|
||||
struct fib6_info *rt,
|
||||
struct netlink_ext_ack *extack);
|
||||
int call_fib6_multipath_entry_notifiers(struct net *net,
|
||||
enum fib_event_type event_type,
|
||||
struct fib6_info *rt,
|
||||
unsigned int nsiblings,
|
||||
struct netlink_ext_ack *extack);
|
||||
void fib6_rt_update(struct net *net, struct fib6_info *rt,
|
||||
struct nl_info *info);
|
||||
void inet6_rt_notify(int event, struct fib6_info *rt, struct nl_info *info,
|
||||
|
@@ -36,6 +36,7 @@ struct route_info {
|
||||
#define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010
|
||||
#define RT6_LOOKUP_F_SRCPREF_COA 0x00000020
|
||||
#define RT6_LOOKUP_F_IGNORE_LINKSTATE 0x00000040
|
||||
#define RT6_LOOKUP_F_DST_NOREF 0x00000080
|
||||
|
||||
/* We do not (yet ?) support IPv6 jumbograms (RFC 2675)
|
||||
* Unlike IPv4, hdr->seg_len doesn't include the IPv6 header
|
||||
@@ -83,6 +84,10 @@ struct dst_entry *ip6_route_input_lookup(struct net *net,
|
||||
struct flowi6 *fl6,
|
||||
const struct sk_buff *skb, int flags);
|
||||
|
||||
struct dst_entry *ip6_route_output_flags_noref(struct net *net,
|
||||
const struct sock *sk,
|
||||
struct flowi6 *fl6, int flags);
|
||||
|
||||
struct dst_entry *ip6_route_output_flags(struct net *net, const struct sock *sk,
|
||||
struct flowi6 *fl6, int flags);
|
||||
|
||||
@@ -93,6 +98,16 @@ static inline struct dst_entry *ip6_route_output(struct net *net,
|
||||
return ip6_route_output_flags(net, sk, fl6, 0);
|
||||
}
|
||||
|
||||
/* Only conditionally release dst if flags indicates
|
||||
* !RT6_LOOKUP_F_DST_NOREF or dst is in uncached_list.
|
||||
*/
|
||||
static inline void ip6_rt_put_flags(struct rt6_info *rt, int flags)
|
||||
{
|
||||
if (!(flags & RT6_LOOKUP_F_DST_NOREF) ||
|
||||
!list_empty(&rt->rt6i_uncached))
|
||||
ip6_rt_put(rt);
|
||||
}
|
||||
|
||||
struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6,
|
||||
const struct sk_buff *skb, int flags);
|
||||
struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
|
||||
@@ -182,7 +197,7 @@ struct rt6_rtnl_dump_arg {
|
||||
struct fib_dump_filter filter;
|
||||
};
|
||||
|
||||
int rt6_dump_route(struct fib6_info *f6i, void *p_arg);
|
||||
int rt6_dump_route(struct fib6_info *f6i, void *p_arg, unsigned int skip);
|
||||
void rt6_mtu_change(struct net_device *dev, unsigned int mtu);
|
||||
void rt6_remove_prefsrc(struct inet6_ifaddr *ifp);
|
||||
void rt6_clean_tohost(struct net *net, struct in6_addr *gateway);
|
||||
|
@@ -158,9 +158,12 @@ static inline void ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb,
|
||||
memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
|
||||
pkt_len = skb->len - skb_inner_network_offset(skb);
|
||||
err = ip6_local_out(dev_net(skb_dst(skb)->dev), sk, skb);
|
||||
if (unlikely(net_xmit_eval(err)))
|
||||
pkt_len = -1;
|
||||
iptunnel_xmit_stats(dev, pkt_len);
|
||||
|
||||
if (dev) {
|
||||
if (unlikely(net_xmit_eval(err)))
|
||||
pkt_len = -1;
|
||||
iptunnel_xmit_stats(dev, pkt_len);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -6,11 +7,6 @@
|
||||
* Definitions for the Forwarding Information Base.
|
||||
*
|
||||
* Authors: A.N.Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_IP_FIB_H
|
||||
@@ -44,6 +40,7 @@ struct fib_config {
|
||||
u32 fc_flags;
|
||||
u32 fc_priority;
|
||||
__be32 fc_prefsrc;
|
||||
u32 fc_nh_id;
|
||||
struct nlattr *fc_mx;
|
||||
struct rtnexthop *fc_mp;
|
||||
int fc_mx_len;
|
||||
@@ -248,6 +245,8 @@ struct fib_dump_filter {
|
||||
/* filter_set is an optimization that an entry is set */
|
||||
bool filter_set;
|
||||
bool dump_all_families;
|
||||
bool dump_routes;
|
||||
bool dump_exceptions;
|
||||
unsigned char protocol;
|
||||
unsigned char rt_type;
|
||||
unsigned int flags;
|
||||
|
@@ -1,13 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Linux INET6 implementation
|
||||
*
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_IPV6_H
|
||||
|
@@ -67,6 +67,8 @@ ip6frag_expire_frag_queue(struct net *net, struct frag_queue *fq)
|
||||
struct sk_buff *head;
|
||||
|
||||
rcu_read_lock();
|
||||
if (fq->q.fqdir->dead)
|
||||
goto out_rcu_unlock;
|
||||
spin_lock(&fq->q.lock);
|
||||
|
||||
if (fq->q.flags & INET_FRAG_COMPLETE)
|
||||
|
@@ -1,11 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Kernel Connection Multiplexor
|
||||
*
|
||||
* Copyright (c) 2016 Tom Herbert <tom@herbertland.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __NET_KCM_H_
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* include/net/l3mdev.h - L3 master device API
|
||||
* Copyright (c) 2015 Cumulus Networks
|
||||
* Copyright (c) 2015 David Ahern <dsa@cumulusnetworks.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
#ifndef _NET_L3MDEV_H_
|
||||
#define _NET_L3MDEV_H_
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* mac80211 <-> driver interface
|
||||
*
|
||||
@@ -7,10 +8,6 @@
|
||||
* Copyright 2013-2014 Intel Mobile Communications GmbH
|
||||
* Copyright (C) 2015 - 2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018 - 2019 Intel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef MAC80211_H
|
||||
@@ -317,6 +314,7 @@ struct ieee80211_vif_chanctx_switch {
|
||||
* @BSS_CHANGED_MCAST_RATE: Multicast Rate setting changed for this interface
|
||||
* @BSS_CHANGED_FTM_RESPONDER: fime timing reasurement request responder
|
||||
* functionality changed for this BSS (AP mode).
|
||||
* @BSS_CHANGED_TWT: TWT status changed
|
||||
*
|
||||
*/
|
||||
enum ieee80211_bss_change {
|
||||
@@ -347,6 +345,7 @@ enum ieee80211_bss_change {
|
||||
BSS_CHANGED_KEEP_ALIVE = 1<<24,
|
||||
BSS_CHANGED_MCAST_RATE = 1<<25,
|
||||
BSS_CHANGED_FTM_RESPONDER = 1<<26,
|
||||
BSS_CHANGED_TWT = 1<<27,
|
||||
|
||||
/* when adding here, make sure to change ieee80211_reconfig */
|
||||
};
|
||||
@@ -504,6 +503,8 @@ struct ieee80211_ftm_responder_params {
|
||||
* @he_support: does this BSS support HE
|
||||
* @twt_requester: does this BSS support TWT requester (relevant for managed
|
||||
* mode only, set if the AP advertises TWT responder role)
|
||||
* @twt_responder: does this BSS support TWT requester (relevant for managed
|
||||
* mode only, set if the AP advertises TWT responder role)
|
||||
* @assoc: association status
|
||||
* @ibss_joined: indicates whether this station is part of an IBSS
|
||||
* or not
|
||||
@@ -611,6 +612,7 @@ struct ieee80211_bss_conf {
|
||||
u16 frame_time_rts_th;
|
||||
bool he_support;
|
||||
bool twt_requester;
|
||||
bool twt_responder;
|
||||
/* association related data */
|
||||
bool assoc, ibss_joined;
|
||||
bool ibss_creator;
|
||||
@@ -2269,6 +2271,9 @@ struct ieee80211_txq {
|
||||
* @IEEE80211_HW_EXT_KEY_ID_NATIVE: Driver and hardware are supporting Extended
|
||||
* Key ID and can handle two unicast keys per station for Rx and Tx.
|
||||
*
|
||||
* @IEEE80211_HW_NO_AMPDU_KEYBORDER_SUPPORT: The card/driver can't handle
|
||||
* active Tx A-MPDU sessions with Extended Key IDs during rekey.
|
||||
*
|
||||
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
|
||||
*/
|
||||
enum ieee80211_hw_flags {
|
||||
@@ -2321,6 +2326,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_SUPPORTS_MULTI_BSSID,
|
||||
IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID,
|
||||
IEEE80211_HW_EXT_KEY_ID_NATIVE,
|
||||
IEEE80211_HW_NO_AMPDU_KEYBORDER_SUPPORT,
|
||||
|
||||
/* keep last, obviously */
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
@@ -5951,29 +5957,6 @@ static inline int rate_supported(struct ieee80211_sta *sta,
|
||||
return (sta == NULL || sta->supp_rates[band] & BIT(index));
|
||||
}
|
||||
|
||||
/**
|
||||
* rate_control_send_low - helper for drivers for management/no-ack frames
|
||||
*
|
||||
* Rate control algorithms that agree to use the lowest rate to
|
||||
* send management frames and NO_ACK data with the respective hw
|
||||
* retries should use this in the beginning of their mac80211 get_rate
|
||||
* callback. If true is returned the rate control can simply return.
|
||||
* If false is returned we guarantee that sta and sta and priv_sta is
|
||||
* not null.
|
||||
*
|
||||
* Rate control algorithms wishing to do more intelligent selection of
|
||||
* rate for multicast/broadcast frames may choose to not use this.
|
||||
*
|
||||
* @sta: &struct ieee80211_sta pointer to the target destination. Note
|
||||
* that this may be null.
|
||||
* @priv_sta: private rate control structure. This may be null.
|
||||
* @txrc: rate control information we sholud populate for mac80211.
|
||||
*/
|
||||
bool rate_control_send_low(struct ieee80211_sta *sta,
|
||||
void *priv_sta,
|
||||
struct ieee80211_tx_rate_control *txrc);
|
||||
|
||||
|
||||
static inline s8
|
||||
rate_lowest_index(struct ieee80211_supported_band *sband,
|
||||
struct ieee80211_sta *sta)
|
||||
|
@@ -1,17 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* IEEE802.15.4-2003 specification
|
||||
*
|
||||
* Copyright (C) 2007-2012 Siemens AG
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
#ifndef NET_MAC802154_H
|
||||
#define NET_MAC802154_H
|
||||
|
@@ -1,14 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2014 Nicira, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _NET_MPLS_H
|
||||
|
@@ -1,14 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2015 Cumulus Networks, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _NET_MPLS_IPTUNNEL_H
|
||||
|
@@ -355,8 +355,13 @@ struct pernet_operations {
|
||||
* synchronize_rcu() related to these pernet_operations,
|
||||
* instead of separate synchronize_rcu() for every net.
|
||||
* Please, avoid synchronize_rcu() at all, where it's possible.
|
||||
*
|
||||
* Note that a combination of pre_exit() and exit() can
|
||||
* be used, since a synchronize_rcu() is guaranteed between
|
||||
* the calls.
|
||||
*/
|
||||
int (*init)(struct net *net);
|
||||
void (*pre_exit)(struct net *net);
|
||||
void (*exit)(struct net *net);
|
||||
void (*exit_batch)(struct list_head *net_exit_list);
|
||||
unsigned int *id;
|
||||
|
@@ -1,9 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef _NF_CONNTRACK_ACCT_H
|
||||
|
@@ -378,13 +378,17 @@ struct nla_policy {
|
||||
/**
|
||||
* struct nl_info - netlink source information
|
||||
* @nlh: Netlink message header of original request
|
||||
* @nl_net: Network namespace
|
||||
* @portid: Netlink PORTID of requesting application
|
||||
* @skip_notify: Skip netlink notifications to user space
|
||||
* @skip_notify_kernel: Skip selected in-kernel notifications
|
||||
*/
|
||||
struct nl_info {
|
||||
struct nlmsghdr *nlh;
|
||||
struct net *nl_net;
|
||||
u32 portid;
|
||||
bool skip_notify;
|
||||
u8 skip_notify:1,
|
||||
skip_notify_kernel:1;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1754,6 +1758,15 @@ static inline int __nla_validate_nested(const struct nlattr *start, int maxtype,
|
||||
validate, extack);
|
||||
}
|
||||
|
||||
static inline int
|
||||
nl80211_validate_nested(const struct nlattr *start, int maxtype,
|
||||
const struct nla_policy *policy,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
return __nla_validate_nested(start, maxtype, policy,
|
||||
NL_VALIDATE_STRICT, extack);
|
||||
}
|
||||
|
||||
static inline int
|
||||
nla_validate_nested_deprecated(const struct nlattr *start, int maxtype,
|
||||
const struct nla_policy *policy,
|
||||
|
@@ -117,6 +117,7 @@ struct netns_ipv4 {
|
||||
#endif
|
||||
int sysctl_tcp_mtu_probing;
|
||||
int sysctl_tcp_base_mss;
|
||||
int sysctl_tcp_min_snd_mss;
|
||||
int sysctl_tcp_probe_threshold;
|
||||
u32 sysctl_tcp_probe_interval;
|
||||
|
||||
|
@@ -1,14 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* netprio_cgroup.h Control Group Priority set
|
||||
*
|
||||
*
|
||||
* Authors: Neil Horman <nhorman@tuxdriver.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _NETPRIO_CGROUP_H
|
||||
|
@@ -160,7 +160,7 @@ struct nexthop *nexthop_mpath_select(const struct nexthop *nh, int nhsel)
|
||||
/* for_nexthops macros in fib_semantics.c grabs a pointer to
|
||||
* the nexthop before checking nhsel
|
||||
*/
|
||||
if (nhsel > nhg->num_nh)
|
||||
if (nhsel >= nhg->num_nh)
|
||||
return NULL;
|
||||
|
||||
return nhg->nh_entries[nhsel].nh;
|
||||
@@ -305,4 +305,8 @@ static inline void nexthop_path_fib6_result(struct fib6_result *res, int hash)
|
||||
res->nh = &nhi->fib6_nh;
|
||||
}
|
||||
}
|
||||
|
||||
int nexthop_for_each_fib6_nh(struct nexthop *nh,
|
||||
int (*cb)(struct fib6_nh *nh, void *arg),
|
||||
void *arg);
|
||||
#endif
|
||||
|
@@ -1,16 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* NFC Digital Protocol stack
|
||||
* Copyright (c) 2013, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __NFC_DIGITAL_H
|
||||
|
@@ -1,19 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Link Layer Control manager public interface
|
||||
*
|
||||
* Copyright (C) 2012 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __NFC_LLC_H_
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* The NFC Controller Interface is the communication protocol between an
|
||||
* NFC Controller (NFCC) and a Device Host (DH).
|
||||
@@ -10,19 +11,6 @@
|
||||
* Acknowledgements:
|
||||
* This file is based on hci.h, which was written
|
||||
* by Maxim Krasnyansky.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __NCI_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* The NFC Controller Interface is the communication protocol between an
|
||||
* NFC Controller (NFCC) and a Device Host (DH).
|
||||
@@ -11,19 +12,6 @@
|
||||
* Acknowledgements:
|
||||
* This file is based on hci_core.h, which was written
|
||||
* by Maxim Krasnyansky.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __NCI_CORE_H
|
||||
|
@@ -16,14 +16,16 @@
|
||||
* page_pool_alloc_pages() call. Drivers should likely use
|
||||
* page_pool_dev_alloc_pages() replacing dev_alloc_pages().
|
||||
*
|
||||
* If page_pool handles DMA mapping (use page->private), then API user
|
||||
* is responsible for invoking page_pool_put_page() once. In-case of
|
||||
* elevated refcnt, the DMA state is released, assuming other users of
|
||||
* the page will eventually call put_page().
|
||||
* API keeps track of in-flight pages, in-order to let API user know
|
||||
* when it is safe to dealloactor page_pool object. Thus, API users
|
||||
* must make sure to call page_pool_release_page() when a page is
|
||||
* "leaving" the page_pool. Or call page_pool_put_page() where
|
||||
* appropiate. For maintaining correct accounting.
|
||||
*
|
||||
* If no DMA mapping is done, then it can act as shim-layer that
|
||||
* fall-through to alloc_page. As no state is kept on the page, the
|
||||
* regular put_page() call is sufficient.
|
||||
* API user must only call page_pool_put_page() once on a page, as it
|
||||
* will either recycle the page, or in case of elevated refcnt, it
|
||||
* will release the DMA mapping and in-flight state accounting. We
|
||||
* hope to lift this requirement in the future.
|
||||
*/
|
||||
#ifndef _NET_PAGE_POOL_H
|
||||
#define _NET_PAGE_POOL_H
|
||||
@@ -66,9 +68,10 @@ struct page_pool_params {
|
||||
};
|
||||
|
||||
struct page_pool {
|
||||
struct rcu_head rcu;
|
||||
struct page_pool_params p;
|
||||
|
||||
u32 pages_state_hold_cnt;
|
||||
|
||||
/*
|
||||
* Data structure for allocation side
|
||||
*
|
||||
@@ -96,6 +99,8 @@ struct page_pool {
|
||||
* TODO: Implement bulk return pages into this structure.
|
||||
*/
|
||||
struct ptr_ring ring;
|
||||
|
||||
atomic_t pages_state_release_cnt;
|
||||
};
|
||||
|
||||
struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp);
|
||||
@@ -109,7 +114,16 @@ static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool)
|
||||
|
||||
struct page_pool *page_pool_create(const struct page_pool_params *params);
|
||||
|
||||
void page_pool_destroy(struct page_pool *pool);
|
||||
void __page_pool_free(struct page_pool *pool);
|
||||
static inline void page_pool_free(struct page_pool *pool)
|
||||
{
|
||||
/* When page_pool isn't compiled-in, net/core/xdp.c doesn't
|
||||
* allow registering MEM_TYPE_PAGE_POOL, but shield linker.
|
||||
*/
|
||||
#ifdef CONFIG_PAGE_POOL
|
||||
__page_pool_free(pool);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Never call this directly, use helpers below */
|
||||
void __page_pool_put_page(struct page_pool *pool,
|
||||
@@ -132,6 +146,43 @@ static inline void page_pool_recycle_direct(struct page_pool *pool,
|
||||
__page_pool_put_page(pool, page, true);
|
||||
}
|
||||
|
||||
/* API user MUST have disconnected alloc-side (not allowed to call
|
||||
* page_pool_alloc_pages()) before calling this. The free-side can
|
||||
* still run concurrently, to handle in-flight packet-pages.
|
||||
*
|
||||
* A request to shutdown can fail (with false) if there are still
|
||||
* in-flight packet-pages.
|
||||
*/
|
||||
bool __page_pool_request_shutdown(struct page_pool *pool);
|
||||
static inline bool page_pool_request_shutdown(struct page_pool *pool)
|
||||
{
|
||||
bool safe_to_remove = false;
|
||||
|
||||
#ifdef CONFIG_PAGE_POOL
|
||||
safe_to_remove = __page_pool_request_shutdown(pool);
|
||||
#endif
|
||||
return safe_to_remove;
|
||||
}
|
||||
|
||||
/* Disconnects a page (from a page_pool). API users can have a need
|
||||
* to disconnect a page (from a page_pool), to allow it to be used as
|
||||
* a regular page (that will eventually be returned to the normal
|
||||
* page-allocator via put_page).
|
||||
*/
|
||||
void page_pool_unmap_page(struct page_pool *pool, struct page *page);
|
||||
static inline void page_pool_release_page(struct page_pool *pool,
|
||||
struct page *page)
|
||||
{
|
||||
#ifdef CONFIG_PAGE_POOL
|
||||
page_pool_unmap_page(pool, page);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline dma_addr_t page_pool_get_dma_addr(struct page *page)
|
||||
{
|
||||
return page->dma_addr;
|
||||
}
|
||||
|
||||
static inline bool is_page_pool_compiled_in(void)
|
||||
{
|
||||
#ifdef CONFIG_PAGE_POOL
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* File: pep_gprs.h
|
||||
*
|
||||
@@ -6,20 +7,6 @@
|
||||
* Copyright (C) 2008 Nokia Corporation.
|
||||
*
|
||||
* Author: Rémi Denis-Courmont
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef NET_PHONET_GPRS_H
|
||||
|
@@ -1,23 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* File: pep.h
|
||||
*
|
||||
* Phonet Pipe End Point sockets definitions
|
||||
*
|
||||
* Copyright (C) 2008 Nokia Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef NET_PHONET_PEP_H
|
||||
|
@@ -1,23 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* File: af_phonet.h
|
||||
*
|
||||
* Phonet sockets kernel definitions
|
||||
*
|
||||
* Copyright (C) 2008 Nokia Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AF_PHONET_H
|
||||
|
@@ -1,23 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* File: pn_dev.h
|
||||
*
|
||||
* Phonet network device
|
||||
*
|
||||
* Copyright (C) 2008 Nokia Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef PN_DEV_H
|
||||
|
@@ -1,14 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the "ping" module.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _PING_H
|
||||
#define _PING_H
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include <net/sch_generic.h>
|
||||
#include <net/act_api.h>
|
||||
#include <net/flow_offload.h>
|
||||
#include <net/net_namespace.h>
|
||||
|
||||
/* TC action not accessible from user space */
|
||||
#define TC_ACT_REINSERT (TC_ACT_VALUE_MAX + 1)
|
||||
@@ -576,9 +577,6 @@ static inline int tcf_valid_offset(const struct sk_buff *skb,
|
||||
(ptr <= (ptr + len)));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_CLS_IND
|
||||
#include <net/net_namespace.h>
|
||||
|
||||
static inline int
|
||||
tcf_change_indev(struct net *net, struct nlattr *indev_tlv,
|
||||
struct netlink_ext_ack *extack)
|
||||
@@ -605,7 +603,6 @@ tcf_match_indev(struct sk_buff *skb, int ifindex)
|
||||
return false;
|
||||
return ifindex == skb->skb_iif;
|
||||
}
|
||||
#endif /* CONFIG_NET_CLS_IND */
|
||||
|
||||
int tc_setup_flow_action(struct flow_action *flow_action,
|
||||
const struct tcf_exts *exts);
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -9,11 +10,6 @@
|
||||
*
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* Changes:
|
||||
* Alan Cox : Added a name field and a frag handler
|
||||
* field for later.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -8,11 +9,6 @@
|
||||
* Version: @(#)raw.h 1.0.2 05/07/93
|
||||
*
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _RAW_H
|
||||
#define _RAW_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* NET Generic infrastructure for Network protocols.
|
||||
*
|
||||
@@ -6,11 +7,6 @@
|
||||
* Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
*
|
||||
* From code originally in include/net/tcp.h
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _REQUEST_SOCK_H
|
||||
#define _REQUEST_SOCK_H
|
||||
@@ -101,6 +97,9 @@ reqsk_alloc(const struct request_sock_ops *ops, struct sock *sk_listener,
|
||||
sk_node_init(&req_to_sk(req)->sk_node);
|
||||
sk_tx_queue_clear(req_to_sk(req));
|
||||
req->saved_syn = NULL;
|
||||
req->num_timeout = 0;
|
||||
req->num_retrans = 0;
|
||||
req->sk = NULL;
|
||||
refcount_set(&req->rsk_refcnt, 0);
|
||||
|
||||
return req;
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -15,11 +16,6 @@
|
||||
* Alexey Kuznetsov: Major changes for new routing code.
|
||||
* Mike McLagan : Routing by source
|
||||
* Robert Olsson : Added rt_cache statistics
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _ROUTE_H
|
||||
#define _ROUTE_H
|
||||
@@ -234,6 +230,10 @@ void fib_modify_prefix_metric(struct in_ifaddr *ifa, u32 new_metric);
|
||||
void rt_add_uncached_list(struct rtable *rt);
|
||||
void rt_del_uncached_list(struct rtable *rt);
|
||||
|
||||
int fib_dump_info_fnhe(struct sk_buff *skb, struct netlink_callback *cb,
|
||||
u32 table_id, struct fib_info *fi,
|
||||
int *fa_index, int fa_start);
|
||||
|
||||
static inline void ip_rt_put(struct rtable *rt)
|
||||
{
|
||||
/* dst_release() accepts a NULL parameter.
|
||||
|
@@ -1,14 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* SR-IPv6 implementation
|
||||
*
|
||||
* Author:
|
||||
* David Lebrun <david.lebrun@uclouvain.be>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_SEG6_H
|
||||
|
@@ -1,14 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* SR-IPv6 implementation
|
||||
*
|
||||
* Author:
|
||||
* David Lebrun <david.lebrun@uclouvain.be>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_SEG6_HMAC_H
|
||||
|
@@ -1,15 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* SR-IPv6 implementation
|
||||
*
|
||||
* Authors:
|
||||
* David Lebrun <david.lebrun@uclouvain.be>
|
||||
* eBPF support: Mathieu Xhonneux <m.xhonneux@gmail.com>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _NET_SEG6_LOCAL_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
*
|
||||
* SNMP MIB entries for the IP subsystem.
|
||||
@@ -8,12 +9,6 @@
|
||||
* be silly as SNMP is a pain in the backside in places). We do
|
||||
* however need to collect the MIB statistics and export them
|
||||
* out of /proc (eventually)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _SNMP_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -30,12 +31,6 @@
|
||||
* respective headers and ipv4/v6, etc now
|
||||
* use private slabcaches for its socks
|
||||
* Pedro Hortas : New flags field for socket options
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _SOCK_H
|
||||
#define _SOCK_H
|
||||
@@ -1468,12 +1463,14 @@ static inline void sk_mem_uncharge(struct sock *sk, int size)
|
||||
__sk_mem_reclaim(sk, 1 << 20);
|
||||
}
|
||||
|
||||
DECLARE_STATIC_KEY_FALSE(tcp_tx_skb_cache_key);
|
||||
static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
|
||||
sk->sk_wmem_queued -= skb->truesize;
|
||||
sk_mem_uncharge(sk, skb->truesize);
|
||||
if (!sk->sk_tx_skb_cache && !skb_cloned(skb)) {
|
||||
if (static_branch_unlikely(&tcp_tx_skb_cache_key) &&
|
||||
!sk->sk_tx_skb_cache && !skb_cloned(skb)) {
|
||||
skb_zcopy_clear(skb, true);
|
||||
sk->sk_tx_skb_cache = skb;
|
||||
return;
|
||||
@@ -2438,13 +2435,11 @@ static inline void skb_setup_tx_timestamp(struct sk_buff *skb, __u16 tsflags)
|
||||
* This routine must be called with interrupts disabled or with the socket
|
||||
* locked so that the sk_buff queue operation is ok.
|
||||
*/
|
||||
DECLARE_STATIC_KEY_FALSE(tcp_rx_skb_cache_key);
|
||||
static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
__skb_unlink(skb, &sk->sk_receive_queue);
|
||||
if (
|
||||
#ifdef CONFIG_RPS
|
||||
!static_branch_unlikely(&rps_needed) &&
|
||||
#endif
|
||||
if (static_branch_unlikely(&tcp_rx_skb_cache_key) &&
|
||||
!sk->sk_rx_skb_cache) {
|
||||
sk->sk_rx_skb_cache = skb;
|
||||
skb_orphan(skb);
|
||||
@@ -2539,6 +2534,8 @@ extern int sysctl_optmem_max;
|
||||
extern __u32 sysctl_wmem_default;
|
||||
extern __u32 sysctl_rmem_default;
|
||||
|
||||
DECLARE_STATIC_KEY_FALSE(net_high_order_alloc_disable_key);
|
||||
|
||||
static inline int sk_get_wmem0(const struct sock *sk, const struct proto *proto)
|
||||
{
|
||||
/* Does this proto have per netns sysctl_wmem ? */
|
||||
|
@@ -35,6 +35,8 @@ extern struct sock *reuseport_select_sock(struct sock *sk,
|
||||
struct sk_buff *skb,
|
||||
int hdr_len);
|
||||
extern int reuseport_attach_prog(struct sock *sk, struct bpf_prog *prog);
|
||||
extern int reuseport_detach_prog(struct sock *sk);
|
||||
|
||||
int reuseport_get_id(struct sock_reuseport *reuse);
|
||||
|
||||
#endif /* _SOCK_REUSEPORT_H */
|
||||
|
@@ -1,11 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Stream Parser
|
||||
*
|
||||
* Copyright (c) 2016 Tom Herbert <tom@herbertland.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __NET_STRPARSER_H_
|
||||
|
@@ -1,12 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* include/net/switchdev.h - Switch device API
|
||||
* Copyright (c) 2014-2015 Jiri Pirko <jiri@resnulli.us>
|
||||
* Copyright (c) 2014-2015 Scott Feldman <sfeldma@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
#ifndef _LINUX_SWITCHDEV_H_
|
||||
#define _LINUX_SWITCHDEV_H_
|
||||
|
@@ -1,10 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __NET_TC_BPF_H
|
||||
|
@@ -23,6 +23,11 @@ struct tcf_ctinfo {
|
||||
u64 stats_cpmark_set;
|
||||
};
|
||||
|
||||
enum {
|
||||
CTINFO_MODE_DSCP = BIT(0),
|
||||
CTINFO_MODE_CPMARK = BIT(1)
|
||||
};
|
||||
|
||||
#define to_ctinfo(a) ((struct tcf_ctinfo *)a)
|
||||
|
||||
#endif /* __NET_TC_CTINFO_H */
|
||||
|
@@ -1,18 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2008, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author: Alexander Duyck <alexander.h.duyck@intel.com>
|
||||
*/
|
||||
|
||||
|
@@ -1,10 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2016, Jamal Hadi Salim
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __NET_TC_SKBMOD_H
|
||||
|
@@ -1,11 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2016, Amir Vadai <amir@vadai.me>
|
||||
* Copyright (c) 2016, Mellanox Technologies. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __NET_TC_TUNNEL_KEY_H
|
||||
|
@@ -1,10 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __NET_TC_VLAN_H
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
@@ -9,11 +10,6 @@
|
||||
*
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _TCP_H
|
||||
#define _TCP_H
|
||||
@@ -47,6 +43,7 @@
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/memcontrol.h>
|
||||
#include <linux/bpf-cgroup.h>
|
||||
#include <linux/siphash.h>
|
||||
|
||||
extern struct inet_hashinfo tcp_hashinfo;
|
||||
|
||||
@@ -55,6 +52,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo);
|
||||
|
||||
#define MAX_TCP_HEADER (128 + MAX_HEADER)
|
||||
#define MAX_TCP_OPTION_SPACE 40
|
||||
#define TCP_MIN_SND_MSS 48
|
||||
#define TCP_MIN_GSO_SIZE (TCP_MIN_SND_MSS - MAX_TCP_OPTION_SPACE)
|
||||
|
||||
/*
|
||||
* Never offer a window over 32767 without using window scaling. Some
|
||||
@@ -1614,8 +1613,7 @@ void tcp_free_fastopen_req(struct tcp_sock *tp);
|
||||
void tcp_fastopen_destroy_cipher(struct sock *sk);
|
||||
void tcp_fastopen_ctx_destroy(struct net *net);
|
||||
int tcp_fastopen_reset_cipher(struct net *net, struct sock *sk,
|
||||
void *primary_key, void *backup_key,
|
||||
unsigned int len);
|
||||
void *primary_key, void *backup_key);
|
||||
void tcp_fastopen_add_skb(struct sock *sk, struct sk_buff *skb);
|
||||
struct sock *tcp_try_fastopen(struct sock *sk, struct sk_buff *skb,
|
||||
struct request_sock *req,
|
||||
@@ -1625,16 +1623,16 @@ void tcp_fastopen_init_key_once(struct net *net);
|
||||
bool tcp_fastopen_cookie_check(struct sock *sk, u16 *mss,
|
||||
struct tcp_fastopen_cookie *cookie);
|
||||
bool tcp_fastopen_defer_connect(struct sock *sk, int *err);
|
||||
#define TCP_FASTOPEN_KEY_LENGTH 16
|
||||
#define TCP_FASTOPEN_KEY_LENGTH sizeof(siphash_key_t)
|
||||
#define TCP_FASTOPEN_KEY_MAX 2
|
||||
#define TCP_FASTOPEN_KEY_BUF_LENGTH \
|
||||
(TCP_FASTOPEN_KEY_LENGTH * TCP_FASTOPEN_KEY_MAX)
|
||||
|
||||
/* Fastopen key context */
|
||||
struct tcp_fastopen_context {
|
||||
struct crypto_cipher *tfm[TCP_FASTOPEN_KEY_MAX];
|
||||
__u8 key[TCP_FASTOPEN_KEY_BUF_LENGTH];
|
||||
struct rcu_head rcu;
|
||||
siphash_key_t key[TCP_FASTOPEN_KEY_MAX];
|
||||
int num;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
extern unsigned int sysctl_tcp_fastopen_blackhole_timeout;
|
||||
@@ -1669,9 +1667,7 @@ bool tcp_fastopen_cookie_match(const struct tcp_fastopen_cookie *foc,
|
||||
static inline
|
||||
int tcp_fastopen_context_len(const struct tcp_fastopen_context *ctx)
|
||||
{
|
||||
if (ctx->tfm[1])
|
||||
return 2;
|
||||
return 1;
|
||||
return ctx->num;
|
||||
}
|
||||
|
||||
/* Latencies incurred by various limits for a sender. They are
|
||||
@@ -2236,4 +2232,26 @@ void clean_acked_data_disable(struct inet_connection_sock *icsk);
|
||||
void clean_acked_data_flush(void);
|
||||
#endif
|
||||
|
||||
DECLARE_STATIC_KEY_FALSE(tcp_tx_delay_enabled);
|
||||
static inline void tcp_add_tx_delay(struct sk_buff *skb,
|
||||
const struct tcp_sock *tp)
|
||||
{
|
||||
if (static_branch_unlikely(&tcp_tx_delay_enabled))
|
||||
skb->skb_mstamp_ns += (u64)tp->tcp_tx_delay * NSEC_PER_USEC;
|
||||
}
|
||||
|
||||
/* Compute Earliest Departure Time for some control packets
|
||||
* like ACK or RST for TIME_WAIT or non ESTABLISHED sockets.
|
||||
*/
|
||||
static inline u64 tcp_transmit_time(const struct sock *sk)
|
||||
{
|
||||
if (static_branch_unlikely(&tcp_tx_delay_enabled)) {
|
||||
u32 delay = (sk->sk_state == TCP_TIME_WAIT) ?
|
||||
tcp_twsk(sk)->tw_tx_delay : tcp_sk(sk)->tcp_tx_delay;
|
||||
|
||||
return tcp_clock_ns() + (u64)delay * NSEC_PER_USEC;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* _TCP_H */
|
||||
|
@@ -1,14 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the TCP protocol sk_state field.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef _LINUX_TCP_STATES_H
|
||||
#define _LINUX_TCP_STATES_H
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user