Lines Matching refs:backbone_gw

57 			 struct batadv_bla_backbone_gw *backbone_gw);
151 struct batadv_bla_backbone_gw *backbone_gw; in batadv_backbone_gw_release() local
153 backbone_gw = container_of(ref, struct batadv_bla_backbone_gw, in batadv_backbone_gw_release()
156 kfree_rcu(backbone_gw, rcu); in batadv_backbone_gw_release()
164 static void batadv_backbone_gw_put(struct batadv_bla_backbone_gw *backbone_gw) in batadv_backbone_gw_put() argument
166 if (!backbone_gw) in batadv_backbone_gw_put()
169 kref_put(&backbone_gw->refcount, batadv_backbone_gw_release); in batadv_backbone_gw_put()
185 old_backbone_gw = claim->backbone_gw; in batadv_claim_release()
186 claim->backbone_gw = NULL; in batadv_claim_release()
263 struct batadv_bla_backbone_gw search_entry, *backbone_gw; in batadv_backbone_hash_find() local
277 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_backbone_hash_find()
278 if (!batadv_compare_backbone_gw(&backbone_gw->hash_entry, in batadv_backbone_hash_find()
282 if (!kref_get_unless_zero(&backbone_gw->refcount)) in batadv_backbone_hash_find()
285 backbone_gw_tmp = backbone_gw; in batadv_backbone_hash_find()
298 batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_del_backbone_claims() argument
307 hash = backbone_gw->bat_priv->bla.claim_hash; in batadv_bla_del_backbone_claims()
318 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
328 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
329 backbone_gw->crc = BATADV_BLA_CRC_INIT; in batadv_bla_del_backbone_claims()
330 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_del_backbone_claims()
461 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_report() local
465 backbone_gw = container_of(work, struct batadv_bla_backbone_gw, in batadv_bla_loopdetect_report()
467 bat_priv = backbone_gw->bat_priv; in batadv_bla_loopdetect_report()
471 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
473 batadv_print_vid(backbone_gw->vid)); in batadv_bla_loopdetect_report()
479 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_report()
569 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_own_backbone_gw() local
571 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_update_own_backbone_gw()
574 if (unlikely(!backbone_gw)) in batadv_bla_update_own_backbone_gw()
577 backbone_gw->lasttime = jiffies; in batadv_bla_update_own_backbone_gw()
578 batadv_backbone_gw_put(backbone_gw); in batadv_bla_update_own_backbone_gw()
597 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_answer_request() local
604 backbone_gw = batadv_backbone_hash_find(bat_priv, in batadv_bla_answer_request()
607 if (!backbone_gw) in batadv_bla_answer_request()
617 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
627 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_answer_request()
628 batadv_backbone_gw_put(backbone_gw); in batadv_bla_answer_request()
639 static void batadv_bla_send_request(struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_request() argument
642 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_send_request()
644 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_send_request()
645 "Sending REQUEST to %pM\n", backbone_gw->orig); in batadv_bla_send_request()
648 batadv_bla_send_claim(backbone_gw->bat_priv, backbone_gw->orig, in batadv_bla_send_request()
649 backbone_gw->vid, BATADV_CLAIM_TYPE_REQUEST); in batadv_bla_send_request()
652 if (!atomic_read(&backbone_gw->request_sent)) { in batadv_bla_send_request()
653 atomic_inc(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_send_request()
654 atomic_set(&backbone_gw->request_sent, 1); in batadv_bla_send_request()
664 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_announce() argument
670 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
671 crc = htons(backbone_gw->crc); in batadv_bla_send_announce()
672 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_send_announce()
675 batadv_bla_send_claim(bat_priv, mac, backbone_gw->vid, in batadv_bla_send_announce()
688 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_add_claim() argument
710 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
711 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
731 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
738 backbone_gw->orig); in batadv_bla_add_claim()
745 old_backbone_gw = claim->backbone_gw; in batadv_bla_add_claim()
746 kref_get(&backbone_gw->refcount); in batadv_bla_add_claim()
747 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
760 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
761 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
762 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_add_claim()
763 backbone_gw->lasttime = jiffies; in batadv_bla_add_claim()
779 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_claim_get_backbone_gw() local
782 backbone_gw = claim->backbone_gw; in batadv_bla_claim_get_backbone_gw()
783 kref_get(&backbone_gw->refcount); in batadv_bla_claim_get_backbone_gw()
786 return backbone_gw; in batadv_bla_claim_get_backbone_gw()
839 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_announce() local
845 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_announce()
848 if (unlikely(!backbone_gw)) in batadv_handle_announce()
852 backbone_gw->lasttime = jiffies; in batadv_handle_announce()
857 __func__, batadv_print_vid(vid), backbone_gw->orig, crc); in batadv_handle_announce()
859 spin_lock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
860 backbone_crc = backbone_gw->crc; in batadv_handle_announce()
861 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_handle_announce()
864 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_handle_announce()
866 __func__, backbone_gw->orig, in batadv_handle_announce()
867 batadv_print_vid(backbone_gw->vid), in batadv_handle_announce()
870 batadv_bla_send_request(backbone_gw); in batadv_handle_announce()
875 if (atomic_read(&backbone_gw->request_sent)) { in batadv_handle_announce()
876 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_handle_announce()
877 atomic_set(&backbone_gw->request_sent, 0); in batadv_handle_announce()
881 batadv_backbone_gw_put(backbone_gw); in batadv_handle_announce()
933 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_unclaim() local
941 backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_addr, vid); in batadv_handle_unclaim()
943 if (!backbone_gw) in batadv_handle_unclaim()
949 claim_addr, batadv_print_vid(vid), backbone_gw->orig); in batadv_handle_unclaim()
952 batadv_backbone_gw_put(backbone_gw); in batadv_handle_unclaim()
971 struct batadv_bla_backbone_gw *backbone_gw; in batadv_handle_claim() local
975 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, in batadv_handle_claim()
978 if (unlikely(!backbone_gw)) in batadv_handle_claim()
982 batadv_bla_add_claim(bat_priv, claim_addr, vid, backbone_gw); in batadv_handle_claim()
989 batadv_backbone_gw_put(backbone_gw); in batadv_handle_claim()
1221 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_backbone_gw() local
1237 hlist_for_each_entry_safe(backbone_gw, node_tmp, in batadv_bla_purge_backbone_gw()
1241 if (!batadv_has_timed_out(backbone_gw->lasttime, in batadv_bla_purge_backbone_gw()
1245 batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, in batadv_bla_purge_backbone_gw()
1247 __func__, backbone_gw->orig); in batadv_bla_purge_backbone_gw()
1251 if (atomic_read(&backbone_gw->request_sent)) in batadv_bla_purge_backbone_gw()
1254 batadv_bla_del_backbone_claims(backbone_gw); in batadv_bla_purge_backbone_gw()
1256 hlist_del_rcu(&backbone_gw->hash_entry); in batadv_bla_purge_backbone_gw()
1257 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_backbone_gw()
1276 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_purge_claims() local
1291 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_purge_claims()
1295 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_purge_claims()
1312 backbone_gw->orig, in batadv_bla_purge_claims()
1315 batadv_backbone_gw_put(backbone_gw); in batadv_bla_purge_claims()
1332 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_update_orig_address() local
1360 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_update_orig_address()
1362 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_update_orig_address()
1366 ether_addr_copy(backbone_gw->orig, in batadv_bla_update_orig_address()
1371 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_update_orig_address()
1389 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_send_loopdetect() argument
1392 backbone_gw->vid); in batadv_bla_send_loopdetect()
1394 backbone_gw->vid, BATADV_CLAIM_TYPE_LOOPDETECT); in batadv_bla_send_loopdetect()
1431 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_periodic_work() local
1474 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_periodic_work()
1475 if (!batadv_compare_eth(backbone_gw->orig, in batadv_bla_periodic_work()
1479 backbone_gw->lasttime = jiffies; in batadv_bla_periodic_work()
1481 batadv_bla_send_announce(bat_priv, backbone_gw); in batadv_bla_periodic_work()
1484 backbone_gw); in batadv_bla_periodic_work()
1495 if (atomic_read(&backbone_gw->request_sent) == 0) in batadv_bla_periodic_work()
1498 if (!atomic_dec_and_test(&backbone_gw->wait_periods)) in batadv_bla_periodic_work()
1501 atomic_dec(&backbone_gw->bat_priv->bla.num_requests); in batadv_bla_periodic_work()
1502 atomic_set(&backbone_gw->request_sent, 0); in batadv_bla_periodic_work()
1737 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw_orig() local
1750 hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { in batadv_bla_is_backbone_gw_orig()
1751 if (batadv_compare_eth(backbone_gw->orig, orig) && in batadv_bla_is_backbone_gw_orig()
1752 backbone_gw->vid == vid) { in batadv_bla_is_backbone_gw_orig()
1775 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_is_backbone_gw() local
1788 backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv, in batadv_bla_is_backbone_gw()
1790 if (!backbone_gw) in batadv_bla_is_backbone_gw()
1793 batadv_backbone_gw_put(backbone_gw); in batadv_bla_is_backbone_gw()
1841 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_loopdetect_check() local
1861 backbone_gw = batadv_bla_get_backbone_gw(bat_priv, in batadv_bla_loopdetect_check()
1864 if (unlikely(!backbone_gw)) in batadv_bla_loopdetect_check()
1867 ret = queue_work(batadv_event_workqueue, &backbone_gw->report_work); in batadv_bla_loopdetect_check()
1873 batadv_backbone_gw_put(backbone_gw); in batadv_bla_loopdetect_check()
1897 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_rx() local
1966 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_rx()
1967 own_claim = batadv_compare_eth(backbone_gw->orig, in batadv_bla_rx()
1969 batadv_backbone_gw_put(backbone_gw); in batadv_bla_rx()
2034 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_tx() local
2066 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_tx()
2067 client_roamed = batadv_compare_eth(backbone_gw->orig, in batadv_bla_tx()
2069 batadv_backbone_gw_put(backbone_gw); in batadv_bla_tx()
2150 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_dump_entry()
2153 spin_lock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2154 backbone_crc = claim->backbone_gw->crc; in batadv_bla_claim_dump_entry()
2155 spin_unlock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2166 claim->backbone_gw->orig) || in batadv_bla_claim_dump_entry()
2300 struct batadv_bla_backbone_gw *backbone_gw) in batadv_bla_backbone_dump_entry() argument
2319 is_own = batadv_compare_eth(backbone_gw->orig, primary_addr); in batadv_bla_backbone_dump_entry()
2321 spin_lock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2322 backbone_crc = backbone_gw->crc; in batadv_bla_backbone_dump_entry()
2323 spin_unlock_bh(&backbone_gw->crc_lock); in batadv_bla_backbone_dump_entry()
2325 msecs = jiffies_to_msecs(jiffies - backbone_gw->lasttime); in batadv_bla_backbone_dump_entry()
2334 backbone_gw->orig) || in batadv_bla_backbone_dump_entry()
2335 nla_put_u16(msg, BATADV_ATTR_BLA_VID, backbone_gw->vid) || in batadv_bla_backbone_dump_entry()
2370 struct batadv_bla_backbone_gw *backbone_gw; in batadv_bla_backbone_dump_bucket() local
2377 hlist_for_each_entry(backbone_gw, &hash->table[bucket], hash_entry) { in batadv_bla_backbone_dump_bucket()
2382 primary_if, backbone_gw); in batadv_bla_backbone_dump_bucket()
2493 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_check_claim()