mctp: Add SIOCMCTP{ALLOC,DROP}TAG ioctls for tag control
This change adds a couple of new ioctls for mctp sockets: SIOCMCTPALLOCTAG and SIOCMCTPDROPTAG. These ioctls provide facilities for explicit allocation / release of tags, overriding the automatic allocate-on-send/release-on-reply and timeout behaviours. This allows userspace more control over messages that may not fit a simple request/response model. In order to indicate a pre-allocated tag to the sendmsg() syscall, we introduce a new flag to the struct sockaddr_mctp.smctp_tag value: MCTP_TAG_PREALLOC. Additional changes from Jeremy Kerr <jk@codeconstruct.com.au>. Contains a fix that was: Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Matt Johnston <matt@codeconstruct.com.au> Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0de55a7d11
commit
63ed1aab3d
6 changed files with 329 additions and 56 deletions
|
|
@ -44,7 +44,25 @@ struct sockaddr_mctp_ext {
|
|||
|
||||
#define MCTP_TAG_MASK 0x07
|
||||
#define MCTP_TAG_OWNER 0x08
|
||||
#define MCTP_TAG_PREALLOC 0x10
|
||||
|
||||
#define MCTP_OPT_ADDR_EXT 1
|
||||
|
||||
#define SIOCMCTPALLOCTAG (SIOCPROTOPRIVATE + 0)
|
||||
#define SIOCMCTPDROPTAG (SIOCPROTOPRIVATE + 1)
|
||||
|
||||
struct mctp_ioc_tag_ctl {
|
||||
mctp_eid_t peer_addr;
|
||||
|
||||
/* For SIOCMCTPALLOCTAG: must be passed as zero, kernel will
|
||||
* populate with the allocated tag value. Returned tag value will
|
||||
* always have TO and PREALLOC set.
|
||||
*
|
||||
* For SIOCMCTPDROPTAG: userspace provides tag value to drop, from
|
||||
* a prior SIOCMCTPALLOCTAG call (and so must have TO and PREALLOC set).
|
||||
*/
|
||||
__u8 tag;
|
||||
__u16 flags;
|
||||
};
|
||||
|
||||
#endif /* __UAPI_MCTP_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue