Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/rdma/ib_cache.h
26285 views
1
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2
/*
3
* Copyright (c) 2004 Topspin Communications. All rights reserved.
4
* Copyright (c) 2005 Intel Corporation. All rights reserved.
5
* Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
6
*/
7
8
#ifndef _IB_CACHE_H
9
#define _IB_CACHE_H
10
11
#include <rdma/ib_verbs.h>
12
13
int rdma_query_gid(struct ib_device *device, u32 port_num, int index,
14
union ib_gid *gid);
15
void *rdma_read_gid_hw_context(const struct ib_gid_attr *attr);
16
const struct ib_gid_attr *rdma_find_gid(struct ib_device *device,
17
const union ib_gid *gid,
18
enum ib_gid_type gid_type,
19
struct net_device *ndev);
20
const struct ib_gid_attr *rdma_find_gid_by_port(struct ib_device *ib_dev,
21
const union ib_gid *gid,
22
enum ib_gid_type gid_type,
23
u32 port,
24
struct net_device *ndev);
25
const struct ib_gid_attr *rdma_find_gid_by_filter(
26
struct ib_device *device, const union ib_gid *gid, u32 port_num,
27
bool (*filter)(const union ib_gid *gid, const struct ib_gid_attr *,
28
void *),
29
void *context);
30
31
int rdma_read_gid_l2_fields(const struct ib_gid_attr *attr,
32
u16 *vlan_id, u8 *smac);
33
struct net_device *rdma_read_gid_attr_ndev_rcu(const struct ib_gid_attr *attr);
34
35
/**
36
* ib_get_cached_pkey - Returns a cached PKey table entry
37
* @device: The device to query.
38
* @port_num: The port number of the device to query.
39
* @index: The index into the cached PKey table to query.
40
* @pkey: The PKey value found at the specified index.
41
*
42
* ib_get_cached_pkey() fetches the specified PKey table entry stored in
43
* the local software cache.
44
*/
45
int ib_get_cached_pkey(struct ib_device *device_handle,
46
u32 port_num,
47
int index,
48
u16 *pkey);
49
50
/**
51
* ib_find_cached_pkey - Returns the PKey table index where a specified
52
* PKey value occurs.
53
* @device: The device to query.
54
* @port_num: The port number of the device to search for the PKey.
55
* @pkey: The PKey value to search for.
56
* @index: The index into the cached PKey table where the PKey was found.
57
*
58
* ib_find_cached_pkey() searches the specified PKey table in
59
* the local software cache.
60
*/
61
int ib_find_cached_pkey(struct ib_device *device,
62
u32 port_num,
63
u16 pkey,
64
u16 *index);
65
66
/**
67
* ib_get_cached_lmc - Returns a cached lmc table entry
68
* @device: The device to query.
69
* @port_num: The port number of the device to query.
70
* @lmc: The lmc value for the specified port for that device.
71
*
72
* ib_get_cached_lmc() fetches the specified lmc table entry stored in
73
* the local software cache.
74
*/
75
int ib_get_cached_lmc(struct ib_device *device,
76
u32 port_num,
77
u8 *lmc);
78
79
/**
80
* ib_get_cached_port_state - Returns a cached port state table entry
81
* @device: The device to query.
82
* @port_num: The port number of the device to query.
83
* @port_state: port_state for the specified port for that device.
84
*
85
* ib_get_cached_port_state() fetches the specified port_state table entry stored in
86
* the local software cache.
87
*/
88
int ib_get_cached_port_state(struct ib_device *device,
89
u32 port_num,
90
enum ib_port_state *port_active);
91
92
bool rdma_is_zero_gid(const union ib_gid *gid);
93
const struct ib_gid_attr *rdma_get_gid_attr(struct ib_device *device,
94
u32 port_num, int index);
95
void rdma_put_gid_attr(const struct ib_gid_attr *attr);
96
void rdma_hold_gid_attr(const struct ib_gid_attr *attr);
97
ssize_t rdma_query_gid_table(struct ib_device *device,
98
struct ib_uverbs_gid_entry *entries,
99
size_t max_entries);
100
101
#endif /* _IB_CACHE_H */
102
103