Lines Matching refs:smp

46 enum smi_action smi_handle_dr_smp_send(struct ib_smp *smp,
51 hop_ptr = smp->hop_ptr;
52 hop_cnt = smp->hop_cnt;
55 if (!ib_get_smp_direction(smp)) {
58 smp->hop_ptr++;
59 return (smp->initial_path[smp->hop_ptr] ==
68 /* smp->return_path set when received */
69 smp->hop_ptr++;
70 return (smp->initial_path[smp->hop_ptr] ==
76 /* smp->return_path set when received */
77 smp->hop_ptr++;
79 smp->dr_dlid == IB_LID_PERMISSIVE ?
90 smp->hop_ptr--;
91 return (smp->return_path[smp->hop_ptr] ==
100 smp->hop_ptr--;
101 return (smp->return_path[smp->hop_ptr] ==
107 smp->hop_ptr--;
110 smp->dr_slid == IB_LID_PERMISSIVE ?
127 enum smi_action smi_handle_dr_smp_recv(struct ib_smp *smp, u8 node_type,
132 hop_ptr = smp->hop_ptr;
133 hop_cnt = smp->hop_cnt;
136 if (!ib_get_smp_direction(smp)) {
146 smp->return_path[hop_ptr] = port_num;
147 /* smp->hop_ptr updated when sending */
148 return (smp->initial_path[hop_ptr+1] <= phys_port_cnt ?
155 smp->return_path[hop_ptr] = port_num;
156 /* smp->hop_ptr updated when sending */
159 smp->dr_dlid == IB_LID_PERMISSIVE ?
171 smp->hop_ptr--;
172 return (smp->return_path[smp->hop_ptr] ==
181 /* smp->hop_ptr updated when sending */
182 return (smp->return_path[hop_ptr-1] <= phys_port_cnt ?
188 if (smp->dr_slid == IB_LID_PERMISSIVE) {
190 smp->hop_ptr--;
193 /* smp->hop_ptr updated when sending */
204 enum smi_forward_action smi_check_forward_dr_smp(struct ib_smp *smp)
208 hop_ptr = smp->hop_ptr;
209 hop_cnt = smp->hop_cnt;
211 if (!ib_get_smp_direction(smp)) {
218 return (smp->dr_dlid == IB_LID_PERMISSIVE ?
231 return (smp->dr_slid != IB_LID_PERMISSIVE ?
241 int smi_get_fwd_port(struct ib_smp *smp)
243 return (!ib_get_smp_direction(smp) ? smp->initial_path[smp->hop_ptr+1] :
244 smp->return_path[smp->hop_ptr-1]);