Commit | Line | Data |
---|---|---|
afb736e9 AV |
1 | /* |
2 | * Copyright (c) 2013-2015, Mellanox Technologies, Ltd. All rights reserved. | |
3 | * | |
4 | * This software is available to you under a choice of one of two | |
5 | * licenses. You may choose to be licensed under the terms of the GNU | |
6 | * General Public License (GPL) Version 2, available from the file | |
7 | * COPYING in the main directory of this source tree, or the | |
8 | * OpenIB.org BSD license below: | |
9 | * | |
10 | * Redistribution and use in source and binary forms, with or | |
11 | * without modification, are permitted provided that the following | |
12 | * conditions are met: | |
13 | * | |
14 | * - Redistributions of source code must retain the above | |
15 | * copyright notice, this list of conditions and the following | |
16 | * disclaimer. | |
17 | * | |
18 | * - Redistributions in binary form must reproduce the above | |
19 | * copyright notice, this list of conditions and the following | |
20 | * disclaimer in the documentation and/or other materials | |
21 | * provided with the distribution. | |
22 | * | |
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |
27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
30 | * SOFTWARE. | |
31 | */ | |
32 | ||
33 | #ifndef __MLX5_VPORT_H__ | |
34 | #define __MLX5_VPORT_H__ | |
35 | ||
36 | #include <linux/mlx5/driver.h> | |
e16aea27 | 37 | #include <linux/mlx5/device.h> |
afb736e9 | 38 | |
e7546514 SM |
39 | u8 mlx5_query_vport_state(struct mlx5_core_dev *mdev, u8 opmod, u16 vport); |
40 | u8 mlx5_query_vport_admin_state(struct mlx5_core_dev *mdev, u8 opmod, | |
41 | u16 vport); | |
42 | int mlx5_modify_vport_admin_state(struct mlx5_core_dev *mdev, u8 opmod, | |
43 | u16 vport, u8 state); | |
e1d7d349 SM |
44 | int mlx5_query_nic_vport_mac_address(struct mlx5_core_dev *mdev, |
45 | u16 vport, u8 *addr); | |
46 | int mlx5_modify_nic_vport_mac_address(struct mlx5_core_dev *dev, | |
47 | u16 vport, u8 *addr); | |
cd255eff SM |
48 | int mlx5_query_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 *mtu); |
49 | int mlx5_modify_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 mtu); | |
9efa7525 AS |
50 | int mlx5_query_nic_vport_system_image_guid(struct mlx5_core_dev *mdev, |
51 | u64 *system_image_guid); | |
52 | int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid); | |
23898c76 NO |
53 | int mlx5_modify_nic_vport_node_guid(struct mlx5_core_dev *mdev, |
54 | u32 vport, u64 node_guid); | |
9efa7525 AS |
55 | int mlx5_query_nic_vport_qkey_viol_cntr(struct mlx5_core_dev *mdev, |
56 | u16 *qkey_viol_cntr); | |
707c4602 MD |
57 | int mlx5_query_hca_vport_gid(struct mlx5_core_dev *dev, u8 other_vport, |
58 | u8 port_num, u16 vf_num, u16 gid_index, | |
59 | union ib_gid *gid); | |
60 | int mlx5_query_hca_vport_pkey(struct mlx5_core_dev *dev, u8 other_vport, | |
61 | u8 port_num, u16 vf_num, u16 pkey_index, | |
62 | u16 *pkey); | |
63 | int mlx5_query_hca_vport_context(struct mlx5_core_dev *dev, | |
64 | u8 other_vport, u8 port_num, | |
65 | u16 vf_num, | |
66 | struct mlx5_hca_vport_context *rep); | |
67 | int mlx5_query_hca_vport_system_image_guid(struct mlx5_core_dev *dev, | |
7cf7fa52 | 68 | u64 *sys_image_guid); |
707c4602 MD |
69 | int mlx5_query_hca_vport_node_guid(struct mlx5_core_dev *dev, |
70 | u64 *node_guid); | |
e16aea27 SM |
71 | int mlx5_query_nic_vport_mac_list(struct mlx5_core_dev *dev, |
72 | u32 vport, | |
73 | enum mlx5_list_type list_type, | |
74 | u8 addr_list[][ETH_ALEN], | |
75 | int *list_size); | |
76 | int mlx5_modify_nic_vport_mac_list(struct mlx5_core_dev *dev, | |
77 | enum mlx5_list_type list_type, | |
78 | u8 addr_list[][ETH_ALEN], | |
79 | int list_size); | |
d82b7318 SM |
80 | int mlx5_query_nic_vport_promisc(struct mlx5_core_dev *mdev, |
81 | u32 vport, | |
82 | int *promisc_uc, | |
83 | int *promisc_mc, | |
84 | int *promisc_all); | |
85 | int mlx5_modify_nic_vport_promisc(struct mlx5_core_dev *mdev, | |
86 | int promisc_uc, | |
87 | int promisc_mc, | |
88 | int promisc_all); | |
c0046cf7 SM |
89 | int mlx5_query_nic_vport_vlans(struct mlx5_core_dev *dev, |
90 | u32 vport, | |
91 | u16 vlans[], | |
92 | int *size); | |
93 | int mlx5_modify_nic_vport_vlans(struct mlx5_core_dev *dev, | |
94 | u16 vlans[], | |
95 | int list_size); | |
afb736e9 | 96 | |
0de60af6 AS |
97 | int mlx5_nic_vport_enable_roce(struct mlx5_core_dev *mdev); |
98 | int mlx5_nic_vport_disable_roce(struct mlx5_core_dev *mdev); | |
b54ba277 | 99 | int mlx5_core_query_vport_counter(struct mlx5_core_dev *dev, u8 other_vport, |
2a4826fe EC |
100 | int vf, u8 port_num, void *out, |
101 | size_t out_sz); | |
1f324bff EC |
102 | int mlx5_core_modify_hca_vport_context(struct mlx5_core_dev *dev, |
103 | u8 other_vport, u8 port_num, | |
104 | int vf, | |
105 | struct mlx5_hca_vport_context *req); | |
0de60af6 | 106 | |
afb736e9 | 107 | #endif /* __MLX5_VPORT_H__ */ |