Lines Matching refs:chan

40 	struct l2cap_chan *chan;  member
64 struct l2cap_chan *chan; member
121 &peer->chan->dst, peer->chan->dst_type); in peer_lookup_ba()
123 if (bacmp(&peer->chan->dst, ba)) in peer_lookup_ba()
126 if (type == peer->chan->dst_type) { in peer_lookup_ba()
138 struct l2cap_chan *chan) in __peer_lookup_chan() argument
143 if (peer->chan == chan) in __peer_lookup_chan()
156 if (peer->chan->conn == conn) in __peer_lookup_conn()
207 &peer->chan->dst, peer->chan->dst_type, in peer_lookup_dst()
270 struct l2cap_chan *chan) in iphc_decompress() argument
279 peer = __peer_lookup_chan(dev, chan); in iphc_decompress()
291 struct l2cap_chan *chan) in recv_pkt() argument
344 ret = iphc_decompress(local_skb, dev, chan); in recv_pkt()
376 static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in chan_recv_cb() argument
382 peer = lookup_peer(chan->conn); in chan_recv_cb()
386 dev = lookup_dev(chan->conn); in chan_recv_cb()
390 err = recv_pkt(skb, dev->netdev, chan); in chan_recv_cb()
445 lowpan_cb(skb)->chan = NULL; in setup_header()
474 lowpan_cb(skb)->chan = peer->chan; in setup_header()
505 static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb, in send_pkt() argument
515 chan->data = skb; in send_pkt()
523 err = l2cap_chan_send(chan, &msg, skb->len); in send_pkt()
567 &pentry->chan->dst, pentry->chan->dst_type, in send_mcast_pkt()
568 &pentry->peer_addr, pentry->chan); in send_mcast_pkt()
569 ret = send_pkt(pentry->chan, local_skb, netdev); in send_mcast_pkt()
607 if (lowpan_cb(skb)->chan) { in bt_xmit()
610 &lowpan_cb(skb)->addr, lowpan_cb(skb)->chan); in bt_xmit()
611 err = send_pkt(lowpan_cb(skb)->chan, skb, netdev); in bt_xmit()
745 struct l2cap_chan *chan; in chan_create() local
747 chan = l2cap_chan_create(); in chan_create()
748 if (!chan) in chan_create()
751 l2cap_chan_set_defaults(chan); in chan_create()
753 chan->chan_type = L2CAP_CHAN_CONN_ORIENTED; in chan_create()
754 chan->mode = L2CAP_MODE_LE_FLOWCTL; in chan_create()
755 chan->imtu = 1280; in chan_create()
757 return chan; in chan_create()
768 static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, in add_peer_chan() argument
777 peer->chan = chan; in add_peer_chan()
783 set_addr((u8 *)&peer->peer_addr.s6_addr + 8, chan->dst.b, in add_peer_chan()
784 chan->dst_type); in add_peer_chan()
792 set_ip_addr_bits(chan->dst_type, (u8 *)&peer->peer_addr.s6_addr + 8); in add_peer_chan()
803 return peer->chan; in add_peer_chan()
806 static int setup_netdev(struct l2cap_chan *chan, struct lowpan_dev **dev) in setup_netdev() argument
817 set_dev_addr(netdev, &chan->src, chan->src_type); in setup_netdev()
820 SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev); in setup_netdev()
825 (*dev)->hdev = chan->conn->hcon->hdev; in setup_netdev()
846 netdev->ifindex, &chan->dst, chan->dst_type, in setup_netdev()
847 &chan->src, chan->src_type); in setup_netdev()
856 static inline void chan_ready_cb(struct l2cap_chan *chan) in chan_ready_cb() argument
860 dev = lookup_dev(chan->conn); in chan_ready_cb()
862 BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev); in chan_ready_cb()
865 if (setup_netdev(chan, &dev) < 0) { in chan_ready_cb()
866 l2cap_chan_del(chan, -ENOENT); in chan_ready_cb()
874 add_peer_chan(chan, dev); in chan_ready_cb()
880 struct l2cap_chan *chan; in chan_new_conn_cb() local
882 chan = chan_create(); in chan_new_conn_cb()
883 if (!chan) in chan_new_conn_cb()
886 chan->ops = pchan->ops; in chan_new_conn_cb()
888 BT_DBG("chan %p pchan %p", chan, pchan); in chan_new_conn_cb()
890 return chan; in chan_new_conn_cb()
903 static void chan_close_cb(struct l2cap_chan *chan) in chan_close_cb() argument
911 BT_DBG("chan %p conn %p", chan, chan->conn); in chan_close_cb()
913 if (chan->conn && chan->conn->hcon) { in chan_close_cb()
914 if (!is_bt_6lowpan(chan->conn->hcon)) in chan_close_cb()
927 peer = __peer_lookup_chan(dev, chan); in chan_close_cb()
934 BT_DBG("chan %p orig refcnt %d", chan, in chan_close_cb()
935 atomic_read(&chan->kref.refcount)); in chan_close_cb()
937 l2cap_chan_put(chan); in chan_close_cb()
960 static void chan_state_change_cb(struct l2cap_chan *chan, int state, int err) in chan_state_change_cb() argument
962 BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn, in chan_state_change_cb()
966 static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan, in chan_alloc_skb_cb() argument
977 static void chan_suspend_cb(struct l2cap_chan *chan) in chan_suspend_cb() argument
979 struct sk_buff *skb = chan->data; in chan_suspend_cb()
981 BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); in chan_suspend_cb()
989 static void chan_resume_cb(struct l2cap_chan *chan) in chan_resume_cb() argument
991 struct sk_buff *skb = chan->data; in chan_resume_cb()
993 BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); in chan_resume_cb()
1001 static long chan_get_sndtimeo_cb(struct l2cap_chan *chan) in chan_get_sndtimeo_cb() argument
1033 struct l2cap_chan *chan; in bt_6lowpan_connect() local
1036 chan = chan_create(); in bt_6lowpan_connect()
1037 if (!chan) in bt_6lowpan_connect()
1040 chan->ops = &bt_6lowpan_chan_ops; in bt_6lowpan_connect()
1042 err = l2cap_chan_connect(chan, cpu_to_le16(L2CAP_PSM_IPSP), 0, in bt_6lowpan_connect()
1045 BT_DBG("chan %p err %d", chan, err); in bt_6lowpan_connect()
1047 l2cap_chan_put(chan); in bt_6lowpan_connect()
1062 BT_DBG("peer %p chan %p", peer, peer->chan); in bt_6lowpan_disconnect()
1064 l2cap_chan_close(peer->chan, ENOENT); in bt_6lowpan_disconnect()
1072 struct l2cap_chan *chan; in bt_6lowpan_listen() local
1078 chan = chan_create(); in bt_6lowpan_listen()
1079 if (!chan) in bt_6lowpan_listen()
1082 chan->ops = &bt_6lowpan_chan_ops; in bt_6lowpan_listen()
1083 chan->state = BT_LISTEN; in bt_6lowpan_listen()
1084 chan->src_type = BDADDR_LE_PUBLIC; in bt_6lowpan_listen()
1086 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in bt_6lowpan_listen()
1088 BT_DBG("chan %p src type %d", chan, chan->src_type); in bt_6lowpan_listen()
1090 err = l2cap_add_psm(chan, addr, cpu_to_le16(L2CAP_PSM_IPSP)); in bt_6lowpan_listen()
1092 l2cap_chan_put(chan); in bt_6lowpan_listen()
1097 return chan; in bt_6lowpan_listen()
1155 new_peer->chan = peer->chan; in disconnect_all_peers()
1166 l2cap_chan_close(peer->chan, ENOENT); in disconnect_all_peers()
1304 &peer->chan->dst, peer->chan->dst_type); in lowpan_control_show()