diff options
Diffstat (limited to 'include/net/bluetooth/l2cap.h')
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 71 |
1 files changed, 50 insertions, 21 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index f566aa1f0a4c..e919fca1072a 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
| @@ -26,8 +26,13 @@ | |||
| 26 | #define __L2CAP_H | 26 | #define __L2CAP_H |
| 27 | 27 | ||
| 28 | /* L2CAP defaults */ | 28 | /* L2CAP defaults */ |
| 29 | #define L2CAP_DEFAULT_MTU 672 | 29 | #define L2CAP_DEFAULT_MTU 672 |
| 30 | #define L2CAP_DEFAULT_FLUSH_TO 0xFFFF | 30 | #define L2CAP_DEFAULT_FLUSH_TO 0xffff |
| 31 | #define L2CAP_DEFAULT_RX_WINDOW 1 | ||
| 32 | #define L2CAP_DEFAULT_MAX_RECEIVE 1 | ||
| 33 | #define L2CAP_DEFAULT_RETRANS_TO 300 /* 300 milliseconds */ | ||
| 34 | #define L2CAP_DEFAULT_MONITOR_TO 1000 /* 1 second */ | ||
| 35 | #define L2CAP_DEFAULT_MAX_RX_APDU 0xfff7 | ||
| 31 | 36 | ||
| 32 | #define L2CAP_CONN_TIMEOUT (40000) /* 40 seconds */ | 37 | #define L2CAP_CONN_TIMEOUT (40000) /* 40 seconds */ |
| 33 | #define L2CAP_INFO_TIMEOUT (4000) /* 4 seconds */ | 38 | #define L2CAP_INFO_TIMEOUT (4000) /* 4 seconds */ |
| @@ -64,17 +69,29 @@ struct l2cap_conninfo { | |||
| 64 | #define L2CAP_LM_SECURE 0x0020 | 69 | #define L2CAP_LM_SECURE 0x0020 |
| 65 | 70 | ||
| 66 | /* L2CAP command codes */ | 71 | /* L2CAP command codes */ |
| 67 | #define L2CAP_COMMAND_REJ 0x01 | 72 | #define L2CAP_COMMAND_REJ 0x01 |
| 68 | #define L2CAP_CONN_REQ 0x02 | 73 | #define L2CAP_CONN_REQ 0x02 |
| 69 | #define L2CAP_CONN_RSP 0x03 | 74 | #define L2CAP_CONN_RSP 0x03 |
| 70 | #define L2CAP_CONF_REQ 0x04 | 75 | #define L2CAP_CONF_REQ 0x04 |
| 71 | #define L2CAP_CONF_RSP 0x05 | 76 | #define L2CAP_CONF_RSP 0x05 |
| 72 | #define L2CAP_DISCONN_REQ 0x06 | 77 | #define L2CAP_DISCONN_REQ 0x06 |
| 73 | #define L2CAP_DISCONN_RSP 0x07 | 78 | #define L2CAP_DISCONN_RSP 0x07 |
| 74 | #define L2CAP_ECHO_REQ 0x08 | 79 | #define L2CAP_ECHO_REQ 0x08 |
| 75 | #define L2CAP_ECHO_RSP 0x09 | 80 | #define L2CAP_ECHO_RSP 0x09 |
| 76 | #define L2CAP_INFO_REQ 0x0a | 81 | #define L2CAP_INFO_REQ 0x0a |
| 77 | #define L2CAP_INFO_RSP 0x0b | 82 | #define L2CAP_INFO_RSP 0x0b |
| 83 | |||
| 84 | /* L2CAP feature mask */ | ||
| 85 | #define L2CAP_FEAT_FLOWCTL 0x00000001 | ||
| 86 | #define L2CAP_FEAT_RETRANS 0x00000002 | ||
| 87 | #define L2CAP_FEAT_ERTM 0x00000008 | ||
| 88 | #define L2CAP_FEAT_STREAMING 0x00000010 | ||
| 89 | #define L2CAP_FEAT_FCS 0x00000020 | ||
| 90 | #define L2CAP_FEAT_FIXED_CHAN 0x00000080 | ||
| 91 | |||
| 92 | /* L2CAP checksum option */ | ||
| 93 | #define L2CAP_FCS_NONE 0x00 | ||
| 94 | #define L2CAP_FCS_CRC16 0x01 | ||
| 78 | 95 | ||
| 79 | /* L2CAP structures */ | 96 | /* L2CAP structures */ |
| 80 | struct l2cap_hdr { | 97 | struct l2cap_hdr { |
| @@ -106,17 +123,23 @@ struct l2cap_conn_rsp { | |||
| 106 | __le16 status; | 123 | __le16 status; |
| 107 | } __attribute__ ((packed)); | 124 | } __attribute__ ((packed)); |
| 108 | 125 | ||
| 126 | /* channel indentifier */ | ||
| 127 | #define L2CAP_CID_SIGNALING 0x0001 | ||
| 128 | #define L2CAP_CID_CONN_LESS 0x0002 | ||
| 129 | #define L2CAP_CID_DYN_START 0x0040 | ||
| 130 | #define L2CAP_CID_DYN_END 0xffff | ||
| 131 | |||
| 109 | /* connect result */ | 132 | /* connect result */ |
| 110 | #define L2CAP_CR_SUCCESS 0x0000 | 133 | #define L2CAP_CR_SUCCESS 0x0000 |
| 111 | #define L2CAP_CR_PEND 0x0001 | 134 | #define L2CAP_CR_PEND 0x0001 |
| 112 | #define L2CAP_CR_BAD_PSM 0x0002 | 135 | #define L2CAP_CR_BAD_PSM 0x0002 |
| 113 | #define L2CAP_CR_SEC_BLOCK 0x0003 | 136 | #define L2CAP_CR_SEC_BLOCK 0x0003 |
| 114 | #define L2CAP_CR_NO_MEM 0x0004 | 137 | #define L2CAP_CR_NO_MEM 0x0004 |
| 115 | 138 | ||
| 116 | /* connect status */ | 139 | /* connect status */ |
| 117 | #define L2CAP_CS_NO_INFO 0x0000 | 140 | #define L2CAP_CS_NO_INFO 0x0000 |
| 118 | #define L2CAP_CS_AUTHEN_PEND 0x0001 | 141 | #define L2CAP_CS_AUTHEN_PEND 0x0001 |
| 119 | #define L2CAP_CS_AUTHOR_PEND 0x0002 | 142 | #define L2CAP_CS_AUTHOR_PEND 0x0002 |
| 120 | 143 | ||
| 121 | struct l2cap_conf_req { | 144 | struct l2cap_conf_req { |
| 122 | __le16 dcid; | 145 | __le16 dcid; |
| @@ -143,10 +166,14 @@ struct l2cap_conf_opt { | |||
| 143 | } __attribute__ ((packed)); | 166 | } __attribute__ ((packed)); |
| 144 | #define L2CAP_CONF_OPT_SIZE 2 | 167 | #define L2CAP_CONF_OPT_SIZE 2 |
| 145 | 168 | ||
| 169 | #define L2CAP_CONF_HINT 0x80 | ||
| 170 | #define L2CAP_CONF_MASK 0x7f | ||
| 171 | |||
| 146 | #define L2CAP_CONF_MTU 0x01 | 172 | #define L2CAP_CONF_MTU 0x01 |
| 147 | #define L2CAP_CONF_FLUSH_TO 0x02 | 173 | #define L2CAP_CONF_FLUSH_TO 0x02 |
| 148 | #define L2CAP_CONF_QOS 0x03 | 174 | #define L2CAP_CONF_QOS 0x03 |
| 149 | #define L2CAP_CONF_RFC 0x04 | 175 | #define L2CAP_CONF_RFC 0x04 |
| 176 | #define L2CAP_CONF_FCS 0x05 | ||
| 150 | 177 | ||
| 151 | #define L2CAP_CONF_MAX_SIZE 22 | 178 | #define L2CAP_CONF_MAX_SIZE 22 |
| 152 | 179 | ||
| @@ -162,6 +189,8 @@ struct l2cap_conf_rfc { | |||
| 162 | #define L2CAP_MODE_BASIC 0x00 | 189 | #define L2CAP_MODE_BASIC 0x00 |
| 163 | #define L2CAP_MODE_RETRANS 0x01 | 190 | #define L2CAP_MODE_RETRANS 0x01 |
| 164 | #define L2CAP_MODE_FLOWCTL 0x02 | 191 | #define L2CAP_MODE_FLOWCTL 0x02 |
| 192 | #define L2CAP_MODE_ERTM 0x03 | ||
| 193 | #define L2CAP_MODE_STREAM 0x04 | ||
| 165 | 194 | ||
| 166 | struct l2cap_disconn_req { | 195 | struct l2cap_disconn_req { |
| 167 | __le16 dcid; | 196 | __le16 dcid; |
