mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-07-04 00:03:25 -04:00
mctp: Implement extended addressing
This change allows an extended address struct - struct sockaddr_mctp_ext - to be passed to sendmsg/recvmsg. This allows userspace to specify output ifindex and physical address information (for sendmsg) or receive the input ifindex/physaddr for incoming messages (for recvmsg). This is typically used by userspace for MCTP address discovery and assignment operations. The extended addressing facility is conditional on a new sockopt: MCTP_OPT_ADDR_EXT; userspace must explicitly enable addressing before the kernel will consume/populate the extended address data. Includes a fix for an uninitialised var: Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
971f5c4079
commit
99ce45d5e7
5 changed files with 170 additions and 39 deletions
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h>
|
||||
#include <linux/netdevice.h>
|
||||
|
||||
typedef __u8 mctp_eid_t;
|
||||
|
||||
|
@ -28,6 +29,14 @@ struct sockaddr_mctp {
|
|||
__u8 __smctp_pad1;
|
||||
};
|
||||
|
||||
struct sockaddr_mctp_ext {
|
||||
struct sockaddr_mctp smctp_base;
|
||||
int smctp_ifindex;
|
||||
__u8 smctp_halen;
|
||||
__u8 __smctp_pad0[3];
|
||||
__u8 smctp_haddr[MAX_ADDR_LEN];
|
||||
};
|
||||
|
||||
#define MCTP_NET_ANY 0x0
|
||||
|
||||
#define MCTP_ADDR_NULL 0x00
|
||||
|
@ -36,4 +45,6 @@ struct sockaddr_mctp {
|
|||
#define MCTP_TAG_MASK 0x07
|
||||
#define MCTP_TAG_OWNER 0x08
|
||||
|
||||
#define MCTP_OPT_ADDR_EXT 1
|
||||
|
||||
#endif /* __UAPI_MCTP_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue