backbone_gw 57 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw); backbone_gw 150 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 152 net/batman-adv/bridge_loop_avoidance.c backbone_gw = container_of(ref, struct batadv_bla_backbone_gw, backbone_gw 155 net/batman-adv/bridge_loop_avoidance.c kfree_rcu(backbone_gw, rcu); backbone_gw 163 net/batman-adv/bridge_loop_avoidance.c static void batadv_backbone_gw_put(struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 165 net/batman-adv/bridge_loop_avoidance.c kref_put(&backbone_gw->refcount, batadv_backbone_gw_release); backbone_gw 181 net/batman-adv/bridge_loop_avoidance.c old_backbone_gw = claim->backbone_gw; backbone_gw 182 net/batman-adv/bridge_loop_avoidance.c claim->backbone_gw = NULL; backbone_gw 256 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw search_entry, *backbone_gw; backbone_gw 270 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { backbone_gw 271 net/batman-adv/bridge_loop_avoidance.c if (!batadv_compare_backbone_gw(&backbone_gw->hash_entry, backbone_gw 275 net/batman-adv/bridge_loop_avoidance.c if (!kref_get_unless_zero(&backbone_gw->refcount)) backbone_gw 278 net/batman-adv/bridge_loop_avoidance.c backbone_gw_tmp = backbone_gw; backbone_gw 291 net/batman-adv/bridge_loop_avoidance.c batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 300 net/batman-adv/bridge_loop_avoidance.c hash = backbone_gw->bat_priv->bla.claim_hash; backbone_gw 311 net/batman-adv/bridge_loop_avoidance.c if (claim->backbone_gw != backbone_gw) backbone_gw 321 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 322 net/batman-adv/bridge_loop_avoidance.c backbone_gw->crc = BATADV_BLA_CRC_INIT; backbone_gw 323 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 455 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 459 net/batman-adv/bridge_loop_avoidance.c backbone_gw = container_of(work, struct batadv_bla_backbone_gw, backbone_gw 461 net/batman-adv/bridge_loop_avoidance.c bat_priv = backbone_gw->bat_priv; backbone_gw 465 net/batman-adv/bridge_loop_avoidance.c batadv_print_vid(backbone_gw->vid)); backbone_gw 467 net/batman-adv/bridge_loop_avoidance.c batadv_print_vid(backbone_gw->vid)); backbone_gw 473 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 563 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 565 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_gw 568 net/batman-adv/bridge_loop_avoidance.c if (unlikely(!backbone_gw)) backbone_gw 571 net/batman-adv/bridge_loop_avoidance.c backbone_gw->lasttime = jiffies; backbone_gw 572 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 591 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 598 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_gw 601 net/batman-adv/bridge_loop_avoidance.c if (!backbone_gw) backbone_gw 611 net/batman-adv/bridge_loop_avoidance.c if (claim->backbone_gw != backbone_gw) backbone_gw 621 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_announce(bat_priv, backbone_gw); backbone_gw 622 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 633 net/batman-adv/bridge_loop_avoidance.c static void batadv_bla_send_request(struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 636 net/batman-adv/bridge_loop_avoidance.c batadv_bla_del_backbone_claims(backbone_gw); backbone_gw 638 net/batman-adv/bridge_loop_avoidance.c batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, backbone_gw 639 net/batman-adv/bridge_loop_avoidance.c "Sending REQUEST to %pM\n", backbone_gw->orig); backbone_gw 642 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_claim(backbone_gw->bat_priv, backbone_gw->orig, backbone_gw 643 net/batman-adv/bridge_loop_avoidance.c backbone_gw->vid, BATADV_CLAIM_TYPE_REQUEST); backbone_gw 646 net/batman-adv/bridge_loop_avoidance.c if (!atomic_read(&backbone_gw->request_sent)) { backbone_gw 647 net/batman-adv/bridge_loop_avoidance.c atomic_inc(&backbone_gw->bat_priv->bla.num_requests); backbone_gw 648 net/batman-adv/bridge_loop_avoidance.c atomic_set(&backbone_gw->request_sent, 1); backbone_gw 658 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 664 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 665 net/batman-adv/bridge_loop_avoidance.c crc = htons(backbone_gw->crc); backbone_gw 666 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 669 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_claim(bat_priv, mac, backbone_gw->vid, backbone_gw 682 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 704 net/batman-adv/bridge_loop_avoidance.c kref_get(&backbone_gw->refcount); backbone_gw 705 net/batman-adv/bridge_loop_avoidance.c claim->backbone_gw = backbone_gw; backbone_gw 725 net/batman-adv/bridge_loop_avoidance.c if (claim->backbone_gw == backbone_gw) backbone_gw 732 net/batman-adv/bridge_loop_avoidance.c backbone_gw->orig); backbone_gw 739 net/batman-adv/bridge_loop_avoidance.c old_backbone_gw = claim->backbone_gw; backbone_gw 740 net/batman-adv/bridge_loop_avoidance.c kref_get(&backbone_gw->refcount); backbone_gw 741 net/batman-adv/bridge_loop_avoidance.c claim->backbone_gw = backbone_gw; backbone_gw 754 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 755 net/batman-adv/bridge_loop_avoidance.c backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); backbone_gw 756 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 757 net/batman-adv/bridge_loop_avoidance.c backbone_gw->lasttime = jiffies; backbone_gw 773 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 776 net/batman-adv/bridge_loop_avoidance.c backbone_gw = claim->backbone_gw; backbone_gw 777 net/batman-adv/bridge_loop_avoidance.c kref_get(&backbone_gw->refcount); backbone_gw 780 net/batman-adv/bridge_loop_avoidance.c return backbone_gw; backbone_gw 833 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 839 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, backbone_gw 842 net/batman-adv/bridge_loop_avoidance.c if (unlikely(!backbone_gw)) backbone_gw 846 net/batman-adv/bridge_loop_avoidance.c backbone_gw->lasttime = jiffies; backbone_gw 851 net/batman-adv/bridge_loop_avoidance.c __func__, batadv_print_vid(vid), backbone_gw->orig, crc); backbone_gw 853 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 854 net/batman-adv/bridge_loop_avoidance.c backbone_crc = backbone_gw->crc; backbone_gw 855 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 858 net/batman-adv/bridge_loop_avoidance.c batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, backbone_gw 860 net/batman-adv/bridge_loop_avoidance.c __func__, backbone_gw->orig, backbone_gw 861 net/batman-adv/bridge_loop_avoidance.c batadv_print_vid(backbone_gw->vid), backbone_gw 864 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_request(backbone_gw); backbone_gw 869 net/batman-adv/bridge_loop_avoidance.c if (atomic_read(&backbone_gw->request_sent)) { backbone_gw 870 net/batman-adv/bridge_loop_avoidance.c atomic_dec(&backbone_gw->bat_priv->bla.num_requests); backbone_gw 871 net/batman-adv/bridge_loop_avoidance.c atomic_set(&backbone_gw->request_sent, 0); backbone_gw 875 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 927 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 935 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_addr, vid); backbone_gw 937 net/batman-adv/bridge_loop_avoidance.c if (!backbone_gw) backbone_gw 943 net/batman-adv/bridge_loop_avoidance.c claim_addr, batadv_print_vid(vid), backbone_gw->orig); backbone_gw 946 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 965 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 969 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_addr, vid, backbone_gw 972 net/batman-adv/bridge_loop_avoidance.c if (unlikely(!backbone_gw)) backbone_gw 976 net/batman-adv/bridge_loop_avoidance.c batadv_bla_add_claim(bat_priv, claim_addr, vid, backbone_gw); backbone_gw 983 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1215 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1231 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_safe(backbone_gw, node_tmp, backbone_gw 1235 net/batman-adv/bridge_loop_avoidance.c if (!batadv_has_timed_out(backbone_gw->lasttime, backbone_gw 1239 net/batman-adv/bridge_loop_avoidance.c batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, backbone_gw 1241 net/batman-adv/bridge_loop_avoidance.c __func__, backbone_gw->orig); backbone_gw 1245 net/batman-adv/bridge_loop_avoidance.c if (atomic_read(&backbone_gw->request_sent)) backbone_gw 1248 net/batman-adv/bridge_loop_avoidance.c batadv_bla_del_backbone_claims(backbone_gw); backbone_gw 1250 net/batman-adv/bridge_loop_avoidance.c hlist_del_rcu(&backbone_gw->hash_entry); backbone_gw 1251 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1270 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1285 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_claim_get_backbone_gw(claim); backbone_gw 1289 net/batman-adv/bridge_loop_avoidance.c if (!batadv_compare_eth(backbone_gw->orig, backbone_gw 1306 net/batman-adv/bridge_loop_avoidance.c backbone_gw->orig, backbone_gw 1309 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1326 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1354 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { backbone_gw 1356 net/batman-adv/bridge_loop_avoidance.c if (!batadv_compare_eth(backbone_gw->orig, backbone_gw 1360 net/batman-adv/bridge_loop_avoidance.c ether_addr_copy(backbone_gw->orig, backbone_gw 1365 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_announce(bat_priv, backbone_gw); backbone_gw 1383 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 1386 net/batman-adv/bridge_loop_avoidance.c backbone_gw->vid); backbone_gw 1388 net/batman-adv/bridge_loop_avoidance.c backbone_gw->vid, BATADV_CLAIM_TYPE_LOOPDETECT); backbone_gw 1425 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1468 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { backbone_gw 1469 net/batman-adv/bridge_loop_avoidance.c if (!batadv_compare_eth(backbone_gw->orig, backbone_gw 1473 net/batman-adv/bridge_loop_avoidance.c backbone_gw->lasttime = jiffies; backbone_gw 1475 net/batman-adv/bridge_loop_avoidance.c batadv_bla_send_announce(bat_priv, backbone_gw); backbone_gw 1478 net/batman-adv/bridge_loop_avoidance.c backbone_gw); backbone_gw 1489 net/batman-adv/bridge_loop_avoidance.c if (atomic_read(&backbone_gw->request_sent) == 0) backbone_gw 1492 net/batman-adv/bridge_loop_avoidance.c if (!atomic_dec_and_test(&backbone_gw->wait_periods)) backbone_gw 1495 net/batman-adv/bridge_loop_avoidance.c atomic_dec(&backbone_gw->bat_priv->bla.num_requests); backbone_gw 1496 net/batman-adv/bridge_loop_avoidance.c atomic_set(&backbone_gw->request_sent, 0); backbone_gw 1665 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1678 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { backbone_gw 1679 net/batman-adv/bridge_loop_avoidance.c if (batadv_compare_eth(backbone_gw->orig, orig) && backbone_gw 1680 net/batman-adv/bridge_loop_avoidance.c backbone_gw->vid == vid) { backbone_gw 1703 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1716 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv, backbone_gw 1718 net/batman-adv/bridge_loop_avoidance.c if (!backbone_gw) backbone_gw 1721 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1770 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1790 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_get_backbone_gw(bat_priv, backbone_gw 1793 net/batman-adv/bridge_loop_avoidance.c if (unlikely(!backbone_gw)) backbone_gw 1796 net/batman-adv/bridge_loop_avoidance.c ret = queue_work(batadv_event_workqueue, &backbone_gw->report_work); backbone_gw 1802 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1826 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1872 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_claim_get_backbone_gw(claim); backbone_gw 1873 net/batman-adv/bridge_loop_avoidance.c own_claim = batadv_compare_eth(backbone_gw->orig, backbone_gw 1875 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 1941 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 1973 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_claim_get_backbone_gw(claim); backbone_gw 1974 net/batman-adv/bridge_loop_avoidance.c client_roamed = batadv_compare_eth(backbone_gw->orig, backbone_gw 1976 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 2039 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 2064 net/batman-adv/bridge_loop_avoidance.c backbone_gw = batadv_bla_claim_get_backbone_gw(claim); backbone_gw 2066 net/batman-adv/bridge_loop_avoidance.c is_own = batadv_compare_eth(backbone_gw->orig, backbone_gw 2069 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 2070 net/batman-adv/bridge_loop_avoidance.c backbone_crc = backbone_gw->crc; backbone_gw 2071 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 2074 net/batman-adv/bridge_loop_avoidance.c backbone_gw->orig, backbone_gw 2078 net/batman-adv/bridge_loop_avoidance.c batadv_backbone_gw_put(backbone_gw); backbone_gw 2122 net/batman-adv/bridge_loop_avoidance.c is_own = batadv_compare_eth(claim->backbone_gw->orig, backbone_gw 2125 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&claim->backbone_gw->crc_lock); backbone_gw 2126 net/batman-adv/bridge_loop_avoidance.c backbone_crc = claim->backbone_gw->crc; backbone_gw 2127 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&claim->backbone_gw->crc_lock); backbone_gw 2138 net/batman-adv/bridge_loop_avoidance.c claim->backbone_gw->orig) || backbone_gw 2273 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 2296 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) { backbone_gw 2298 net/batman-adv/bridge_loop_avoidance.c backbone_gw->lasttime); backbone_gw 2302 net/batman-adv/bridge_loop_avoidance.c is_own = batadv_compare_eth(backbone_gw->orig, backbone_gw 2307 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 2308 net/batman-adv/bridge_loop_avoidance.c backbone_crc = backbone_gw->crc; backbone_gw 2309 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 2312 net/batman-adv/bridge_loop_avoidance.c backbone_gw->orig, backbone_gw 2313 net/batman-adv/bridge_loop_avoidance.c batadv_print_vid(backbone_gw->vid), secs, backbone_gw 2340 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw) backbone_gw 2359 net/batman-adv/bridge_loop_avoidance.c is_own = batadv_compare_eth(backbone_gw->orig, primary_addr); backbone_gw 2361 net/batman-adv/bridge_loop_avoidance.c spin_lock_bh(&backbone_gw->crc_lock); backbone_gw 2362 net/batman-adv/bridge_loop_avoidance.c backbone_crc = backbone_gw->crc; backbone_gw 2363 net/batman-adv/bridge_loop_avoidance.c spin_unlock_bh(&backbone_gw->crc_lock); backbone_gw 2365 net/batman-adv/bridge_loop_avoidance.c msecs = jiffies_to_msecs(jiffies - backbone_gw->lasttime); backbone_gw 2374 net/batman-adv/bridge_loop_avoidance.c backbone_gw->orig) || backbone_gw 2375 net/batman-adv/bridge_loop_avoidance.c nla_put_u16(msg, BATADV_ATTR_BLA_VID, backbone_gw->vid) || backbone_gw 2410 net/batman-adv/bridge_loop_avoidance.c struct batadv_bla_backbone_gw *backbone_gw; backbone_gw 2417 net/batman-adv/bridge_loop_avoidance.c hlist_for_each_entry(backbone_gw, &hash->table[bucket], hash_entry) { backbone_gw 2422 net/batman-adv/bridge_loop_avoidance.c primary_if, backbone_gw); backbone_gw 2535 net/batman-adv/bridge_loop_avoidance.c if (!batadv_compare_eth(claim->backbone_gw->orig, backbone_gw 1872 net/batman-adv/types.h struct batadv_bla_backbone_gw *backbone_gw;