Lines Matching full:peer
61 /* peer addresses in various formats */
85 struct lowpan_peer *peer) in peer_add() argument
87 list_add_rcu(&peer->list, &dev->peers); in peer_add()
92 struct lowpan_peer *peer) in peer_del() argument
94 list_del_rcu(&peer->list); in peer_del()
95 kfree_rcu(peer, rcu); in peer_del()
100 BT_DBG("last peer"); in peer_del()
110 struct lowpan_peer *peer; in __peer_lookup_chan() local
112 list_for_each_entry_rcu(peer, &dev->peers, list) { in __peer_lookup_chan()
113 if (peer->chan == chan) in __peer_lookup_chan()
114 return peer; in __peer_lookup_chan()
123 struct lowpan_peer *peer; in __peer_lookup_conn() local
125 list_for_each_entry_rcu(peer, &dev->peers, list) { in __peer_lookup_conn()
126 if (peer->chan->conn == conn) in __peer_lookup_conn()
127 return peer; in __peer_lookup_conn()
140 struct lowpan_peer *peer; in peer_lookup_dst() local
148 * probably the destination is a direct peer. in peer_lookup_dst()
170 list_for_each_entry_rcu(peer, &dev->peers, list) { in peer_lookup_dst()
172 &peer->chan->dst, peer->chan->dst_type, in peer_lookup_dst()
173 &peer->peer_addr); in peer_lookup_dst()
175 if (!ipv6_addr_cmp(&peer->peer_addr, nexthop)) { in peer_lookup_dst()
177 return peer; in peer_lookup_dst()
184 list_for_each_entry_rcu(peer, &dev->peers, list) { in peer_lookup_dst()
185 if (!memcmp(neigh->ha, peer->lladdr, ETH_ALEN)) { in peer_lookup_dst()
188 return peer; in peer_lookup_dst()
202 struct lowpan_peer *peer = NULL; in lookup_peer() local
207 peer = __peer_lookup_conn(entry, conn); in lookup_peer()
208 if (peer) in lookup_peer()
214 return peer; in lookup_peer()
248 struct lowpan_peer *peer) in iphc_decompress() argument
252 saddr = peer->lladdr; in iphc_decompress()
258 struct lowpan_peer *peer) in recv_pkt() argument
311 ret = iphc_decompress(local_skb, dev, peer); in recv_pkt()
348 struct lowpan_peer *peer; in chan_recv_cb() local
351 peer = lookup_peer(chan->conn); in chan_recv_cb()
352 if (!peer) in chan_recv_cb()
359 err = recv_pkt(skb, dev->netdev, peer); in chan_recv_cb()
374 struct lowpan_peer *peer; in setup_header() local
392 * or user set route) so get peer according to in setup_header()
395 peer = peer_lookup_dst(dev, &ipv6_daddr, skb); in setup_header()
396 if (!peer) { in setup_header()
397 BT_DBG("no such peer"); in setup_header()
401 daddr = peer->lladdr; 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()
638 struct lowpan_peer *peer; in add_peer_chan() local
640 peer = kzalloc(sizeof(*peer), GFP_ATOMIC); in add_peer_chan()
641 if (!peer) in add_peer_chan()
644 peer->chan = chan; in add_peer_chan()
646 baswap((void *)peer->lladdr, &chan->dst); in add_peer_chan()
648 lowpan_iphc_uncompress_eui48_lladdr(&peer->peer_addr, peer->lladdr); in add_peer_chan()
651 INIT_LIST_HEAD(&peer->list); in add_peer_chan()
652 peer_add(dev, peer); in add_peer_chan()
660 return peer->chan; in add_peer_chan()
703 BT_DBG("ifindex %d peer bdaddr %pMR type %d my addr %pMR type %d", in setup_netdev()
768 struct lowpan_peer *peer; in chan_close_cb() local
788 peer = __peer_lookup_chan(dev, chan); in chan_close_cb()
789 if (peer) { in chan_close_cb()
790 last = peer_del(dev, peer); in chan_close_cb()
794 last ? "last " : "1 ", peer); in chan_close_cb()
912 struct lowpan_peer *peer; in bt_6lowpan_disconnect() local
916 peer = lookup_peer(conn); in bt_6lowpan_disconnect()
917 if (!peer) in bt_6lowpan_disconnect()
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()
996 struct lowpan_peer *peer, *tmp_peer, *new_peer; in disconnect_all_peers() local
1009 list_for_each_entry_rcu(peer, &entry->peers, list) { in disconnect_all_peers()
1014 new_peer->chan = peer->chan; in disconnect_all_peers()
1024 list_for_each_entry_safe(peer, tmp_peer, &peers, list) { in disconnect_all_peers()
1025 l2cap_chan_close(peer->chan, ENOENT); in disconnect_all_peers()
1027 list_del_rcu(&peer->list); in disconnect_all_peers()
1028 kfree_rcu(peer, rcu); in disconnect_all_peers()
1119 struct lowpan_peer *peer; in lowpan_control_write() local
1124 peer = lookup_peer(conn); in lowpan_control_write()
1125 if (peer) { in lowpan_control_write()
1160 struct lowpan_peer *peer; in lowpan_control_show() local
1165 list_for_each_entry(peer, &entry->peers, list) in lowpan_control_show()
1167 &peer->chan->dst, peer->chan->dst_type); in lowpan_control_show()