Lines Matching refs:chan

34 	struct l2cap_chan *chan;
58 struct l2cap_chan *chan;
118 &peer->chan->dst, peer->chan->dst_type);
120 if (bacmp(&peer->chan->dst, ba))
123 if (type == peer->chan->dst_type) {
135 __peer_lookup_chan(struct lowpan_btle_dev *dev, struct l2cap_chan *chan)
140 if (peer->chan == chan)
153 if (peer->chan->conn == conn)
199 &peer->chan->dst, peer->chan->dst_type,
373 static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
379 peer = lookup_peer(chan->conn);
383 dev = lookup_dev(chan->conn);
413 lowpan_cb(skb)->chan = NULL;
430 *peer_addr = peer->chan->dst;
431 *peer_addr_type = peer->chan->dst_type;
432 lowpan_cb(skb)->chan = peer->chan;
457 static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb,
467 chan->data = skb;
475 err = l2cap_chan_send(chan, &msg, skb->len);
510 BT_DBG("xmit %s to %pMR type %d IP %pI6c chan %p",
512 &pentry->chan->dst, pentry->chan->dst_type,
513 &pentry->peer_addr, pentry->chan);
514 ret = send_pkt(pentry->chan, local_skb, netdev);
552 if (lowpan_cb(skb)->chan) {
553 BT_DBG("xmit %s to %pMR type %d IP %pI6c chan %p",
555 &lowpan_cb(skb)->addr, lowpan_cb(skb)->chan);
556 err = send_pkt(lowpan_cb(skb)->chan, skb, netdev);
647 struct l2cap_chan *chan;
649 chan = l2cap_chan_create();
650 if (!chan)
653 l2cap_chan_set_defaults(chan);
655 chan->chan_type = L2CAP_CHAN_CONN_ORIENTED;
656 chan->mode = L2CAP_MODE_LE_FLOWCTL;
657 chan->imtu = 1280;
659 return chan;
662 static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan,
672 peer->chan = chan;
675 baswap((void *)peer->lladdr, &chan->dst);
689 return peer->chan;
692 static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev)
704 baswap((void *)netdev->dev_addr, &chan->src);
707 SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev);
712 (*dev)->hdev = chan->conn->hcon->hdev;
731 netdev->ifindex, &chan->dst, chan->dst_type,
732 &chan->src, chan->src_type);
741 static inline void chan_ready_cb(struct l2cap_chan *chan)
746 dev = lookup_dev(chan->conn);
748 BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev);
751 if (setup_netdev(chan, &dev) < 0) {
752 l2cap_chan_del(chan, -ENOENT);
761 add_peer_chan(chan, dev, new_netdev);
767 struct l2cap_chan *chan;
769 chan = chan_create();
770 if (!chan)
773 chan->ops = pchan->ops;
775 BT_DBG("chan %p pchan %p", chan, pchan);
777 return chan;
791 static void chan_close_cb(struct l2cap_chan *chan)
799 BT_DBG("chan %p conn %p", chan, chan->conn);
801 if (chan->conn && chan->conn->hcon) {
802 if (!is_bt_6lowpan(chan->conn->hcon))
815 peer = __peer_lookup_chan(dev, chan);
822 BT_DBG("chan %p orig refcnt %d", chan,
823 kref_read(&chan->kref));
825 l2cap_chan_put(chan);
848 static void chan_state_change_cb(struct l2cap_chan *chan, int state, int err)
850 BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn,
854 static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan,
865 static void chan_suspend_cb(struct l2cap_chan *chan)
869 BT_DBG("chan %p suspend", chan);
871 dev = lookup_dev(chan->conn);
878 static void chan_resume_cb(struct l2cap_chan *chan)
882 BT_DBG("chan %p resume", chan);
884 dev = lookup_dev(chan->conn);
891 static long chan_get_sndtimeo_cb(struct l2cap_chan *chan)
923 struct l2cap_chan *chan;
926 chan = chan_create();
927 if (!chan)
930 chan->ops = &bt_6lowpan_chan_ops;
932 err = l2cap_chan_connect(chan, cpu_to_le16(L2CAP_PSM_IPSP), 0,
935 BT_DBG("chan %p err %d", chan, err);
937 l2cap_chan_put(chan);
952 BT_DBG("peer %p chan %p", peer, peer->chan);
954 l2cap_chan_close(peer->chan, ENOENT);
962 struct l2cap_chan *chan;
968 chan = chan_create();
969 if (!chan)
972 chan->ops = &bt_6lowpan_chan_ops;
973 chan->state = BT_LISTEN;
974 chan->src_type = BDADDR_LE_PUBLIC;
976 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT);
978 BT_DBG("chan %p src type %d", chan, chan->src_type);
980 err = l2cap_add_psm(chan, addr, cpu_to_le16(L2CAP_PSM_IPSP));
982 l2cap_chan_put(chan);
987 return chan;
1046 new_peer->chan = peer->chan;
1057 l2cap_chan_close(peer->chan, ENOENT);
1199 &peer->chan->dst, peer->chan->dst_type);