]> www.infradead.org Git - users/sagi/libnvme.git/commit
mi-mctp: Add support for More Processing Required responses
authorJeremy Kerr <jk@codeconstruct.com.au>
Mon, 30 May 2022 07:01:18 +0000 (15:01 +0800)
committerJeremy Kerr <jk@codeconstruct.com.au>
Fri, 1 Jul 2022 08:47:20 +0000 (16:47 +0800)
commit5031f01eee47cd96de6c1cae4f71c3c78cb3d2f8
treea9f51cbdacbe19182ce47adb076f0e84d10e1895
parentd311be8d9b3899f2052d5b8d7834e30e7a66687e
mi-mctp: Add support for More Processing Required responses

This change allows the mi-mctp transport to receive "more processing
required" responses from MI commands. When we detect a MPR response, we
keep listening for a subsequent message containing the actual response.

The NVMe-MI spec allows for only one MPR response per request.

To do this, we need to perform explicit tag control for MCTP messaging;
we cannot use the kernel's default tag handling, which would expire the
tag value once we've received the first (MPR) response. Instead, we use
the tag control ioctl()s to allocate tags, and expire once we receive
the final response.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
src/nvme/mi-mctp.c
src/nvme/mi.h
src/nvme/private.h
test/mi-mctp.c