Lines Matching refs:chan

35 	struct l2cap_chan *chan;  member
59 struct l2cap_chan *chan; member
108 __peer_lookup_chan(struct lowpan_btle_dev *dev, struct l2cap_chan *chan) in __peer_lookup_chan() argument
113 if (peer->chan == chan) in __peer_lookup_chan()
126 if (peer->chan->conn == conn) in __peer_lookup_conn()
172 &peer->chan->dst, peer->chan->dst_type, in peer_lookup_dst()
345 static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in chan_recv_cb() argument
351 peer = lookup_peer(chan->conn); in chan_recv_cb()
355 dev = lookup_dev(chan->conn); in chan_recv_cb()
385 lowpan_cb(skb)->chan = NULL; in setup_header()
402 *peer_addr = peer->chan->dst; in setup_header()
403 *peer_addr_type = peer->chan->dst_type; in setup_header()
404 lowpan_cb(skb)->chan = peer->chan; in setup_header()
429 static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb, in send_pkt() argument
439 chan->data = skb; in send_pkt()
447 err = l2cap_chan_send(chan, &msg, skb->len, NULL); in send_pkt()
484 &pentry->chan->dst, pentry->chan->dst_type, in send_mcast_pkt()
485 &pentry->peer_addr, pentry->chan); in send_mcast_pkt()
486 ret = send_pkt(pentry->chan, local_skb, netdev); in send_mcast_pkt()
524 if (lowpan_cb(skb)->chan) { in bt_xmit()
527 &lowpan_cb(skb)->addr, lowpan_cb(skb)->chan); in bt_xmit()
528 err = send_pkt(lowpan_cb(skb)->chan, skb, netdev); in bt_xmit()
619 struct l2cap_chan *chan; in chan_create() local
621 chan = l2cap_chan_create(); in chan_create()
622 if (!chan) in chan_create()
625 l2cap_chan_set_defaults(chan); in chan_create()
627 chan->chan_type = L2CAP_CHAN_CONN_ORIENTED; in chan_create()
628 chan->mode = L2CAP_MODE_LE_FLOWCTL; in chan_create()
629 chan->imtu = 1280; in chan_create()
631 return chan; in chan_create()
634 static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, in add_peer_chan() argument
644 peer->chan = chan; in add_peer_chan()
646 baswap((void *)peer->lladdr, &chan->dst); in add_peer_chan()
660 return peer->chan; in add_peer_chan()
663 static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev) in setup_netdev() argument
676 baswap(&addr, &chan->src); in setup_netdev()
680 SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev); in setup_netdev()
685 (*dev)->hdev = chan->conn->hcon->hdev; in setup_netdev()
704 netdev->ifindex, &chan->dst, chan->dst_type, in setup_netdev()
705 &chan->src, chan->src_type); in setup_netdev()
714 static inline void chan_ready_cb(struct l2cap_chan *chan) in chan_ready_cb() argument
719 dev = lookup_dev(chan->conn); in chan_ready_cb()
721 BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev); in chan_ready_cb()
724 if (setup_netdev(chan, &dev) < 0) { in chan_ready_cb()
725 l2cap_chan_del(chan, -ENOENT); in chan_ready_cb()
734 add_peer_chan(chan, dev, new_netdev); in chan_ready_cb()
740 struct l2cap_chan *chan; in chan_new_conn_cb() local
742 chan = chan_create(); in chan_new_conn_cb()
743 if (!chan) in chan_new_conn_cb()
746 chan->ops = pchan->ops; in chan_new_conn_cb()
748 BT_DBG("chan %p pchan %p", chan, pchan); in chan_new_conn_cb()
750 return chan; in chan_new_conn_cb()
764 static void chan_close_cb(struct l2cap_chan *chan) in chan_close_cb() argument
772 BT_DBG("chan %p conn %p", chan, chan->conn); in chan_close_cb()
774 if (chan->conn && chan->conn->hcon) { in chan_close_cb()
775 if (!is_bt_6lowpan(chan->conn->hcon)) in chan_close_cb()
788 peer = __peer_lookup_chan(dev, chan); in chan_close_cb()
795 BT_DBG("chan %p orig refcnt %u", chan, in chan_close_cb()
796 kref_read(&chan->kref)); in chan_close_cb()
798 l2cap_chan_put(chan); in chan_close_cb()
819 static void chan_state_change_cb(struct l2cap_chan *chan, int state, int err) in chan_state_change_cb() argument
821 BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn, in chan_state_change_cb()
825 static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan, in chan_alloc_skb_cb() argument
841 static void chan_suspend_cb(struct l2cap_chan *chan) in chan_suspend_cb() argument
845 BT_DBG("chan %p suspend", chan); in chan_suspend_cb()
847 dev = lookup_dev(chan->conn); in chan_suspend_cb()
854 static void chan_resume_cb(struct l2cap_chan *chan) in chan_resume_cb() argument
858 BT_DBG("chan %p resume", chan); in chan_resume_cb()
860 dev = lookup_dev(chan->conn); in chan_resume_cb()
867 static long chan_get_sndtimeo_cb(struct l2cap_chan *chan) in chan_get_sndtimeo_cb() argument
891 struct l2cap_chan *chan; in bt_6lowpan_connect() local
894 chan = chan_create(); in bt_6lowpan_connect()
895 if (!chan) in bt_6lowpan_connect()
898 chan->ops = &bt_6lowpan_chan_ops; in bt_6lowpan_connect()
900 err = l2cap_chan_connect(chan, cpu_to_le16(L2CAP_PSM_IPSP), 0, in bt_6lowpan_connect()
903 BT_DBG("chan %p err %d", chan, err); in bt_6lowpan_connect()
905 l2cap_chan_put(chan); in bt_6lowpan_connect()
920 BT_DBG("peer %p chan %p", peer, peer->chan); in bt_6lowpan_disconnect()
922 l2cap_chan_close(peer->chan, ENOENT); in bt_6lowpan_disconnect()
930 struct l2cap_chan *chan; in bt_6lowpan_listen() local
936 chan = chan_create(); in bt_6lowpan_listen()
937 if (!chan) in bt_6lowpan_listen()
940 chan->ops = &bt_6lowpan_chan_ops; in bt_6lowpan_listen()
941 chan->state = BT_LISTEN; in bt_6lowpan_listen()
942 chan->src_type = BDADDR_LE_PUBLIC; in bt_6lowpan_listen()
944 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in bt_6lowpan_listen()
946 BT_DBG("chan %p src type %u", chan, chan->src_type); in bt_6lowpan_listen()
948 err = l2cap_add_psm(chan, addr, cpu_to_le16(L2CAP_PSM_IPSP)); in bt_6lowpan_listen()
950 l2cap_chan_put(chan); in bt_6lowpan_listen()
955 return chan; in bt_6lowpan_listen()
1014 new_peer->chan = peer->chan; in disconnect_all_peers()
1025 l2cap_chan_close(peer->chan, ENOENT); in disconnect_all_peers()
1167 &peer->chan->dst, peer->chan->dst_type); in lowpan_control_show()