/net/mac80211/ |
D | mesh_plink.c | 20 #define mod_plink_timer(s, t) (mod_timer(&s->mesh->plink_timer, \ 61 s32 rssi_threshold = sdata->u.mesh.mshcfg.rssi_threshold; in rssi_threshold_check() 77 lockdep_assert_held(&sta->mesh->plink_lock); in mesh_plink_fsm_restart() 78 sta->mesh->plink_state = NL80211_PLINK_LISTEN; in mesh_plink_fsm_restart() 79 sta->mesh->llid = sta->mesh->plid = sta->mesh->reason = 0; in mesh_plink_fsm_restart() 80 sta->mesh->plink_retries = 0; in mesh_plink_fsm_restart() 125 sta->mesh->plink_state != NL80211_PLINK_ESTAB) in mesh_set_short_slot_time() 176 sta->mesh->plink_state != NL80211_PLINK_ESTAB) in mesh_set_ht_prot_mode() 206 sdata->u.mesh.mshcfg.ht_opmode = ht_opmode; in mesh_set_ht_prot_mode() 237 2 + sdata->u.mesh.mesh_id_len + in mesh_plink_frame_tx() [all …]
|
D | mesh_ps.c | 83 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mps_local_status_update() 96 switch (sta->mesh->plink_state) { in ieee80211_mps_local_status_update() 103 if (sta->mesh->local_pm == NL80211_MESH_POWER_LIGHT_SLEEP) in ieee80211_mps_local_status_update() 105 else if (sta->mesh->local_pm == NL80211_MESH_POWER_DEEP_SLEEP) in ieee80211_mps_local_status_update() 157 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm() 163 sta->mesh->local_pm = pm; in ieee80211_mps_set_sta_local_pm() 169 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_sta_local_pm() 201 sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_frame_flags() 202 pm = sta->mesh->local_pm; in ieee80211_mps_set_frame_flags() 204 pm = sdata->u.mesh.nonpeer_pm; in ieee80211_mps_set_frame_flags() [all …]
|
D | mesh_pathtbl.c | 56 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_deinit() 65 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_init() 269 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata); in mesh_path_lookup() 275 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata); in mpp_path_lookup() 312 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx); in mesh_path_lookup_by_idx() 327 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx); in mpp_path_lookup_by_idx() 340 tbl = &mpath->sdata->u.mesh.mesh_paths; in mesh_path_add_gate() 349 mpath->sdata->u.mesh.num_gates++; in mesh_path_add_gate() 359 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_path_add_gate() 380 mpath->sdata->u.mesh.num_gates--; in mesh_gate_del() [all …]
|
D | mesh_sync.c | 50 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_adjust_tsf() 86 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_offset_rx_bcn_presp() 128 sta->mesh->t_offset = t_t - t_r; in mesh_sync_offset_rx_bcn_presp() 131 s64 t_clockdrift = sta->mesh->t_offset_setpoint - sta->mesh->t_offset; in mesh_sync_offset_rx_bcn_presp() 134 sta->sta.addr, (long long) sta->mesh->t_offset, in mesh_sync_offset_rx_bcn_presp() 135 (long long) sta->mesh->t_offset_setpoint, in mesh_sync_offset_rx_bcn_presp() 153 sta->mesh->t_offset_setpoint = sta->mesh->t_offset - TOFFSET_SET_MARGIN; in mesh_sync_offset_rx_bcn_presp() 158 (long long) sta->mesh->t_offset); in mesh_sync_offset_rx_bcn_presp() 168 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_offset_adjust_tsf()
|
D | debugfs_netdev.c | 629 IEEE80211_IF_FILE(estab_plinks, u.mesh.estab_plinks, ATOMIC); 632 IEEE80211_IF_FILE(fwded_mcast, u.mesh.mshstats.fwded_mcast, DEC); 633 IEEE80211_IF_FILE(fwded_unicast, u.mesh.mshstats.fwded_unicast, DEC); 634 IEEE80211_IF_FILE(fwded_frames, u.mesh.mshstats.fwded_frames, DEC); 635 IEEE80211_IF_FILE(dropped_frames_ttl, u.mesh.mshstats.dropped_frames_ttl, DEC); 637 u.mesh.mshstats.dropped_frames_no_route, DEC); 641 u.mesh.mshcfg.dot11MeshMaxRetries, DEC); 643 u.mesh.mshcfg.dot11MeshRetryTimeout, DEC); 645 u.mesh.mshcfg.dot11MeshConfirmTimeout, DEC); 647 u.mesh.mshcfg.dot11MeshHoldingTimeout, DEC); [all …]
|
D | mesh.c | 42 from_timer(sdata, t, u.mesh.housekeeping_timer); in ieee80211_mesh_housekeeping_timer() 44 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mesh_housekeeping_timer() 63 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_matches_local() 149 if (free_plinks != sdata->u.mesh.accepting_plinks) { in mesh_accept_plinks_update() 150 sdata->u.mesh.accepting_plinks = free_plinks; in mesh_accept_plinks_update() 175 sdata->u.mesh.rmc = kmalloc(sizeof(struct mesh_rmc), GFP_KERNEL); in mesh_rmc_init() 176 if (!sdata->u.mesh.rmc) in mesh_rmc_init() 178 sdata->u.mesh.rmc->idx_mask = RMC_BUCKETS - 1; in mesh_rmc_init() 180 INIT_HLIST_HEAD(&sdata->u.mesh.rmc->bucket[i]); in mesh_rmc_init() 186 struct mesh_rmc *rmc = sdata->u.mesh.rmc; in mesh_rmc_free() [all …]
|
D | Kconfig | 61 bool "Enable mac80211 mesh networking support" 64 Select this option to enable 802.11 mesh operation in mac80211 65 drivers that support it. 802.11 mesh connects multiple stations 200 bool "Verbose mesh peer link debugging" 205 verbose mesh peer link debugging messages (when mac80211 206 is taking part in a mesh network). 213 bool "Verbose mesh path debugging" 218 verbose mesh path selection debugging messages (when mac80211 219 is taking part in a mesh network). 226 bool "Verbose mesh HWMP routing debugging" [all …]
|
D | mesh_hwmp.c | 80 msecs_to_jiffies(s->u.mesh.mshcfg.dot11MeshHWMPnetDiameterTraversalTime) 82 MSEC_TO_TU(s->u.mesh.mshcfg.dot11MeshHWMPactivePathTimeout) 84 (msecs_to_jiffies(s->u.mesh.mshcfg.dot11MeshHWMPpreqMinInterval)) 85 #define max_preq_retries(s) (s->u.mesh.mshcfg.dot11MeshHWMPmaxPREQretries) 87 msecs_to_jiffies(sdata->u.mesh.mshcfg.min_discovery_timeout) 89 msecs_to_jiffies(sdata->u.mesh.mshcfg.dot11MeshHWMPconfirmationInterval) 240 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_path_error_tx() 308 ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, failed * 100); in ieee80211s_update_metric() 309 if (ewma_mesh_fail_avg_read(&sta->mesh->fail_avg) > in ieee80211s_update_metric() 319 ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, in ieee80211s_update_metric() [all …]
|
D | mesh.h | 384 atomic_inc(&sdata->u.mesh.estab_plinks); in mesh_plink_inc_estab_count() 391 atomic_dec(&sdata->u.mesh.estab_plinks); in mesh_plink_dec_estab_count() 397 return sdata->u.mesh.mshcfg.dot11MeshMaxPeerLinks - in mesh_plink_free_count() 398 atomic_read(&sdata->u.mesh.estab_plinks); in mesh_plink_free_count() 414 return sdata->u.mesh.mesh_pp_id == IEEE80211_PATH_PROTOCOL_HWMP; in mesh_path_sel_is_hwmp()
|
D | sta_info.c | 132 ps = &sdata->u.mesh.ps; in __cleanup_single_sta() 436 kfree(sta->mesh); in sta_info_free() 566 sta->mesh = kzalloc(sizeof(*sta->mesh), gfp); in __sta_info_alloc() 567 if (!sta->mesh) in __sta_info_alloc() 569 sta->mesh->plink_sta = sta; in __sta_info_alloc() 570 spin_lock_init(&sta->mesh->plink_lock); in __sta_info_alloc() 571 if (!sdata->u.mesh.user_mpm) in __sta_info_alloc() 572 timer_setup(&sta->mesh->plink_timer, mesh_plink_timer, in __sta_info_alloc() 574 sta->mesh->nonpeer_pm = NL80211_MESH_POWER_ACTIVE; in __sta_info_alloc() 698 kfree(sta->mesh); in __sta_info_alloc() [all …]
|
D | Makefile | 49 mesh.o \
|
D | cfg.c | 550 if (sdata->u.mesh.security != IEEE80211_MESH_SEC_NONE) in ieee80211_add_key() 1740 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) in sta_apply_mesh_params() 1742 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params() 1743 sta->mesh->aid = params->peer_aid; in sta_apply_mesh_params() 1747 sdata->u.mesh.mshcfg.power_mode); in sta_apply_mesh_params() 1749 ewma_mesh_tx_rate_avg_init(&sta->mesh->tx_rate_avg); in sta_apply_mesh_params() 1751 ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10); in sta_apply_mesh_params() 1760 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in sta_apply_mesh_params() 1762 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params() 2141 if (sdata->u.mesh.user_mpm) in ieee80211_change_station() [all …]
|
D | sta_info.h | 674 struct mesh_sta *mesh; member 738 return sta->mesh->plink_state; in sta_plink_state()
|
D | offchannel.c | 798 !sdata->u.mesh.mesh_id_len) in ieee80211_mgmt_tx() 932 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_mgmt_tx()
|
D | tx.c | 360 ps = &sdata->u.mesh.ps; in purge_old_ps_buffers() 417 ps = &tx->sdata->u.mesh.ps; in ieee80211_tx_h_multicast_ps_buf() 5037 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_update_cntdwn() 5062 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_set_cntdwn() 5103 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_beacon_cntdwn_is_complete() 5447 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in __ieee80211_beacon_get() 5878 ps = &sdata->u.mesh.ps; in ieee80211_get_buffered_bc()
|
D | util.c | 4560 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_send_action_csa() 4565 *pos++ = sdata->u.mesh.mshcfg.dot11MeshTTL; /* Mesh TTL */ in ieee80211_send_action_csa() 4754 ps = &sdata->u.mesh.ps; in ieee80211_recalc_dtim()
|
D | rx.c | 2728 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_rx_mesh_fast_forward() 2794 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_rx_mesh_data() 3720 if (sdata->u.mesh.user_mpm) in ieee80211_rx_h_action()
|
/net/wireless/ |
D | mesh.c | 121 if (wdev->u.mesh.id_len) in __cfg80211_join_mesh() 132 setup->chandef = wdev->u.mesh.preset_chandef; in __cfg80211_join_mesh() 213 memcpy(wdev->u.mesh.id, setup->mesh_id, setup->mesh_id_len); in __cfg80211_join_mesh() 214 wdev->u.mesh.id_len = setup->mesh_id_len; in __cfg80211_join_mesh() 215 wdev->u.mesh.chandef = setup->chandef; in __cfg80211_join_mesh() 216 wdev->u.mesh.beacon_interval = setup->beacon_interval; in __cfg80211_join_mesh() 245 wdev->u.mesh.chandef = *chandef; in cfg80211_set_mesh_channel() 250 if (wdev->u.mesh.id_len) in cfg80211_set_mesh_channel() 253 wdev->u.mesh.preset_chandef = *chandef; in cfg80211_set_mesh_channel() 271 if (!wdev->u.mesh.id_len) in __cfg80211_leave_mesh() [all …]
|
D | Makefile | 14 cfg80211-y += mlme.o ibss.o sme.o chan.o ethtool.o mesh.o ap.o trace.o ocb.o
|
D | chan.c | 807 if (wdev->u.mesh.id_len) in cfg80211_beaconing_iface_active() 847 return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan, in cfg80211_wdev_on_sub_chan() 1530 return &wdev->u.mesh.chandef; in wdev_chandef()
|
D | core.c | 1556 setup.mesh_id = wdev->u.mesh.id; in cfg80211_netdev_notifier_call() 1557 setup.mesh_id_len = wdev->u.mesh.id_up_len; in cfg80211_netdev_notifier_call() 1558 if (wdev->u.mesh.id_up_len) in cfg80211_netdev_notifier_call()
|
D | reg.c | 2391 if (!wdev->u.mesh.beacon_interval) in reg_wdev_chan_valid() 2393 chandef = wdev->u.mesh.chandef; in reg_wdev_chan_valid()
|
D | nl80211.c | 4247 wdev->u.mesh.id_up_len = in nl80211_set_interface() 4249 memcpy(wdev->u.mesh.id, in nl80211_set_interface() 4251 wdev->u.mesh.id_up_len); in nl80211_set_interface() 4356 wdev->u.mesh.id_up_len = in _nl80211_new_interface() 4358 memcpy(wdev->u.mesh.id, in _nl80211_new_interface() 4360 wdev->u.mesh.id_up_len); in _nl80211_new_interface() 8182 if (!wdev->u.mesh.id_len) in nl80211_get_mesh_config() 8563 if (!wdev->u.mesh.id_len) in nl80211_update_mesh_config() 10174 if (!wdev->u.mesh.id_len) in nl80211_channel_switch() 19554 wdev->u.mesh.chandef = *chandef; in cfg80211_ch_switch_notify() [all …]
|
D | util.c | 2142 return wdev->u.mesh.beacon_interval; in cfg80211_wdev_bi()
|
/net/batman-adv/ |
D | Kconfig | 15 a routing protocol for multi-hop ad-hoc mesh networks. The 17 https://www.open-mesh.org/ for more information and user space 41 to avoid Ethernet frames looping when mesh nodes are connected 42 to both the same LAN and the same mesh. If you will never use 43 more than one mesh node in the same LAN, you can safely remove 53 mesh networks. If you think that your network does not need
|