Add a code snippet to demonstrate an extended QP creation using pyverbs. Signed-off-by: Noa Osherovich <noaos@xxxxxxxxxxxx> Reviewed-by: Edward Srouji <edwards@xxxxxxxxxxxx> --- Documentation/pyverbs.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/pyverbs.md b/Documentation/pyverbs.md index c7dddd598303..325e214fca0e 100755 --- a/Documentation/pyverbs.md +++ b/Documentation/pyverbs.md @@ -339,6 +339,30 @@ wr = pwr.SendWR() wr.set_wr_ud(ah, 0x1101, 0) # in real life, use real values udqp.post_send(wr) ``` +###### Extended QP +An extended QP exposes a new set of QP send operations to the user - +extensibility for new send opcodes, vendor specific send opcodes and even vendor +specific QP types. +Pyverbs now exposes the needed interface to create such a QP. +Note that the IBV_QP_INIT_ATTR_SEND_OPS_FLAGS in the `comp_mask` is mandatory +when using the extended QP's new post send mechanism. +```python +from pyverbs.qp import QPCap, QPInitAttrEx, QPAttr, QPEx +import pyverbs.device as d +import pyverbs.enums as e +from pyverbs.pd import PD +from pyverbs.cq import CQ + + +ctx = d.Context(name='mlx5_0') +pd = PD(ctx) +cq = CQ(ctx, 100) +cap = QPCap(100, 10, 1, 1, 0) +qia = QPInitAttrEx(qp_type=e.IBV_QPT_UD, scq=cq, rcq=cq, cap=cap, pd=pd, + comp_mask=e.IBV_QP_INIT_ATTR_SEND_OPS_FLAGS| \ + e.IBV_QP_INIT_ATTR_PD) +qp = QPEx(ctx, qia) +``` ##### XRCD The following code demonstrates creation of an XRCD object. -- 2.21.0