1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */ |
3 | |
4 | #ifndef _HCI_PACKET_H_ |
5 | #define _HCI_PACKET_H_ |
6 | |
7 | #define 4 |
8 | |
9 | /* |
10 | * The NIC type definition: |
11 | * For backward compatibility, lower 16 bits used as they were. |
12 | * Lower 16 bit: NIC_TYPE values |
13 | * Uppoer 16 bit: NIC_TYPE Flags |
14 | */ |
15 | #define NIC_TYPE_NIC0 0x00000010 |
16 | #define NIC_TYPE_NIC1 0x00000011 |
17 | #define NIC_TYPE_NIC2 0x00000012 |
18 | #define NIC_TYPE_NIC3 0x00000013 |
19 | #define NIC_TYPE_ARP 0x00000100 |
20 | #define NIC_TYPE_ICMPV6 0x00000200 |
21 | #define NIC_TYPE_MASK 0x0000FFFF |
22 | #define NIC_TYPE_F_IPV4 0x00010000 |
23 | #define NIC_TYPE_F_IPV6 0x00020000 |
24 | #define NIC_TYPE_F_DHCP 0x00040000 |
25 | #define NIC_TYPE_F_NDP 0x00080000 |
26 | #define NIC_TYPE_F_VLAN 0x00100000 |
27 | |
28 | struct hci_packet { |
29 | __dev16 cmd_evt; |
30 | __dev16 len; |
31 | u8 data[]; |
32 | } __packed; |
33 | |
34 | struct tlv { |
35 | u8 type; |
36 | u8 len; |
37 | u8 *data[]; |
38 | } __packed; |
39 | |
40 | struct { |
41 | __dev16 ; |
42 | __dev16 ; |
43 | __dev32 ; |
44 | __dev32 ; |
45 | __dev32 ; |
46 | } __packed; |
47 | |
48 | struct sdu { |
49 | __dev16 cmd_evt; |
50 | __dev16 len; |
51 | __dev32 dft_eps_ID; |
52 | __dev32 bearer_ID; |
53 | __dev32 nic_type; |
54 | u8 data[]; |
55 | } __packed; |
56 | |
57 | struct multi_sdu { |
58 | __dev16 cmd_evt; |
59 | __dev16 len; |
60 | __dev16 num_packet; |
61 | __dev16 reserved; |
62 | u8 data[]; |
63 | } __packed; |
64 | |
65 | struct hci_pdn_table_ind { |
66 | __dev16 cmd_evt; |
67 | __dev16 len; |
68 | u8 activate; |
69 | __dev32 dft_eps_id; |
70 | __dev32 nic_type; |
71 | u8 pdn_type; |
72 | u8 ipv4_addr[4]; |
73 | u8 ipv6_intf_id[8]; |
74 | } __packed; |
75 | |
76 | struct hci_connect_ind { |
77 | __dev16 cmd_evt; |
78 | __dev16 len; |
79 | __dev32 connect; |
80 | } __packed; |
81 | |
82 | #endif /* _HCI_PACKET_H_ */ |
83 | |