linux/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Copyright(c) 1999 - 2018 Intel Corporation. */
   3
   4#ifndef _IXGBE_SRIOV_H_
   5#define _IXGBE_SRIOV_H_
   6
   7/*  ixgbe driver limit the max number of VFs could be enabled to
   8 *  63 (IXGBE_MAX_VF_FUNCTIONS - 1)
   9 */
  10#define IXGBE_MAX_VFS_DRV_LIMIT  (IXGBE_MAX_VF_FUNCTIONS - 1)
  11#define IXGBE_MAX_VFS_1TC               IXGBE_MAX_VF_FUNCTIONS
  12#define IXGBE_MAX_VFS_4TC               32
  13#define IXGBE_MAX_VFS_8TC               16
  14
  15#ifdef CONFIG_PCI_IOV
  16void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter);
  17#endif
  18void ixgbe_msg_task(struct ixgbe_adapter *adapter);
  19int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask);
  20void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter);
  21void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter);
  22int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac);
  23int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
  24                           u8 qos, __be16 vlan_proto);
  25int ixgbe_link_mbps(struct ixgbe_adapter *adapter);
  26int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
  27                        int max_tx_rate);
  28int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
  29int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
  30                                  bool setting);
  31int ixgbe_ndo_set_vf_trust(struct net_device *netdev, int vf, bool setting);
  32int ixgbe_ndo_get_vf_config(struct net_device *netdev,
  33                            int vf, struct ifla_vf_info *ivi);
  34void ixgbe_check_vf_rate_limit(struct ixgbe_adapter *adapter);
  35int ixgbe_disable_sriov(struct ixgbe_adapter *adapter);
  36#ifdef CONFIG_PCI_IOV
  37void ixgbe_enable_sriov(struct ixgbe_adapter *adapter, unsigned int max_vfs);
  38#endif
  39int ixgbe_pci_sriov_configure(struct pci_dev *dev, int num_vfs);
  40
  41static inline void ixgbe_set_vmvir(struct ixgbe_adapter *adapter,
  42                                   u16 vid, u16 qos, u32 vf)
  43{
  44        struct ixgbe_hw *hw = &adapter->hw;
  45        u32 vmvir = vid | (qos << VLAN_PRIO_SHIFT) | IXGBE_VMVIR_VLANA_DEFAULT;
  46
  47        IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), vmvir);
  48}
  49
  50#endif /* _IXGBE_SRIOV_H_ */
  51
  52