2026-01-29 22:25:33 +08:00

78 lines
2.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2020 - 2024, Chengdu BeiZhongWangXin Technology Co., Ltd. */
#ifndef _NE6X_FEATURE_H
#define _NE6X_FEATURE_H
#define NE6X_F_RSS BIT(0)
#define NE6X_F_PROMISC BIT(1)
#define NE6X_F_RX_IPV4_CKSUM BIT(2)
#define NE6X_F_RX_UDP_CKSUM BIT(3)
#define NE6X_F_RX_TCP_CKSUM BIT(4)
#define NE6X_F_RX_SCTP_CKSUM BIT(5)
#define NE6X_F_RX_VLAN_STRIP BIT(6)
#define NE6X_F_RX_QINQ_STRIP BIT(7)
#define NE6X_F_RX_VLAN_FILTER BIT(8)
#define NE6X_F_LRO BIT(9)
#define NE6X_F_RX_DISABLE BIT(10)
#define NE6X_F_RX_FW_LLDP BIT(11)
#define NE6X_F_RX_ALLMULTI BIT(12)
#define NE6X_F_FLOW_STEERING BIT(15)
#define NE6X_F_TX_VLAN BIT(16)
#define NE6X_F_TX_IP_CKSUM BIT(17)
#define NE6X_F_TX_TCP_CKSUM BIT(18)
#define NE6X_F_TX_UDP_CKSUM BIT(19)
#define NE6X_F_TX_SCTP_CKSUM BIT(20)
#define NE6X_F_TX_TCP_SEG BIT(21)
#define NE6X_F_TX_UDP_SEG BIT(22)
#define NE6X_F_TX_QINQ BIT(23)
#define NE6X_F_TX_NIC_SWITCH BIT(24)
#define NE6X_F_TX_MAC_LEARN BIT(25)
#define NE6X_F_TX_DISABLE BIT(26)
#define NE6X_F_TX_QOSBANDWIDTH BIT(27)
#define NE6X_F_TX_UDP_TNL_SEG BIT(28)
#define NE6X_F_TX_UDP_TNL_CSUM BIT(29)
#define NE6X_OFFLOAD_RSS NE6X_F_RSS
#define NE6X_OFFLOAD_RXCSUM (NE6X_F_RX_IPV4_CKSUM | \
NE6X_F_RX_UDP_CKSUM | \
NE6X_F_RX_TCP_CKSUM | \
NE6X_F_RX_SCTP_CKSUM)
#define NE6X_OFFLOAD_TXCSUM (NE6X_F_TX_IP_CKSUM | \
NE6X_F_TX_TCP_CKSUM | \
NE6X_F_TX_UDP_CKSUM | \
NE6X_F_TX_UDP_TNL_CSUM)
#define NE6X_OFFLOAD_LRO NE6X_F_LRO
#define NE6X_OFFLOAD_TSO NE6X_F_TX_TCP_SEG
#define NE6X_OFFLOAD_UFO NE6X_F_TX_UDP_SEG
#define NE6X_OFFLOAD_SCTP_CSUM NE6X_F_TX_SCTP_CKSUM
#define NE6X_OFFLOAD_RXD_VLAN (NE6X_F_RX_VLAN_STRIP | \
NE6X_F_RX_QINQ_STRIP | \
NE6X_F_RX_VLAN_FILTER)
#define NE6X_OFFLOAD_TXD_VLAN (NE6X_F_TX_VLAN | NE6X_F_TX_QINQ)
#define NE6X_OFFLOAD_L2 NE6X_F_TX_NIC_SWITCH
#define NE6X_F_SMART_ENABLED BIT(0)
#define NE6X_F_SRIOV_ENABLED BIT(1)
#define NE6X_F_SWITCH_ENABLED BIT(2)
#define NE6X_F_L2FDB_LEARN_ENABLED BIT(3)
#define NE6X_F_VLAN_ENABLED BIT(4)
#define NE6X_F_WHITELIST_ENABLED BIT(5)
#define NE6X_F_DDOS_ENABLED BIT(6)
#define NE6X_F_TRUST_VLAN_ENABLED BIT(7)
#define NE6X_F_S_ROCE_ICRC_ENABLED BIT(8)
#define NE6X_F_ACK_FLOOD BIT(0)
#define NE6X_F_PUSH_ACK_FLOOD BIT(1)
#define NE6X_F_SYN_ACK_FLOOD BIT(2)
#define NE6X_F_FIN_FLOOD BIT(3)
#define NE6X_F_RST_FLOOD BIT(4)
#define NE6X_F_PUSH_SYN_ACK_FLOOD BIT(5)
#define NE6X_F_UDP_FLOOD BIT(6)
#define NE6X_F_ICMP_FLOOD BIT(7)
#define NE6X_F_FRAGMENT_FLOOD BIT(8)
#endif