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 HCI_HEADER_SIZE 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 28struct hci_packet { 29 __dev16 cmd_evt; 30 __dev16 len; 31 u8 data[0]; 32} __packed; 33 34struct tlv { 35 u8 type; 36 u8 len; 37 u8 *data[1]; 38} __packed; 39 40struct sdu_header { 41 __dev16 cmd_evt; 42 __dev16 len; 43 __dev32 dftEpsId; 44 __dev32 bearer_ID; 45 __dev32 nic_type; 46} __packed; 47 48struct sdu { 49 __dev16 cmd_evt; 50 __dev16 len; 51 __dev32 dft_eps_ID; 52 __dev32 bearer_ID; 53 __dev32 nic_type; 54 u8 data[0]; 55} __packed; 56 57struct multi_sdu { 58 __dev16 cmd_evt; 59 __dev16 len; 60 __dev16 num_packet; 61 __dev16 reserved; 62 u8 data[0]; 63} __packed; 64 65struct 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 76struct hci_connect_ind { 77 __dev16 cmd_evt; 78 __dev16 len; 79 __dev32 connect; 80} __packed; 81 82#endif /* _HCI_PACKET_H_ */ 83