Lines Matching full:mesh
17 #include "mesh.h"
57 cache = &sdata->u.mesh.tx_cache;
66 cache = &sdata->u.mesh.tx_cache;
108 * mesh_path_assign_nexthop - update mesh path next hop
110 * @mpath: mesh path to update
147 /* size of the fixed part of the mesh header */
156 /* we preserve the previous mesh header and only add
259 * mesh_path_lookup - look up a path in the mesh path table
263 * Returns: pointer to the mesh path structure, or NULL if not found
270 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata);
276 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata);
302 * mesh_path_lookup_by_idx - look up a path in the mesh path table by its index
306 * Returns: pointer to the mesh path structure, or NULL if not found.
313 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx);
328 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx);
332 * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
343 tbl = &mpath->sdata->u.mesh.mesh_paths;
352 mpath->sdata->u.mesh.num_gates++;
361 "Mesh path: Recorded new gate: %pM. %d known gates\n",
362 mpath->dst, mpath->sdata->u.mesh.num_gates);
370 * mesh_gate_del - remove a mesh gate from the list of known gates
383 mpath->sdata->u.mesh.num_gates--;
387 "Mesh path: Deleted gate: %pM. %d known gates\n",
388 mpath->dst, mpath->sdata->u.mesh.num_gates);
399 return sdata->u.mesh.num_gates;
440 cache = &sdata->u.mesh.tx_cache;
485 cache = &sdata->u.mesh.tx_cache;
610 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
627 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
641 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
655 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
672 * mesh_path_add - allocate and add a new path to the mesh path table
693 if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0)
700 tbl = &sdata->u.mesh.mesh_paths;
718 sdata->u.mesh.mesh_paths_generation++;
742 tbl = &sdata->u.mesh.mpp_paths;
757 sdata->u.mesh.mpp_paths_generation++;
773 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
787 sdata->u.mesh.mshcfg.element_ttl,
805 atomic_dec(&sdata->u.mesh.mpaths);
815 if (tbl == &mpath->sdata->u.mesh.mpp_paths)
823 * mesh_path_flush_by_nexthop - Deletes mesh paths if their next hop matches
825 * @sta: mesh peer to match
827 * RCU notes: this function is called when a mesh plink transitions from
836 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
851 struct mesh_table *tbl = &sdata->u.mesh.mpp_paths;
876 * mesh_path_flush_by_iface - Deletes all mesh paths associated with a given iface
880 * This function deletes both mesh paths as well as mesh portal paths.
884 table_flush_by_iface(&sdata->u.mesh.mesh_paths);
885 table_flush_by_iface(&sdata->u.mesh.mpp_paths);
889 * table_path_del - delete a path from the mesh or mpp table
891 * @tbl: mesh or mpp path table
917 * mesh_path_del - delete a mesh path from the table
931 err = table_path_del(&sdata->u.mesh.mesh_paths, sdata, addr);
932 sdata->u.mesh.mesh_paths_generation++;
937 * mesh_path_tx_pending - sends pending frames in a mesh path queue
939 * @mpath: mesh path to activate
952 * mesh_path_send_to_gates - sends pending frames to all known mesh gates
954 * @mpath: mesh path whose queue will be emptied
971 tbl = &sdata->u.mesh.mesh_paths;
1008 sdata->u.mesh.mshstats.dropped_frames_no_route++;
1012 * mesh_path_flush_pending - free the pending queue of a mesh path
1014 * @mpath: mesh path whose queue has to be freed
1021 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
1040 * mesh_path_fix_nexthop - force a specific next hop for a mesh path
1042 * @mpath: the mesh path to modify
1059 ewma_mesh_fail_avg_init(&next_hop->mesh->fail_avg);
1061 ewma_mesh_fail_avg_add(&next_hop->mesh->fail_avg, 1);
1067 mesh_table_init(&sdata->u.mesh.mesh_paths);
1068 mesh_table_init(&sdata->u.mesh.mpp_paths);
1091 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mesh_paths);
1092 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mpp_paths);
1098 mesh_table_free(&sdata->u.mesh.mesh_paths);
1099 mesh_table_free(&sdata->u.mesh.mpp_paths);