Skip to content

Commit

Permalink
RDMA/core: Calculate UDP source port based on flow label or lqpn/rqpn
Browse files Browse the repository at this point in the history
Calculate and set UDP source port based on the flow label. If flow label
is not defined in GRH then calculate it based on lqpn/rqpn.

Link: https://lore.kernel.org/r/20220106180359.2915060-2-yanjun.zhu@linux.dev
Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
  • Loading branch information
Zhu Yanjun authored and Jason Gunthorpe committed Jan 7, 2022
1 parent 4d2a3c1 commit 18451db
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions include/rdma/ib_verbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -4749,6 +4749,23 @@ static inline u32 rdma_calc_flow_label(u32 lqpn, u32 rqpn)
return (u32)(v & IB_GRH_FLOWLABEL_MASK);
}

/**
* rdma_get_udp_sport - Calculate and set UDP source port based on the flow
* label. If flow label is not defined in GRH then
* calculate it based on lqpn/rqpn.
*
* @fl: flow label from GRH
* @lqpn: local qp number
* @rqpn: remote qp number
*/
static inline u16 rdma_get_udp_sport(u32 fl, u32 lqpn, u32 rqpn)
{
if (!fl)
fl = rdma_calc_flow_label(lqpn, rqpn);

return rdma_flow_label_to_udp_sport(fl);
}

const struct ib_port_immutable*
ib_port_immutable_read(struct ib_device *dev, unsigned int port);
#endif /* IB_VERBS_H */

0 comments on commit 18451db

Please sign in to comment.