1
2
3
4#ifndef _NFP_NET_SRIOV_H_
5#define _NFP_NET_SRIOV_H_
6
7
8
9
10
11
12#define NFP_NET_VF_CFG_SZ 16
13#define NFP_NET_VF_CFG_MB_SZ 16
14
15
16#define NFP_NET_VF_CFG_MB 0x0
17#define NFP_NET_VF_CFG_MB_CAP 0x0
18#define NFP_NET_VF_CFG_MB_CAP_MAC (0x1 << 0)
19#define NFP_NET_VF_CFG_MB_CAP_VLAN (0x1 << 1)
20#define NFP_NET_VF_CFG_MB_CAP_SPOOF (0x1 << 2)
21#define NFP_NET_VF_CFG_MB_CAP_LINK_STATE (0x1 << 3)
22#define NFP_NET_VF_CFG_MB_CAP_TRUST (0x1 << 4)
23#define NFP_NET_VF_CFG_MB_RET 0x2
24#define NFP_NET_VF_CFG_MB_UPD 0x4
25#define NFP_NET_VF_CFG_MB_UPD_MAC (0x1 << 0)
26#define NFP_NET_VF_CFG_MB_UPD_VLAN (0x1 << 1)
27#define NFP_NET_VF_CFG_MB_UPD_SPOOF (0x1 << 2)
28#define NFP_NET_VF_CFG_MB_UPD_LINK_STATE (0x1 << 3)
29#define NFP_NET_VF_CFG_MB_UPD_TRUST (0x1 << 4)
30#define NFP_NET_VF_CFG_MB_VF_NUM 0x7
31
32
33
34
35
36#define NFP_NET_VF_CFG_MAC 0x0
37#define NFP_NET_VF_CFG_MAC_HI 0x0
38#define NFP_NET_VF_CFG_MAC_LO 0x6
39#define NFP_NET_VF_CFG_CTRL 0x4
40#define NFP_NET_VF_CFG_CTRL_TRUST 0x8
41#define NFP_NET_VF_CFG_CTRL_SPOOF 0x4
42#define NFP_NET_VF_CFG_CTRL_LINK_STATE 0x3
43#define NFP_NET_VF_CFG_LS_MODE_AUTO 0
44#define NFP_NET_VF_CFG_LS_MODE_ENABLE 1
45#define NFP_NET_VF_CFG_LS_MODE_DISABLE 2
46#define NFP_NET_VF_CFG_VLAN 0x8
47#define NFP_NET_VF_CFG_VLAN_QOS 0xe000
48#define NFP_NET_VF_CFG_VLAN_VID 0x0fff
49
50int nfp_app_set_vf_mac(struct net_device *netdev, int vf, u8 *mac);
51int nfp_app_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos,
52 __be16 vlan_proto);
53int nfp_app_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
54int nfp_app_set_vf_trust(struct net_device *netdev, int vf, bool setting);
55int nfp_app_set_vf_link_state(struct net_device *netdev, int vf,
56 int link_state);
57int nfp_app_get_vf_config(struct net_device *netdev, int vf,
58 struct ifla_vf_info *ivi);
59
60#endif
61