Lines Matching refs:backbone_gw
58 struct batadv_bla_backbone_gw *backbone_gw);
152 struct batadv_bla_backbone_gw *backbone_gw; in batadv_backbone_gw_release() local
154 backbone_gw = container_of(ref, struct batadv_bla_backbone_gw, in batadv_backbone_gw_release()
157 kfree_rcu(backbone_gw, rcu); in batadv_backbone_gw_release()
165 static void batadv_backbone_gw_put(struct batadv_bla_backbone_gw *backbone_gw) in batadv_backbone_gw_put() argument
167 if (!backbone_gw) in batadv_backbone_gw_put()
170 kref_put(&backbone_gw->refcount, batadv_backbone_gw_release); in batadv_backbone_gw_put()
186 old_backbone_gw = claim->backbone_gw; in batadv_claim_release()
187 claim->backbone_gw = NULL; in batadv_claim_release()
264 struct batadv_bla_backbone_gw search_entry, *backbone_gw; in batadv_backbone_hash_find() local
278 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_backbone_hash_find()
279 if (!batadv_compare_backbone_gw(&backbone_gw->hash_entry, in batadv_backbone_hash_find()
283 if (!kref_get_unless_zero(&backbone_gw->refcount)) in batadv_backbone_hash_find()
286 backbone_gw_tmp = backbone_gw; in batadv_backbone_hash_find()
299 batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_del_backbone_claims() argument
308 hash = backbone_gw->bat_priv->bla.claim_hash; in batadv_bla_del_backbone_claims()
319 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
329 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
330 backbone_gw->crc = BATADV_BLA_CRC_INIT; in batadv_bla_del_backbone_claims()
331 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
466 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_report() local
470 backbone_gw = container_of(work, struct batadv_bla_backbone_gw, in batadv_bla_loopdetect_report()
472 bat_priv = backbone_gw->bat_priv; in batadv_bla_loopdetect_report()
476 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
478 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
484 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_report()
574 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_own_backbone_gw() local
576 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_update_own_backbone_gw()
579 if (unlikely(!backbone_gw)) in batadv_bla_update_own_backbone_gw()
582 backbone_gw->lasttime = jiffies; in batadv_bla_update_own_backbone_gw()
583 batadv_backbone_gw_put(backbone_gw); in batadv_bla_update_own_backbone_gw()
602 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_answer_request() local
609 backbone_gw = batadv_backbone_hash_find(bat_priv, in batadv_bla_answer_request()
612 if (!backbone_gw) in batadv_bla_answer_request()
622 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
632 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_answer_request()
633 batadv_backbone_gw_put(backbone_gw); in batadv_bla_answer_request()
644 static void batadv_bla_send_request(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_request() argument
647 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_send_request()
649 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_send_request()
650 "Sending REQUEST to %pM\n", backbone_gw->orig); in batadv_bla_send_request()
653 batadv_bla_send_claim(backbone_gw->bat_priv, backbone_gw->orig, in batadv_bla_send_request()
654 backbone_gw->vid, BATADV_CLAIM_TYPE_REQUEST); in batadv_bla_send_request()
657 if (!atomic_read(&backbone_gw->request_sent)) { in batadv_bla_send_request()
658 atomic_inc(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_send_request()
659 atomic_set(&backbone_gw->request_sent, 1); in batadv_bla_send_request()
669 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_announce() argument
675 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
676 crc = htons(backbone_gw->crc); in batadv_bla_send_announce()
677 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
680 batadv_bla_send_claim(bat_priv, mac, backbone_gw->vid, in batadv_bla_send_announce()
693 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_add_claim() argument
715 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
716 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
736 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
743 backbone_gw->orig); in batadv_bla_add_claim()
750 old_backbone_gw = claim->backbone_gw; in batadv_bla_add_claim()
751 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
752 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
765 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
766 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
767 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
768 backbone_gw->lasttime = jiffies; in batadv_bla_add_claim()
784 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_claim_get_backbone_gw() local
787 backbone_gw = claim->backbone_gw; in batadv_bla_claim_get_backbone_gw()
788 kref_get(&backbone_gw->refcount); in batadv_bla_claim_get_backbone_gw()
791 return backbone_gw; in batadv_bla_claim_get_backbone_gw()
844 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_announce() local
850 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_announce()
853 if (unlikely(!backbone_gw)) in batadv_handle_announce()
857 backbone_gw->lasttime = jiffies; in batadv_handle_announce()
862 __func__, batadv_print_vid(vid), backbone_gw->orig, crc); in batadv_handle_announce()
864 spin_lock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
865 backbone_crc = backbone_gw->crc; in batadv_handle_announce()
866 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
869 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_handle_announce()
871 __func__, backbone_gw->orig, in batadv_handle_announce()
872 batadv_print_vid(backbone_gw->vid), in batadv_handle_announce()
875 batadv_bla_send_request(backbone_gw); in batadv_handle_announce()
880 if (atomic_read(&backbone_gw->request_sent)) { in batadv_handle_announce()
881 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_handle_announce()
882 atomic_set(&backbone_gw->request_sent, 0); in batadv_handle_announce()
886 batadv_backbone_gw_put(backbone_gw); in batadv_handle_announce()
938 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_unclaim() local
946 backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_addr, vid); in batadv_handle_unclaim()
948 if (!backbone_gw) in batadv_handle_unclaim()
954 claim_addr, batadv_print_vid(vid), backbone_gw->orig); in batadv_handle_unclaim()
957 batadv_backbone_gw_put(backbone_gw); in batadv_handle_unclaim()
976 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_claim() local
980 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_claim()
983 if (unlikely(!backbone_gw)) in batadv_handle_claim()
987 batadv_bla_add_claim(bat_priv, claim_addr, vid, backbone_gw); in batadv_handle_claim()
994 batadv_backbone_gw_put(backbone_gw); in batadv_handle_claim()
1226 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_backbone_gw() local
1242 hlist_for_each_entry_safe(backbone_gw, node_tmp, in batadv_bla_purge_backbone_gw()
1246 if (!batadv_has_timed_out(backbone_gw->lasttime, in batadv_bla_purge_backbone_gw()
1250 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_purge_backbone_gw()
1252 __func__, backbone_gw->orig); in batadv_bla_purge_backbone_gw()
1256 if (atomic_read(&backbone_gw->request_sent)) in batadv_bla_purge_backbone_gw()
1259 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_purge_backbone_gw()
1261 hlist_del_rcu(&backbone_gw->hash_entry); in batadv_bla_purge_backbone_gw()
1262 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_backbone_gw()
1281 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_claims() local
1296 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_purge_claims()
1300 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_purge_claims()
1317 backbone_gw->orig, in batadv_bla_purge_claims()
1320 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_claims()
1337 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_orig_address() local
1365 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_update_orig_address()
1367 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_update_orig_address()
1371 ether_addr_copy(backbone_gw->orig, in batadv_bla_update_orig_address()
1376 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_update_orig_address()
1394 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_loopdetect() argument
1397 backbone_gw->vid); in batadv_bla_send_loopdetect()
1399 backbone_gw->vid, BATADV_CLAIM_TYPE_LOOPDETECT); in batadv_bla_send_loopdetect()
1436 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_periodic_work() local
1479 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_periodic_work()
1480 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_periodic_work()
1484 backbone_gw->lasttime = jiffies; in batadv_bla_periodic_work()
1486 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_periodic_work()
1489 backbone_gw); in batadv_bla_periodic_work()
1500 if (atomic_read(&backbone_gw->request_sent) == 0) in batadv_bla_periodic_work()
1503 if (!atomic_dec_and_test(&backbone_gw->wait_periods)) in batadv_bla_periodic_work()
1506 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_periodic_work()
1507 atomic_set(&backbone_gw->request_sent, 0); in batadv_bla_periodic_work()
1743 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw_orig() local
1756 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_is_backbone_gw_orig()
1757 if (batadv_compare_eth(backbone_gw->orig, orig) && in batadv_bla_is_backbone_gw_orig()
1758 backbone_gw->vid == vid) { in batadv_bla_is_backbone_gw_orig()
1781 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw() local
1794 backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv, in batadv_bla_is_backbone_gw()
1796 if (!backbone_gw) in batadv_bla_is_backbone_gw()
1799 batadv_backbone_gw_put(backbone_gw); in batadv_bla_is_backbone_gw()
1848 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_check() local
1868 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_loopdetect_check()
1871 if (unlikely(!backbone_gw)) in batadv_bla_loopdetect_check()
1874 ret = queue_work(batadv_event_workqueue, &backbone_gw->report_work); in batadv_bla_loopdetect_check()
1880 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_check()
1904 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_rx() local
1973 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_rx()
1974 own_claim = batadv_compare_eth(backbone_gw->orig, in batadv_bla_rx()
1976 batadv_backbone_gw_put(backbone_gw); in batadv_bla_rx()
2043 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_tx() local
2075 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_tx()
2076 client_roamed = batadv_compare_eth(backbone_gw->orig, in batadv_bla_tx()
2078 batadv_backbone_gw_put(backbone_gw); in batadv_bla_tx()
2141 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_claim_table_seq_print_text() local
2166 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_claim_table_seq_print_text()
2168 is_own = batadv_compare_eth(backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
2171 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_claim_table_seq_print_text()
2172 backbone_crc = backbone_gw->crc; in batadv_bla_claim_table_seq_print_text()
2173 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_claim_table_seq_print_text()
2176 backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
2180 batadv_backbone_gw_put(backbone_gw); in batadv_bla_claim_table_seq_print_text()
2224 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_dump_entry()
2227 spin_lock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2228 backbone_crc = claim->backbone_gw->crc; in batadv_bla_claim_dump_entry()
2229 spin_unlock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2240 claim->backbone_gw->orig) || in batadv_bla_claim_dump_entry()
2375 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_backbone_table_seq_print_text() local
2398 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_backbone_table_seq_print_text()
2400 backbone_gw->lasttime); in batadv_bla_backbone_table_seq_print_text()
2404 is_own = batadv_compare_eth(backbone_gw->orig, in batadv_bla_backbone_table_seq_print_text()
2409 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_table_seq_print_text()
2410 backbone_crc = backbone_gw->crc; in batadv_bla_backbone_table_seq_print_text()
2411 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_table_seq_print_text()
2414 backbone_gw->orig, in batadv_bla_backbone_table_seq_print_text()
2415 batadv_print_vid(backbone_gw->vid), secs, in batadv_bla_backbone_table_seq_print_text()
2442 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_backbone_dump_entry() argument
2461 is_own = batadv_compare_eth(backbone_gw->orig, primary_addr); in batadv_bla_backbone_dump_entry()
2463 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2464 backbone_crc = backbone_gw->crc; in batadv_bla_backbone_dump_entry()
2465 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2467 msecs = jiffies_to_msecs(jiffies - backbone_gw->lasttime); in batadv_bla_backbone_dump_entry()
2476 backbone_gw->orig) || in batadv_bla_backbone_dump_entry()
2477 nla_put_u16(msg, BATADV_ATTR_BLA_VID, backbone_gw->vid) || in batadv_bla_backbone_dump_entry()
2512 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_backbone_dump_bucket() local
2519 hlist_for_each_entry(backbone_gw, &hash->table[bucket], hash_entry) { in batadv_bla_backbone_dump_bucket()
2524 primary_if, backbone_gw); in batadv_bla_backbone_dump_bucket()
2637 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_check_claim()