linux/include/linux/netdev_features.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Network device features.
 */
#ifndef _LINUX_NETDEV_FEATURES_H
#define _LINUX_NETDEV_FEATURES_H

#include <linux/types.h>
#include <linux/bitops.h>
#include <asm/byteorder.h>

netdev_features_t;

enum {};

/* copy'n'paste compression ;) */
#define __NETIF_F_BIT(bit)
#define __NETIF_F(name)

#define NETIF_F_FCOE_CRC
#define NETIF_F_FCOE_MTU
#define NETIF_F_FRAGLIST
#define NETIF_F_FSO
#define NETIF_F_GRO
#define NETIF_F_GRO_HW
#define NETIF_F_GSO
#define NETIF_F_GSO_ROBUST
#define NETIF_F_HIGHDMA
#define NETIF_F_HW_CSUM
#define NETIF_F_HW_VLAN_CTAG_FILTER
#define NETIF_F_HW_VLAN_CTAG_RX
#define NETIF_F_HW_VLAN_CTAG_TX
#define NETIF_F_IP_CSUM
#define NETIF_F_IPV6_CSUM
#define NETIF_F_LLTX
#define NETIF_F_LOOPBACK
#define NETIF_F_LRO
#define NETIF_F_NETNS_LOCAL
#define NETIF_F_NOCACHE_COPY
#define NETIF_F_NTUPLE
#define NETIF_F_RXCSUM
#define NETIF_F_RXHASH
#define NETIF_F_SCTP_CRC
#define NETIF_F_SG
#define NETIF_F_TSO6
#define NETIF_F_TSO_ECN
#define NETIF_F_TSO
#define NETIF_F_VLAN_CHALLENGED
#define NETIF_F_RXFCS
#define NETIF_F_RXALL
#define NETIF_F_GSO_GRE
#define NETIF_F_GSO_GRE_CSUM
#define NETIF_F_GSO_IPXIP4
#define NETIF_F_GSO_IPXIP6
#define NETIF_F_GSO_UDP_TUNNEL
#define NETIF_F_GSO_UDP_TUNNEL_CSUM
#define NETIF_F_TSO_MANGLEID
#define NETIF_F_GSO_PARTIAL
#define NETIF_F_GSO_TUNNEL_REMCSUM
#define NETIF_F_GSO_SCTP
#define NETIF_F_GSO_ESP
#define NETIF_F_GSO_UDP
#define NETIF_F_HW_VLAN_STAG_FILTER
#define NETIF_F_HW_VLAN_STAG_RX
#define NETIF_F_HW_VLAN_STAG_TX
#define NETIF_F_HW_L2FW_DOFFLOAD
#define NETIF_F_HW_TC
#define NETIF_F_HW_ESP
#define NETIF_F_HW_ESP_TX_CSUM
#define NETIF_F_RX_UDP_TUNNEL_PORT
#define NETIF_F_HW_TLS_RECORD
#define NETIF_F_GSO_UDP_L4
#define NETIF_F_HW_TLS_TX
#define NETIF_F_HW_TLS_RX
#define NETIF_F_GRO_FRAGLIST
#define NETIF_F_GSO_FRAGLIST
#define NETIF_F_HW_MACSEC
#define NETIF_F_GRO_UDP_FWD
#define NETIF_F_HW_HSR_TAG_INS
#define NETIF_F_HW_HSR_TAG_RM
#define NETIF_F_HW_HSR_FWD
#define NETIF_F_HW_HSR_DUP

/* Finds the next feature with the highest number of the range of start-1 till 0.
 */
static inline int find_next_netdev_feature(u64 feature, unsigned long start)
{}

/* This goes for the MSB to the LSB through the set feature bits,
 * mask_addr should be a u64 and bit an int
 */
#define for_each_netdev_feature(mask_addr, bit)

/* Features valid for ethtool to change */
/* = all defined minus driver/device-class-related */
#define NETIF_F_NEVER_CHANGE

/* remember that ((t)1 << t_BITS) is undefined in C99 */
#define NETIF_F_ETHTOOL_BITS

/* Segmentation offload feature mask */
#define NETIF_F_GSO_MASK

/* List of IP checksum features. Note that NETIF_F_HW_CSUM should not be
 * set in features when NETIF_F_IP_CSUM or NETIF_F_IPV6_CSUM are set--
 * this would be contradictory
 */
#define NETIF_F_CSUM_MASK

#define NETIF_F_ALL_TSO

#define NETIF_F_ALL_FCOE

/* List of features with software fallbacks. */
#define NETIF_F_GSO_SOFTWARE

/*
 * If one device supports one of these features, then enable them
 * for all in netdev_increment_features.
 */
#define NETIF_F_ONE_FOR_ALL

/*
 * If one device doesn't support one of these features, then disable it
 * for all in netdev_increment_features.
 */
#define NETIF_F_ALL_FOR_ALL

/*
 * If upper/master device has these features disabled, they must be disabled
 * on all lower/slave devices as well.
 */
#define NETIF_F_UPPER_DISABLES

/* changeable features with no special hardware requirements */
#define NETIF_F_SOFT_FEATURES

/* Changeable features with no special hardware requirements that defaults to off. */
#define NETIF_F_SOFT_FEATURES_OFF

#define NETIF_F_VLAN_FEATURES

#define NETIF_F_GSO_ENCAP_ALL

#endif	/* _LINUX_NETDEV_FEATURES_H */