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

38 lines
1.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2022 - 2024 Mucse Corporation. */
#ifndef _RNPGBE_SRIOV_H_
#define _RNPGBE_SRIOV_H_
int rnpgbe_setup_ring_maxrate(struct rnpgbe_adapter *adapter, int ring,
u64 max_rate);
int rnpgbe_get_vf_ringnum(struct rnpgbe_hw *hw, int vf, int num);
void rnpgbe_restore_vf_macs(struct rnpgbe_adapter *adapter);
void rnpgbe_restore_vf_multicasts(struct rnpgbe_adapter *adapter);
void rnpgbe_restore_vf_macvlans(struct rnpgbe_adapter *adapter);
void rnpgbe_msg_task(struct rnpgbe_adapter *adapter);
int rnpgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask);
void rnpgbe_ping_all_vfs(struct rnpgbe_adapter *adapter);
int rnpgbe_ndo_set_vf_bw(struct net_device *netdev, int vf,
int __always_unused min_tx_rate, int max_tx_rate);
int rnpgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac);
int rnpgbe_msg_post_status(struct rnpgbe_adapter *adapter,
enum PF_STATUS status);
int rnpgbe_ndo_set_vf_bw(struct net_device *netdev, int vf,
int __always_unused min_tx_rate, int max_tx_rate);
int rnpgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
int rnpgbe_ndo_get_vf_config(struct net_device *netdev, int vf,
struct ifla_vf_info *ivi);
void rnpgbe_check_vf_rate_limit(struct rnpgbe_adapter *adapter);
int rnpgbe_disable_sriov(struct rnpgbe_adapter *adapter);
#if IS_ENABLED(CONFIG_PCI_IOV)
void rnpgbe_enable_sriov_true(struct rnpgbe_adapter *adapter);
void rnpgbe_enable_sriov(struct rnpgbe_adapter *adapter);
#endif
int rnpgbe_pci_sriov_configure(struct pci_dev *dev, int num_vfs);
int rnpgbe_ndo_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos,
__be16 vlan_proto);
int rnpgbe_ndo_set_vf_link_state(struct net_device *netdev, int vf, int state);
int rnpgbe_ndo_set_vf_trust(struct net_device *netdev, int vf, bool setting);
#endif /* _RNPGBE_SRIOV_H_ */