Lines Matching refs:backbone_gw
70 struct batadv_bla_backbone_gw *backbone_gw);
163 struct batadv_bla_backbone_gw *backbone_gw; in batadv_backbone_gw_release() local
165 backbone_gw = container_of(ref, struct batadv_bla_backbone_gw, in batadv_backbone_gw_release()
168 kfree_rcu(backbone_gw, rcu); in batadv_backbone_gw_release()
176 static void batadv_backbone_gw_put(struct batadv_bla_backbone_gw *backbone_gw) in batadv_backbone_gw_put() argument
178 kref_put(&backbone_gw->refcount, batadv_backbone_gw_release); in batadv_backbone_gw_put()
194 old_backbone_gw = claim->backbone_gw; in batadv_claim_release()
195 claim->backbone_gw = NULL; in batadv_claim_release()
269 struct batadv_bla_backbone_gw search_entry, *backbone_gw; in batadv_backbone_hash_find() local
283 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_backbone_hash_find()
284 if (!batadv_compare_backbone_gw(&backbone_gw->hash_entry, in batadv_backbone_hash_find()
288 if (!kref_get_unless_zero(&backbone_gw->refcount)) in batadv_backbone_hash_find()
291 backbone_gw_tmp = backbone_gw; in batadv_backbone_hash_find()
304 batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_del_backbone_claims() argument
313 hash = backbone_gw->bat_priv->bla.claim_hash; in batadv_bla_del_backbone_claims()
324 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
334 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
335 backbone_gw->crc = BATADV_BLA_CRC_INIT; in batadv_bla_del_backbone_claims()
336 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
468 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_report() local
472 backbone_gw = container_of(work, struct batadv_bla_backbone_gw, in batadv_bla_loopdetect_report()
474 bat_priv = backbone_gw->bat_priv; in batadv_bla_loopdetect_report()
478 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
480 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
486 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_report()
576 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_own_backbone_gw() local
578 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_update_own_backbone_gw()
581 if (unlikely(!backbone_gw)) in batadv_bla_update_own_backbone_gw()
584 backbone_gw->lasttime = jiffies; in batadv_bla_update_own_backbone_gw()
585 batadv_backbone_gw_put(backbone_gw); in batadv_bla_update_own_backbone_gw()
604 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_answer_request() local
611 backbone_gw = batadv_backbone_hash_find(bat_priv, in batadv_bla_answer_request()
614 if (!backbone_gw) in batadv_bla_answer_request()
624 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
634 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_answer_request()
635 batadv_backbone_gw_put(backbone_gw); in batadv_bla_answer_request()
646 static void batadv_bla_send_request(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_request() argument
649 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_send_request()
651 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_send_request()
652 "Sending REQUEST to %pM\n", backbone_gw->orig); in batadv_bla_send_request()
655 batadv_bla_send_claim(backbone_gw->bat_priv, backbone_gw->orig, in batadv_bla_send_request()
656 backbone_gw->vid, BATADV_CLAIM_TYPE_REQUEST); in batadv_bla_send_request()
659 if (!atomic_read(&backbone_gw->request_sent)) { in batadv_bla_send_request()
660 atomic_inc(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_send_request()
661 atomic_set(&backbone_gw->request_sent, 1); in batadv_bla_send_request()
671 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_announce() argument
677 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
678 crc = htons(backbone_gw->crc); in batadv_bla_send_announce()
679 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
682 batadv_bla_send_claim(bat_priv, mac, backbone_gw->vid, in batadv_bla_send_announce()
695 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_add_claim() argument
717 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
718 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
738 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
745 backbone_gw->orig); in batadv_bla_add_claim()
752 old_backbone_gw = claim->backbone_gw; in batadv_bla_add_claim()
753 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
754 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
767 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
768 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
769 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
770 backbone_gw->lasttime = jiffies; in batadv_bla_add_claim()
786 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_claim_get_backbone_gw() local
789 backbone_gw = claim->backbone_gw; in batadv_bla_claim_get_backbone_gw()
790 kref_get(&backbone_gw->refcount); in batadv_bla_claim_get_backbone_gw()
793 return backbone_gw; in batadv_bla_claim_get_backbone_gw()
836 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_announce() local
842 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_announce()
845 if (unlikely(!backbone_gw)) in batadv_handle_announce()
849 backbone_gw->lasttime = jiffies; in batadv_handle_announce()
854 __func__, batadv_print_vid(vid), backbone_gw->orig, crc); in batadv_handle_announce()
856 spin_lock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
857 backbone_crc = backbone_gw->crc; in batadv_handle_announce()
858 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
861 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_handle_announce()
863 __func__, backbone_gw->orig, in batadv_handle_announce()
864 batadv_print_vid(backbone_gw->vid), in batadv_handle_announce()
867 batadv_bla_send_request(backbone_gw); in batadv_handle_announce()
872 if (atomic_read(&backbone_gw->request_sent)) { in batadv_handle_announce()
873 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_handle_announce()
874 atomic_set(&backbone_gw->request_sent, 0); in batadv_handle_announce()
878 batadv_backbone_gw_put(backbone_gw); in batadv_handle_announce()
930 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_unclaim() local
938 backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_addr, vid); in batadv_handle_unclaim()
940 if (!backbone_gw) in batadv_handle_unclaim()
946 claim_addr, batadv_print_vid(vid), backbone_gw->orig); in batadv_handle_unclaim()
949 batadv_backbone_gw_put(backbone_gw); in batadv_handle_unclaim()
968 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_claim() local
972 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_claim()
975 if (unlikely(!backbone_gw)) in batadv_handle_claim()
979 batadv_bla_add_claim(bat_priv, claim_addr, vid, backbone_gw); in batadv_handle_claim()
986 batadv_backbone_gw_put(backbone_gw); in batadv_handle_claim()
1218 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_backbone_gw() local
1234 hlist_for_each_entry_safe(backbone_gw, node_tmp, in batadv_bla_purge_backbone_gw()
1238 if (!batadv_has_timed_out(backbone_gw->lasttime, in batadv_bla_purge_backbone_gw()
1242 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_purge_backbone_gw()
1244 __func__, backbone_gw->orig); in batadv_bla_purge_backbone_gw()
1248 if (atomic_read(&backbone_gw->request_sent)) in batadv_bla_purge_backbone_gw()
1251 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_purge_backbone_gw()
1253 hlist_del_rcu(&backbone_gw->hash_entry); in batadv_bla_purge_backbone_gw()
1254 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_backbone_gw()
1273 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_claims() local
1288 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_purge_claims()
1292 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_purge_claims()
1309 backbone_gw->orig, in batadv_bla_purge_claims()
1312 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_claims()
1329 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_orig_address() local
1357 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_update_orig_address()
1359 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_update_orig_address()
1363 ether_addr_copy(backbone_gw->orig, in batadv_bla_update_orig_address()
1368 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_update_orig_address()
1386 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_loopdetect() argument
1389 backbone_gw->vid); in batadv_bla_send_loopdetect()
1391 backbone_gw->vid, BATADV_CLAIM_TYPE_LOOPDETECT); in batadv_bla_send_loopdetect()
1428 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_periodic_work() local
1471 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_periodic_work()
1472 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_periodic_work()
1476 backbone_gw->lasttime = jiffies; in batadv_bla_periodic_work()
1478 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_periodic_work()
1481 backbone_gw); in batadv_bla_periodic_work()
1492 if (atomic_read(&backbone_gw->request_sent) == 0) in batadv_bla_periodic_work()
1495 if (!atomic_dec_and_test(&backbone_gw->wait_periods)) in batadv_bla_periodic_work()
1498 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_periodic_work()
1499 atomic_set(&backbone_gw->request_sent, 0); in batadv_bla_periodic_work()
1668 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw_orig() local
1681 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_is_backbone_gw_orig()
1682 if (batadv_compare_eth(backbone_gw->orig, orig) && in batadv_bla_is_backbone_gw_orig()
1683 backbone_gw->vid == vid) { in batadv_bla_is_backbone_gw_orig()
1706 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw() local
1719 backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv, in batadv_bla_is_backbone_gw()
1721 if (!backbone_gw) in batadv_bla_is_backbone_gw()
1724 batadv_backbone_gw_put(backbone_gw); in batadv_bla_is_backbone_gw()
1773 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_check() local
1793 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_loopdetect_check()
1796 if (unlikely(!backbone_gw)) in batadv_bla_loopdetect_check()
1799 ret = queue_work(batadv_event_workqueue, &backbone_gw->report_work); in batadv_bla_loopdetect_check()
1805 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_check()
1829 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_rx() local
1875 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_rx()
1876 own_claim = batadv_compare_eth(backbone_gw->orig, in batadv_bla_rx()
1878 batadv_backbone_gw_put(backbone_gw); in batadv_bla_rx()
1944 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_tx() local
1976 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_tx()
1977 client_roamed = batadv_compare_eth(backbone_gw->orig, in batadv_bla_tx()
1979 batadv_backbone_gw_put(backbone_gw); in batadv_bla_tx()
2042 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_claim_table_seq_print_text() local
2067 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_claim_table_seq_print_text()
2069 is_own = batadv_compare_eth(backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
2072 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_claim_table_seq_print_text()
2073 backbone_crc = backbone_gw->crc; in batadv_bla_claim_table_seq_print_text()
2074 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_claim_table_seq_print_text()
2077 backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
2081 batadv_backbone_gw_put(backbone_gw); in batadv_bla_claim_table_seq_print_text()
2121 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_dump_entry()
2124 spin_lock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2125 backbone_crc = claim->backbone_gw->crc; in batadv_bla_claim_dump_entry()
2126 spin_unlock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2137 claim->backbone_gw->orig) || in batadv_bla_claim_dump_entry()
2271 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_backbone_table_seq_print_text() local
2294 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_backbone_table_seq_print_text()
2296 backbone_gw->lasttime); in batadv_bla_backbone_table_seq_print_text()
2300 is_own = batadv_compare_eth(backbone_gw->orig, in batadv_bla_backbone_table_seq_print_text()
2305 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_table_seq_print_text()
2306 backbone_crc = backbone_gw->crc; in batadv_bla_backbone_table_seq_print_text()
2307 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_table_seq_print_text()
2310 backbone_gw->orig, in batadv_bla_backbone_table_seq_print_text()
2311 batadv_print_vid(backbone_gw->vid), secs, in batadv_bla_backbone_table_seq_print_text()
2337 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_backbone_dump_entry() argument
2353 is_own = batadv_compare_eth(backbone_gw->orig, primary_addr); in batadv_bla_backbone_dump_entry()
2355 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2356 backbone_crc = backbone_gw->crc; in batadv_bla_backbone_dump_entry()
2357 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2359 msecs = jiffies_to_msecs(jiffies - backbone_gw->lasttime); in batadv_bla_backbone_dump_entry()
2368 backbone_gw->orig) || in batadv_bla_backbone_dump_entry()
2369 nla_put_u16(msg, BATADV_ATTR_BLA_VID, backbone_gw->vid) || in batadv_bla_backbone_dump_entry()
2401 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_backbone_dump_bucket() local
2406 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_backbone_dump_bucket()
2411 primary_if, backbone_gw); in batadv_bla_backbone_dump_bucket()
2528 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_check_claim()