cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

nfp_net_sriov.h (2876B)


      1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
      2/* Copyright (C) 2017-2019 Netronome Systems, Inc. */
      3
      4#ifndef _NFP_NET_SRIOV_H_
      5#define _NFP_NET_SRIOV_H_
      6
      7/* SRIOV VF configuration.
      8 * The configuration memory begins with a mailbox region for communication with
      9 * the firmware followed by individual VF entries.
     10 */
     11#define NFP_NET_VF_CFG_SZ		16
     12#define NFP_NET_VF_CFG_MB_SZ		16
     13
     14/* VF config mailbox */
     15#define NFP_NET_VF_CFG_MB				0x0
     16#define NFP_NET_VF_CFG_MB_CAP				0x0
     17#define   NFP_NET_VF_CFG_MB_CAP_MAC			  (0x1 << 0)
     18#define   NFP_NET_VF_CFG_MB_CAP_VLAN			  (0x1 << 1)
     19#define   NFP_NET_VF_CFG_MB_CAP_SPOOF			  (0x1 << 2)
     20#define   NFP_NET_VF_CFG_MB_CAP_LINK_STATE		  (0x1 << 3)
     21#define   NFP_NET_VF_CFG_MB_CAP_TRUST			  (0x1 << 4)
     22#define   NFP_NET_VF_CFG_MB_CAP_VLAN_PROTO		  (0x1 << 5)
     23#define   NFP_NET_VF_CFG_MB_CAP_RATE			  (0x1 << 6)
     24#define NFP_NET_VF_CFG_MB_RET				0x2
     25#define NFP_NET_VF_CFG_MB_UPD				0x4
     26#define   NFP_NET_VF_CFG_MB_UPD_MAC			  (0x1 << 0)
     27#define   NFP_NET_VF_CFG_MB_UPD_VLAN			  (0x1 << 1)
     28#define   NFP_NET_VF_CFG_MB_UPD_SPOOF			  (0x1 << 2)
     29#define   NFP_NET_VF_CFG_MB_UPD_LINK_STATE		  (0x1 << 3)
     30#define   NFP_NET_VF_CFG_MB_UPD_TRUST			  (0x1 << 4)
     31#define   NFP_NET_VF_CFG_MB_UPD_VLAN_PROTO		  (0x1 << 5)
     32#define   NFP_NET_VF_CFG_MB_UPD_RATE			  (0x1 << 6)
     33#define NFP_NET_VF_CFG_MB_VF_NUM			0x7
     34
     35/* VF config entry
     36 * MAC_LO is set that the MAC address can be read in a single 6 byte read
     37 * by the NFP
     38 */
     39#define NFP_NET_VF_CFG_MAC				0x0
     40#define   NFP_NET_VF_CFG_MAC_HI				  0x0
     41#define   NFP_NET_VF_CFG_MAC_LO				  0x6
     42#define NFP_NET_VF_CFG_CTRL				0x4
     43#define   NFP_NET_VF_CFG_CTRL_TRUST			  0x8
     44#define   NFP_NET_VF_CFG_CTRL_SPOOF			  0x4
     45#define   NFP_NET_VF_CFG_CTRL_LINK_STATE		  0x3
     46#define     NFP_NET_VF_CFG_LS_MODE_AUTO			    0
     47#define     NFP_NET_VF_CFG_LS_MODE_ENABLE		    1
     48#define     NFP_NET_VF_CFG_LS_MODE_DISABLE		    2
     49#define NFP_NET_VF_CFG_VLAN				0x8
     50#define   NFP_NET_VF_CFG_VLAN_PROT			  0xffff0000
     51#define   NFP_NET_VF_CFG_VLAN_QOS			  0xe000
     52#define   NFP_NET_VF_CFG_VLAN_VID			  0x0fff
     53#define NFP_NET_VF_CFG_RATE				0xc
     54#define   NFP_NET_VF_CFG_MIN_RATE			0x0000ffff
     55#define   NFP_NET_VF_CFG_MAX_RATE			0xffff0000
     56
     57#define NFP_NET_VF_RATE_MAX			0xffff
     58
     59int nfp_app_set_vf_mac(struct net_device *netdev, int vf, u8 *mac);
     60int nfp_app_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos,
     61			__be16 vlan_proto);
     62int nfp_app_set_vf_rate(struct net_device *netdev, int vf, int min_tx_rate,
     63			int max_tx_rate);
     64int nfp_app_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
     65int nfp_app_set_vf_trust(struct net_device *netdev, int vf, bool setting);
     66int nfp_app_set_vf_link_state(struct net_device *netdev, int vf,
     67			      int link_state);
     68int nfp_app_get_vf_config(struct net_device *netdev, int vf,
     69			  struct ifla_vf_info *ivi);
     70
     71#endif /* _NFP_NET_SRIOV_H_ */