xref: /linux-6.15/include/uapi/linux/qrtr.h (revision 83a37b32)
1 #ifndef _LINUX_QRTR_H
2 #define _LINUX_QRTR_H
3 
4 #include <linux/socket.h>
5 #include <linux/types.h>
6 
7 #define QRTR_NODE_BCAST	0xffffffffu
8 #define QRTR_PORT_CTRL	0xfffffffeu
9 
10 struct sockaddr_qrtr {
11 	__kernel_sa_family_t sq_family;
12 	__u32 sq_node;
13 	__u32 sq_port;
14 };
15 
16 enum qrtr_pkt_type {
17 	QRTR_TYPE_DATA		= 1,
18 	QRTR_TYPE_HELLO		= 2,
19 	QRTR_TYPE_BYE		= 3,
20 	QRTR_TYPE_NEW_SERVER	= 4,
21 	QRTR_TYPE_DEL_SERVER	= 5,
22 	QRTR_TYPE_DEL_CLIENT	= 6,
23 	QRTR_TYPE_RESUME_TX	= 7,
24 	QRTR_TYPE_EXIT          = 8,
25 	QRTR_TYPE_PING          = 9,
26 	QRTR_TYPE_NEW_LOOKUP	= 10,
27 	QRTR_TYPE_DEL_LOOKUP	= 11,
28 };
29 
30 struct qrtr_ctrl_pkt {
31 	__le32 cmd;
32 
33 	union {
34 		struct {
35 			__le32 service;
36 			__le32 instance;
37 			__le32 node;
38 			__le32 port;
39 		} server;
40 
41 		struct {
42 			__le32 node;
43 			__le32 port;
44 		} client;
45 	};
46 } __packed;
47 
48 #endif /* _LINUX_QRTR_H */
49