/linux/net/mac80211/ |
H A 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() 178 sta->mesh->plink_state != NL80211_PLINK_ESTAB) in mesh_set_ht_prot_mode() 208 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 …]
|
H A D | mesh_ps.c | 87 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mps_local_status_update() 100 switch (sta->mesh->plink_state) { in ieee80211_mps_local_status_update() 107 if (sta->mesh->local_pm == NL80211_MESH_POWER_LIGHT_SLEEP) in ieee80211_mps_local_status_update() 109 else if (sta->mesh->local_pm == NL80211_MESH_POWER_DEEP_SLEEP) in ieee80211_mps_local_status_update() 161 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm() 167 sta->mesh->local_pm = pm; in ieee80211_mps_set_sta_local_pm() 173 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_sta_local_pm() 205 sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_frame_flags() 206 pm = sta->mesh->local_pm; in ieee80211_mps_set_frame_flags() 208 pm = sdata->u.mesh.nonpeer_pm; in ieee80211_mps_set_frame_flags() [all …]
|
H A D | mesh_pathtbl.c | 57 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_deinit() 66 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_init() 270 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata); in mesh_path_lookup() 276 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata); in mpp_path_lookup() 313 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx); in mesh_path_lookup_by_idx() 328 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx); in mpp_path_lookup_by_idx() 343 tbl = &mpath->sdata->u.mesh.mesh_paths; in mesh_path_add_gate() 352 mpath->sdata->u.mesh.num_gates++; in mesh_path_add_gate() 362 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_path_add_gate() 383 mpath->sdata->u.mesh.num_gates--; in mesh_gate_del() [all …]
|
H A D | mesh_sync.c | 52 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_adjust_tsf() 88 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_offset_rx_bcn_presp() 130 sta->mesh->t_offset = t_t - t_r; in mesh_sync_offset_rx_bcn_presp() 133 s64 t_clockdrift = sta->mesh->t_offset_setpoint - sta->mesh->t_offset; in mesh_sync_offset_rx_bcn_presp() 136 sta->sta.addr, (long long) sta->mesh->t_offset, in mesh_sync_offset_rx_bcn_presp() 137 (long long) sta->mesh->t_offset_setpoint, in mesh_sync_offset_rx_bcn_presp() 155 sta->mesh->t_offset_setpoint = sta->mesh->t_offset - TOFFSET_SET_MARGIN; in mesh_sync_offset_rx_bcn_presp() 160 (long long) sta->mesh->t_offset); in mesh_sync_offset_rx_bcn_presp() 170 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_sync_offset_adjust_tsf()
|
H A 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() 65 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_matches_local() 154 if (free_plinks != sdata->u.mesh.accepting_plinks) { in mesh_accept_plinks_update() 155 sdata->u.mesh.accepting_plinks = free_plinks; in mesh_accept_plinks_update() 180 sdata->u.mesh.rmc = kmalloc(sizeof(struct mesh_rmc), GFP_KERNEL); in mesh_rmc_init() 181 if (!sdata->u.mesh.rmc) in mesh_rmc_init() 183 sdata->u.mesh.rmc->idx_mask = RMC_BUCKETS - 1; in mesh_rmc_init() 185 INIT_HLIST_HEAD(&sdata->u.mesh.rmc->bucket[i]); in mesh_rmc_init() 191 struct mesh_rmc *rmc = sdata->u.mesh.rmc; in mesh_rmc_free() [all …]
|
H A D | debugfs_netdev.c | 741 IEEE80211_IF_FILE(estab_plinks, u.mesh.estab_plinks, ATOMIC); 744 IEEE80211_IF_FILE(fwded_mcast, u.mesh.mshstats.fwded_mcast, DEC); 745 IEEE80211_IF_FILE(fwded_unicast, u.mesh.mshstats.fwded_unicast, DEC); 746 IEEE80211_IF_FILE(fwded_frames, u.mesh.mshstats.fwded_frames, DEC); 747 IEEE80211_IF_FILE(dropped_frames_ttl, u.mesh.mshstats.dropped_frames_ttl, DEC); 749 u.mesh.mshstats.dropped_frames_no_route, DEC); 753 u.mesh.mshcfg.dot11MeshMaxRetries, DEC); 755 u.mesh.mshcfg.dot11MeshRetryTimeout, DEC); 757 u.mesh.mshcfg.dot11MeshConfirmTimeout, DEC); 759 u.mesh.mshcfg.dot11MeshHoldingTimeout, DEC); [all …]
|
H A D | Kconfig | 71 bool "Enable mac80211 mesh networking support" 74 Select this option to enable 802.11 mesh operation in mac80211 75 drivers that support it. 802.11 mesh connects multiple stations 210 bool "Verbose mesh peer link debugging" 215 verbose mesh peer link debugging messages (when mac80211 216 is taking part in a mesh network). 223 bool "Verbose mesh path debugging" 228 verbose mesh path selection debugging messages (when mac80211 229 is taking part in a mesh network). 236 bool "Verbose mesh HWMP routing debugging" [all …]
|
H A 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) 242 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_path_error_tx() 310 ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, failed * 100); in ieee80211s_update_metric() 311 if (ewma_mesh_fail_avg_read(&sta->mesh->fail_avg) > in ieee80211s_update_metric() 321 ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, in ieee80211s_update_metric() [all …]
|
H A D | mesh.h | 385 atomic_inc(&sdata->u.mesh.estab_plinks); in mesh_plink_inc_estab_count() 392 atomic_dec(&sdata->u.mesh.estab_plinks); in mesh_plink_dec_estab_count() 398 return sdata->u.mesh.mshcfg.dot11MeshMaxPeerLinks - in mesh_plink_free_count() 399 atomic_read(&sdata->u.mesh.estab_plinks); in mesh_plink_free_count() 415 return sdata->u.mesh.mesh_pp_id == IEEE80211_PATH_PROTOCOL_HWMP; in mesh_path_sel_is_hwmp()
|
H A D | sta_info.c | 28 #include "mesh.h" 44 * particular, it may not start any mesh peer link management or add 148 ps = &sdata->u.mesh.ps; in __cleanup_single_sta() 442 kfree(sta->mesh); in sta_info_free() 570 sta->mesh = kzalloc(sizeof(*sta->mesh), gfp); in __sta_info_alloc() 571 if (!sta->mesh) in __sta_info_alloc() 573 sta->mesh->plink_sta = sta; in __sta_info_alloc() 574 spin_lock_init(&sta->mesh->plink_lock); in __sta_info_alloc() 575 if (!sdata->u.mesh in __sta_info_alloc() [all...] |
H A D | Makefile | 49 mesh.o \
|
H A D | cfg.c | 547 if (sdata->u.mesh.security != IEEE80211_MESH_SEC_NONE) in ieee80211_add_key() 1756 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) in sta_apply_mesh_params() 1758 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params() 1759 sta->mesh->aid = params->peer_aid; in sta_apply_mesh_params() 1763 sdata->u.mesh.mshcfg.power_mode); in sta_apply_mesh_params() 1765 ewma_mesh_tx_rate_avg_init(&sta->mesh->tx_rate_avg); in sta_apply_mesh_params() 1767 ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10); in sta_apply_mesh_params() 1776 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in sta_apply_mesh_params() 1778 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params() 2175 if (sdata->u.mesh.user_mpm) in ieee80211_change_station() [all …]
|
H A D | sta_info.h | 669 struct mesh_sta *mesh; member 739 return sta->mesh->plink_state; in sta_plink_state()
|
H A D | offchannel.c | 844 !sdata->u.mesh.mesh_id_len) in ieee80211_mgmt_tx() 989 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_mgmt_tx()
|
/linux/net/wireless/ |
H A D | mesh.c | 121 if (wdev->u.mesh.id_len) in __cfg80211_join_mesh() 135 setup->chandef = wdev->u.mesh.preset_chandef; in __cfg80211_join_mesh() 216 memcpy(wdev->u.mesh.id, setup->mesh_id, setup->mesh_id_len); in __cfg80211_join_mesh() 217 wdev->u.mesh.id_len = setup->mesh_id_len; in __cfg80211_join_mesh() 218 wdev->u.mesh.chandef = setup->chandef; in __cfg80211_join_mesh() 219 wdev->u.mesh.beacon_interval = setup->beacon_interval; in __cfg80211_join_mesh() 248 wdev->u.mesh.chandef = *chandef; in cfg80211_set_mesh_channel() 253 if (wdev->u.mesh.id_len) in cfg80211_set_mesh_channel() 256 wdev->u.mesh.preset_chandef = *chandef; in cfg80211_set_mesh_channel() 274 if (!wdev->u.mesh.id_len) in cfg80211_leave_mesh() [all …]
|
H A D | Makefile | 15 cfg80211-y += mlme.o ibss.o sme.o chan.o ethtool.o mesh.o ap.o trace.o ocb.o
|
H A D | chan.c | 945 if (wdev->u.mesh.id_len) in cfg80211_beaconing_iface_active() 985 return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan, in cfg80211_wdev_on_sub_chan() 1682 return &wdev->u.mesh.chandef; in wdev_chandef()
|
/linux/net/batman-adv/ |
H A 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
|
/linux/Documentation/networking/ |
H A D | batman-adv.rst | 56 There are additional settings for each batadv mesh interface, vlan and hardif 72 lower value. This will make the mesh more responsive to topology changes, but 83 To make use of your newly created mesh, batman advanced provides a new 117 When investigating problems with your mesh network, it is sometimes necessary to 151 batctl is available on https://www.open-mesh.org/ 162 b.a.t.m.a.n@lists.open-mesh.org (optional subscription at 163 https://lists.open-mesh.org/mailman3/postorius/lists/b.a.t.m.a.n.lists.open-mesh.org/)
|
/linux/drivers/scsi/ |
H A D | mesh.c | 145 volatile struct mesh_regs __iomem *mesh; member 223 tlp->bs0 = ms->mesh->bus_status0; in dlog() 224 tlp->bs1 = ms->mesh->bus_status1; in dlog() 305 volatile struct mesh_regs __iomem *mr = ms->mesh; in mesh_dump_regs() 351 volatile struct mesh_regs __iomem *mr = ms->mesh; in mesh_init() 398 volatile struct mesh_regs __iomem *mr = ms->mesh; in mesh_start_cmd() 612 out_8(&ms->mesh->sequence, SEQ_ENBRESEL); in mesh_done() 613 mesh_flush_io(ms->mesh); in mesh_done() 635 volatile struct mesh_regs __iomem *mr = ms->mesh; in set_sdtr() 676 volatile struct mesh_regs __iomem *mr = ms->mesh; in start_phase() [all …]
|
/linux/drivers/net/wireless/marvell/libertas/ |
H A D | Makefile | 11 libertas-$(CONFIG_LIBERTAS_MESH) += mesh.o
|
H A D | mesh.c | 112 ie->val.mesh_id_len = mesh_wdev->u.mesh.id_up_len; in lbs_mesh_config() 113 memcpy(ie->val.mesh_id, mesh_wdev->u.mesh.id, in lbs_mesh_config() 114 mesh_wdev->u.mesh.id_up_len); in lbs_mesh_config() 1004 sprintf(mesh_wdev->u.mesh.id, "mesh"); in lbs_add_mesh() 1005 mesh_wdev->u.mesh.id_up_len = 4; in lbs_add_mesh()
|
H A D | Kconfig | 36 bool "Enable mesh support"
|
/linux/Documentation/admin-guide/perf/ |
H A D | arm-cmn.rst | 5 CMN-600 is a configurable mesh interconnect consisting of a rectangular 22 each mesh counts its own events entirely independently, and additional
|
/linux/arch/arm/boot/dts/nxp/imx/ |
H A D | imx7d-flex-concentrator.dts | 66 label = "hmi-c:red:mesh-error"; 71 label = "hmi-c:green:mesh-activity";
|