Lines Matching refs:con

92 ng_l2cap_receive(ng_l2cap_con_p con)
94 ng_l2cap_p l2cap = con->l2cap;
99 if (con->rx_pkt->m_pkthdr.len < sizeof(*hdr)) {
103 con->rx_pkt->m_pkthdr.len);
109 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*hdr));
110 if (con->rx_pkt == NULL)
113 hdr = mtod(con->rx_pkt, ng_l2cap_hdr_t *);
118 if (hdr->length != con->rx_pkt->m_pkthdr.len - sizeof(*hdr)) {
122 con->rx_pkt->m_pkthdr.len - sizeof(*hdr));
130 m_adj(con->rx_pkt, sizeof(*hdr));
131 error = ng_l2cap_process_signal_cmd(con);
134 m_adj(con->rx_pkt, sizeof(*hdr));
135 error = ng_l2cap_process_lesignal_cmd(con);
138 error = ng_l2cap_l2ca_clt_receive(con);
142 error = ng_l2cap_l2ca_receive(con);
148 NG_FREE_M(con->rx_pkt);
162 ng_l2cap_process_signal_cmd(ng_l2cap_con_p con)
164 ng_l2cap_p l2cap = con->l2cap;
168 while (con->rx_pkt != NULL) {
170 if (con->rx_pkt->m_pkthdr.len < sizeof(*hdr)) {
174 con->rx_pkt->m_pkthdr.len);
175 NG_FREE_M(con->rx_pkt);
181 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*hdr));
182 if (con->rx_pkt == NULL)
185 hdr = mtod(con->rx_pkt, ng_l2cap_cmd_hdr_t *);
187 m_adj(con->rx_pkt, sizeof(*hdr));
190 if (con->rx_pkt->m_pkthdr.len < hdr->length) {
196 con->rx_pkt->m_pkthdr.len);
197 NG_FREE_M(con->rx_pkt);
203 if (con->rx_pkt->m_pkthdr.len > hdr->length)
204 m = m_split(con->rx_pkt, hdr->length, M_NOWAIT);
211 ng_l2cap_process_cmd_rej(con, hdr->ident);
215 ng_l2cap_process_con_req(con, hdr->ident);
219 ng_l2cap_process_con_rsp(con, hdr->ident);
223 ng_l2cap_process_cfg_req(con, hdr->ident);
227 ng_l2cap_process_cfg_rsp(con, hdr->ident);
231 ng_l2cap_process_discon_req(con, hdr->ident);
235 ng_l2cap_process_discon_rsp(con, hdr->ident);
239 ng_l2cap_process_echo_req(con, hdr->ident);
243 ng_l2cap_process_echo_rsp(con, hdr->ident);
247 ng_l2cap_process_info_req(con, hdr->ident);
251 ng_l2cap_process_info_rsp(con, hdr->ident);
265 send_l2cap_reject(con, hdr->ident,
267 NG_FREE_M(con->rx_pkt);
271 con->rx_pkt = m;
277 ng_l2cap_process_lesignal_cmd(ng_l2cap_con_p con)
279 ng_l2cap_p l2cap = con->l2cap;
283 while (con->rx_pkt != NULL) {
285 if (con->rx_pkt->m_pkthdr.len < sizeof(*hdr)) {
289 con->rx_pkt->m_pkthdr.len);
290 NG_FREE_M(con->rx_pkt);
296 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*hdr));
297 if (con->rx_pkt == NULL)
300 hdr = mtod(con->rx_pkt, ng_l2cap_cmd_hdr_t *);
302 m_adj(con->rx_pkt, sizeof(*hdr));
305 if (con->rx_pkt->m_pkthdr.len < hdr->length) {
311 con->rx_pkt->m_pkthdr.len);
312 NG_FREE_M(con->rx_pkt);
318 if (con->rx_pkt->m_pkthdr.len > hdr->length)
319 m = m_split(con->rx_pkt, hdr->length, M_NOWAIT);
326 ng_l2cap_process_cmd_rej(con, hdr->ident);
329 ng_l2cap_process_cmd_urq(con, hdr->ident);
332 ng_l2cap_process_cmd_urs(con, hdr->ident);
347 send_l2cap_reject(con, hdr->ident,
349 NG_FREE_M(con->rx_pkt);
353 con->rx_pkt = m;
359 static int ng_l2cap_process_cmd_urq(ng_l2cap_con_p con, uint8_t ident)
362 send_l2cap_param_urs(con, ident, NG_L2CAP_UPDATE_PARAM_ACCEPT);
363 NG_FREE_M(con->rx_pkt);
367 static int ng_l2cap_process_cmd_urs(ng_l2cap_con_p con, uint8_t ident)
370 //send_l2cap_reject(con,ident ... );
372 NG_FREE_M(con->rx_pkt);
381 ng_l2cap_process_cmd_rej(ng_l2cap_con_p con, u_int8_t ident)
383 ng_l2cap_p l2cap = con->l2cap;
388 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*cp));
389 if (con->rx_pkt == NULL)
392 cp = mtod(con->rx_pkt, ng_l2cap_cmd_rej_cp *);
396 cmd = ng_l2cap_cmd_by_ident(con, ident);
400 NG_FREE_M(con->rx_pkt);
422 ng_l2cap_l2ca_ping_rsp(cmd->con, cmd->token,
427 ng_l2cap_l2ca_get_info_rsp(cmd->con, cmd->token,
445 NG_FREE_M(con->rx_pkt);
455 ng_l2cap_process_con_req(ng_l2cap_con_p con, u_int8_t ident)
457 ng_l2cap_p l2cap = con->l2cap;
458 struct mbuf *m = con->rx_pkt;
475 con->rx_pkt = NULL;
480 else if( con->linktype != NG_HCI_LINK_ACL)
490 ch = ng_l2cap_new_chan(l2cap, con, psm, idtype);
493 return (send_l2cap_con_rej(con, ident, 0, dcid,
505 send_l2cap_con_rej(con, ident, ch->scid, dcid,
519 ng_l2cap_process_con_rsp(ng_l2cap_con_p con, u_int8_t ident)
521 ng_l2cap_p l2cap = con->l2cap;
522 struct mbuf *m = con->rx_pkt;
540 con->rx_pkt = NULL;
543 cmd = ng_l2cap_cmd_by_ident(con, ident);
548 con->con_handle);
632 send_l2cap_reject(con, ident, NG_L2CAP_REJ_INVALID_CID, 0, scid, dcid);
642 ng_l2cap_process_cfg_req(ng_l2cap_con_p con, u_int8_t ident)
644 ng_l2cap_p l2cap = con->l2cap;
645 struct mbuf *m = con->rx_pkt;
654 con->rx_pkt = NULL;
747 error = send_l2cap_cfg_rsp(con, ident, ch->dcid, result, m);
766 send_l2cap_reject(con, ident, NG_L2CAP_REJ_INVALID_CID, 0, 0, dcid);
776 ng_l2cap_process_cfg_rsp(ng_l2cap_con_p con, u_int8_t ident)
778 ng_l2cap_p l2cap = con->l2cap;
779 struct mbuf *m = con->rx_pkt;
788 con->rx_pkt = NULL;
800 cmd = ng_l2cap_cmd_by_ident(con, ident);
805 con->con_handle);
920 send_l2cap_reject(con, ident, NG_L2CAP_REJ_INVALID_CID, 0, scid, 0);
930 ng_l2cap_process_discon_req(ng_l2cap_con_p con, u_int8_t ident)
932 ng_l2cap_p l2cap = con->l2cap;
939 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*cp));
940 if (con->rx_pkt == NULL)
943 cp = mtod(con->rx_pkt, ng_l2cap_discon_req_cp *);
947 NG_FREE_M(con->rx_pkt);
992 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_DISCON_RSP, 0);
1004 ng_l2cap_link_cmd(con, cmd);
1005 ng_l2cap_lp_deliver(con);
1011 send_l2cap_reject(con, ident, NG_L2CAP_REJ_INVALID_CID, 0, scid, dcid);
1021 ng_l2cap_process_discon_rsp(ng_l2cap_con_p con, u_int8_t ident)
1023 ng_l2cap_p l2cap = con->l2cap;
1030 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*cp));
1031 if (con->rx_pkt == NULL)
1034 cp = mtod(con->rx_pkt, ng_l2cap_discon_rsp_cp *);
1038 NG_FREE_M(con->rx_pkt);
1041 cmd = ng_l2cap_cmd_by_ident(con, ident);
1046 con->con_handle);
1090 ng_l2cap_process_echo_req(ng_l2cap_con_p con, u_int8_t ident)
1092 ng_l2cap_p l2cap = con->l2cap;
1096 con->rx_pkt = ng_l2cap_prepend(con->rx_pkt, sizeof(*hdr));
1097 if (con->rx_pkt == NULL) {
1105 hdr = mtod(con->rx_pkt, ng_l2cap_cmd_hdr_t *);
1108 hdr->length = htole16(con->rx_pkt->m_pkthdr.len - sizeof(*hdr));
1110 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_ECHO_RSP, 0);
1112 NG_FREE_M(con->rx_pkt);
1118 cmd->aux = con->rx_pkt;
1119 con->rx_pkt = NULL;
1120 ng_l2cap_link_cmd(con, cmd);
1121 ng_l2cap_lp_deliver(con);
1131 ng_l2cap_process_echo_rsp(ng_l2cap_con_p con, u_int8_t ident)
1133 ng_l2cap_p l2cap = con->l2cap;
1138 cmd = ng_l2cap_cmd_by_ident(con, ident);
1142 NG_FREE_M(con->rx_pkt);
1148 error = ng_l2cap_l2ca_ping_rsp(cmd->con, cmd->token,
1149 NG_L2CAP_SUCCESS, con->rx_pkt);
1152 con->rx_pkt = NULL;
1158 NG_FREE_M(con->rx_pkt);
1169 ng_l2cap_process_info_req(ng_l2cap_con_p con, u_int8_t ident)
1171 ng_l2cap_p l2cap = con->l2cap;
1176 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(ng_l2cap_info_req_cp));
1177 if (con->rx_pkt == NULL)
1180 type = le16toh(mtod(con->rx_pkt, ng_l2cap_info_req_cp *)->type);
1181 NG_FREE_M(con->rx_pkt);
1183 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_INFO_RSP, 0);
1206 ng_l2cap_link_cmd(con, cmd);
1207 ng_l2cap_lp_deliver(con);
1217 ng_l2cap_process_info_rsp(ng_l2cap_con_p con, u_int8_t ident)
1219 ng_l2cap_p l2cap = con->l2cap;
1225 NG_L2CAP_M_PULLUP(con->rx_pkt, sizeof(*cp));
1226 if (con->rx_pkt == NULL)
1229 cp = mtod(con->rx_pkt, ng_l2cap_info_rsp_cp *);
1232 m_adj(con->rx_pkt, sizeof(*cp));
1235 cmd = ng_l2cap_cmd_by_ident(con, ident);
1241 NG_FREE_M(con->rx_pkt);
1248 NG_FREE_M(con->rx_pkt);
1257 if (con->rx_pkt->m_pkthdr.len == sizeof(u_int16_t))
1258 *mtod(con->rx_pkt, u_int16_t *) =
1259 le16toh(*mtod(con->rx_pkt,u_int16_t *));
1267 con->rx_pkt->m_pkthdr.len);
1279 error = ng_l2cap_l2ca_get_info_rsp(cmd->con, cmd->token,
1280 cp->result, con->rx_pkt);
1283 con->rx_pkt = NULL;
1293 send_l2cap_reject(ng_l2cap_con_p con, u_int8_t ident, u_int16_t reason,
1298 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_CMD_REJ, 0);
1310 ng_l2cap_link_cmd(con, cmd);
1311 ng_l2cap_lp_deliver(con);
1321 send_l2cap_con_rej(ng_l2cap_con_p con, u_int8_t ident, u_int16_t scid,
1326 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_CON_RSP, 0);
1338 ng_l2cap_link_cmd(con, cmd);
1339 ng_l2cap_lp_deliver(con);
1349 send_l2cap_cfg_rsp(ng_l2cap_con_p con, u_int8_t ident, u_int16_t scid,
1354 cmd = ng_l2cap_new_cmd(con, NULL, ident, NG_L2CAP_CFG_RSP, 0);
1369 ng_l2cap_link_cmd(con, cmd);
1370 ng_l2cap_lp_deliver(con);
1376 send_l2cap_param_urs(ng_l2cap_con_p con, u_int8_t ident,
1381 cmd = ng_l2cap_new_cmd(con, NULL, ident,
1397 ng_l2cap_link_cmd(con, cmd);
1398 ng_l2cap_lp_deliver(con);