mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.5 KiB
89 lines
2.5 KiB
/* SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB */ |
|
/* Copyright (c) 2016 - 2021 Intel Corporation */ |
|
#ifndef IRDMA_UDA_H |
|
#define IRDMA_UDA_H |
|
|
|
#define IRDMA_UDA_MAX_FSI_MGS 4096 |
|
#define IRDMA_UDA_MAX_PFS 16 |
|
#define IRDMA_UDA_MAX_VFS 128 |
|
|
|
struct irdma_sc_cqp; |
|
|
|
struct irdma_ah_info { |
|
struct irdma_sc_vsi *vsi; |
|
u32 pd_idx; |
|
u32 dst_arpindex; |
|
u32 dest_ip_addr[4]; |
|
u32 src_ip_addr[4]; |
|
u32 flow_label; |
|
u32 ah_idx; |
|
u16 vlan_tag; |
|
u8 insert_vlan_tag; |
|
u8 tc_tos; |
|
u8 hop_ttl; |
|
u8 mac_addr[ETH_ALEN]; |
|
bool ah_valid:1; |
|
bool ipv4_valid:1; |
|
bool do_lpbk:1; |
|
}; |
|
|
|
struct irdma_sc_ah { |
|
struct irdma_sc_dev *dev; |
|
struct irdma_ah_info ah_info; |
|
}; |
|
|
|
enum irdma_status_code irdma_sc_add_mcast_grp(struct irdma_mcast_grp_info *ctx, |
|
struct irdma_mcast_grp_ctx_entry_info *mg); |
|
enum irdma_status_code irdma_sc_del_mcast_grp(struct irdma_mcast_grp_info *ctx, |
|
struct irdma_mcast_grp_ctx_entry_info *mg); |
|
enum irdma_status_code irdma_sc_access_ah(struct irdma_sc_cqp *cqp, struct irdma_ah_info *info, |
|
u32 op, u64 scratch); |
|
enum irdma_status_code irdma_access_mcast_grp(struct irdma_sc_cqp *cqp, |
|
struct irdma_mcast_grp_info *info, |
|
u32 op, u64 scratch); |
|
|
|
static inline void irdma_sc_init_ah(struct irdma_sc_dev *dev, struct irdma_sc_ah *ah) |
|
{ |
|
ah->dev = dev; |
|
} |
|
|
|
static inline enum irdma_status_code irdma_sc_create_ah(struct irdma_sc_cqp *cqp, |
|
struct irdma_ah_info *info, |
|
u64 scratch) |
|
{ |
|
return irdma_sc_access_ah(cqp, info, IRDMA_CQP_OP_CREATE_ADDR_HANDLE, |
|
scratch); |
|
} |
|
|
|
static inline enum irdma_status_code irdma_sc_destroy_ah(struct irdma_sc_cqp *cqp, |
|
struct irdma_ah_info *info, |
|
u64 scratch) |
|
{ |
|
return irdma_sc_access_ah(cqp, info, IRDMA_CQP_OP_DESTROY_ADDR_HANDLE, |
|
scratch); |
|
} |
|
|
|
static inline enum irdma_status_code irdma_sc_create_mcast_grp(struct irdma_sc_cqp *cqp, |
|
struct irdma_mcast_grp_info *info, |
|
u64 scratch) |
|
{ |
|
return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_CREATE_MCAST_GRP, |
|
scratch); |
|
} |
|
|
|
static inline enum irdma_status_code irdma_sc_modify_mcast_grp(struct irdma_sc_cqp *cqp, |
|
struct irdma_mcast_grp_info *info, |
|
u64 scratch) |
|
{ |
|
return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_MODIFY_MCAST_GRP, |
|
scratch); |
|
} |
|
|
|
static inline enum irdma_status_code irdma_sc_destroy_mcast_grp(struct irdma_sc_cqp *cqp, |
|
struct irdma_mcast_grp_info *info, |
|
u64 scratch) |
|
{ |
|
return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_DESTROY_MCAST_GRP, |
|
scratch); |
|
} |
|
#endif /* IRDMA_UDA_H */
|
|
|