uda.h (2348B)
1/* SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB */ 2/* Copyright (c) 2016 - 2021 Intel Corporation */ 3#ifndef IRDMA_UDA_H 4#define IRDMA_UDA_H 5 6#define IRDMA_UDA_MAX_FSI_MGS 4096 7#define IRDMA_UDA_MAX_PFS 16 8#define IRDMA_UDA_MAX_VFS 128 9 10struct irdma_sc_cqp; 11 12struct irdma_ah_info { 13 struct irdma_sc_vsi *vsi; 14 u32 pd_idx; 15 u32 dst_arpindex; 16 u32 dest_ip_addr[4]; 17 u32 src_ip_addr[4]; 18 u32 flow_label; 19 u32 ah_idx; 20 u16 vlan_tag; 21 u8 insert_vlan_tag; 22 u8 tc_tos; 23 u8 hop_ttl; 24 u8 mac_addr[ETH_ALEN]; 25 bool ah_valid:1; 26 bool ipv4_valid:1; 27 bool do_lpbk:1; 28}; 29 30struct irdma_sc_ah { 31 struct irdma_sc_dev *dev; 32 struct irdma_ah_info ah_info; 33}; 34 35int irdma_sc_add_mcast_grp(struct irdma_mcast_grp_info *ctx, 36 struct irdma_mcast_grp_ctx_entry_info *mg); 37int irdma_sc_del_mcast_grp(struct irdma_mcast_grp_info *ctx, 38 struct irdma_mcast_grp_ctx_entry_info *mg); 39int irdma_sc_access_ah(struct irdma_sc_cqp *cqp, struct irdma_ah_info *info, 40 u32 op, u64 scratch); 41int irdma_access_mcast_grp(struct irdma_sc_cqp *cqp, 42 struct irdma_mcast_grp_info *info, u32 op, 43 u64 scratch); 44 45static inline void irdma_sc_init_ah(struct irdma_sc_dev *dev, struct irdma_sc_ah *ah) 46{ 47 ah->dev = dev; 48} 49 50static inline int irdma_sc_create_ah(struct irdma_sc_cqp *cqp, 51 struct irdma_ah_info *info, u64 scratch) 52{ 53 return irdma_sc_access_ah(cqp, info, IRDMA_CQP_OP_CREATE_ADDR_HANDLE, 54 scratch); 55} 56 57static inline int irdma_sc_destroy_ah(struct irdma_sc_cqp *cqp, 58 struct irdma_ah_info *info, u64 scratch) 59{ 60 return irdma_sc_access_ah(cqp, info, IRDMA_CQP_OP_DESTROY_ADDR_HANDLE, 61 scratch); 62} 63 64static inline int irdma_sc_create_mcast_grp(struct irdma_sc_cqp *cqp, 65 struct irdma_mcast_grp_info *info, 66 u64 scratch) 67{ 68 return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_CREATE_MCAST_GRP, 69 scratch); 70} 71 72static inline int irdma_sc_modify_mcast_grp(struct irdma_sc_cqp *cqp, 73 struct irdma_mcast_grp_info *info, 74 u64 scratch) 75{ 76 return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_MODIFY_MCAST_GRP, 77 scratch); 78} 79 80static inline int irdma_sc_destroy_mcast_grp(struct irdma_sc_cqp *cqp, 81 struct irdma_mcast_grp_info *info, 82 u64 scratch) 83{ 84 return irdma_access_mcast_grp(cqp, info, IRDMA_CQP_OP_DESTROY_MCAST_GRP, 85 scratch); 86} 87#endif /* IRDMA_UDA_H */