Lines Matching refs:ah_attr
43 static void create_ib_ah(struct ib_ah *ib_ah, struct rdma_ah_attr *ah_attr)
49 (rdma_ah_get_port_num(ah_attr) << 24));
50 ah->av.ib.g_slid = rdma_ah_get_path_bits(ah_attr);
52 cpu_to_be32(rdma_ah_get_sl(ah_attr) << 28);
53 if (rdma_ah_get_ah_flags(ah_attr) & IB_AH_GRH) {
54 const struct ib_global_route *grh = rdma_ah_read_grh(ah_attr);
65 ah->av.ib.dlid = cpu_to_be16(rdma_ah_get_dlid(ah_attr));
66 if (rdma_ah_get_static_rate(ah_attr)) {
67 u8 static_rate = rdma_ah_get_static_rate(ah_attr) +
77 static int create_iboe_ah(struct ib_ah *ib_ah, struct rdma_ah_attr *ah_attr)
86 const struct ib_global_route *grh = rdma_ah_read_grh(ah_attr);
93 memcpy(ah->av.eth.mac, ah_attr->roce.dmac, ETH_ALEN);
100 gid_attr = ah_attr->grh.sgid_attr;
113 ah->av.eth.gid_index = ah_attr->grh.sgid_index;
117 vlan_tag |= (rdma_ah_get_sl(ah_attr) & 7) << 13;
119 (rdma_ah_get_port_num(ah_attr) << 24));
122 if (rdma_ah_get_static_rate(ah_attr)) {
123 ah->av.eth.stat_rate = rdma_ah_get_static_rate(ah_attr) +
139 ah->av.eth.sl_tclass_flowlabel |= cpu_to_be32(rdma_ah_get_sl(ah_attr)
147 struct rdma_ah_attr *ah_attr = init_attr->ah_attr;
149 if (ah_attr->type == RDMA_AH_ATTR_TYPE_ROCE) {
150 if (!(rdma_ah_get_ah_flags(ah_attr) & IB_AH_GRH))
160 return create_iboe_ah(ib_ah, ah_attr);
163 create_ib_ah(ib_ah, ah_attr);
167 int mlx4_ib_create_ah_slave(struct ib_ah *ah, struct rdma_ah_attr *ah_attr,
170 struct rdma_ah_attr slave_attr = *ah_attr;
177 init_attr.ah_attr = &slave_attr;
182 ah->type = ah_attr->type;
187 if (ah_attr->type == RDMA_AH_ATTR_TYPE_ROCE)
191 vlan_tag |= (rdma_ah_get_sl(ah_attr) & 7) << 13;
197 int mlx4_ib_query_ah(struct ib_ah *ibah, struct rdma_ah_attr *ah_attr)
202 memset(ah_attr, 0, sizeof *ah_attr);
203 ah_attr->type = ibah->type;
205 if (ah_attr->type == RDMA_AH_ATTR_TYPE_ROCE) {
206 rdma_ah_set_dlid(ah_attr, 0);
207 rdma_ah_set_sl(ah_attr,
211 rdma_ah_set_dlid(ah_attr, be16_to_cpu(ah->av.ib.dlid));
212 rdma_ah_set_sl(ah_attr,
217 rdma_ah_set_port_num(ah_attr, port_num);
219 rdma_ah_set_static_rate(ah_attr,
222 rdma_ah_set_path_bits(ah_attr, ah->av.ib.g_slid & 0x7F);
226 rdma_ah_set_grh(ah_attr, NULL,
230 rdma_ah_set_dgid_raw(ah_attr, ah->av.ib.dgid);