On Wed, Jan 05, 2022 at 01:00:42AM +0000, yangx.jy@xxxxxxxxxxx wrote: > 1) In kernel, current SoftRoCE copies the content of struct rdma to RETH > and copies the content of struct atomic to AtomicETH. > 2) IBTA defines that RDMA Atomic Write uses RETH + payload. > According to these two reasons, I perfer to tweak the existing struct rdma. No this is basically meaningless The wr struct is designed as a 'tagged union' where the op specified which union is in effect. It turns out that the op generally specifies the network headers as well, but that is just a side effect. > >> How about adding a member in struct rdma? for example: > >> struct { > >> uint64_t remote_addr; > >> uint32_t rkey; > >> uint64_t wr_value: > >> } rdma; > > > > Yes, that's what Tomasz and I were suggesting - a new template for the > > ATOMIC_WRITE request payload. The three fields are to be supplied by > > the verb consumer when posting the work request. > > OK, I will update the patch in this way. We are not extending the ib_send_wr anymore anyhow. You should implement new ops inside struct ibv_qp_ex as function calls. Jason