Lines Matching refs:mesh

16 #include "mesh.h"
71 * mesh_path_assign_nexthop - update mesh path next hop
73 * @mpath: mesh path to update
110 /* size of the fixed part of the mesh header */
119 /* we preserve the previous mesh header and only add
222 * mesh_path_lookup - look up a path in the mesh path table
226 * Returns: pointer to the mesh path structure, or NULL if not found
233 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata);
239 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata);
265 * mesh_path_lookup_by_idx - look up a path in the mesh path table by its index
269 * Returns: pointer to the mesh path structure, or NULL if not found.
276 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx);
291 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx);
295 * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
304 tbl = &mpath->sdata->u.mesh.mesh_paths;
313 mpath->sdata->u.mesh.num_gates++;
323 mpath->dst, mpath->sdata->u.mesh.num_gates);
331 * mesh_gate_del - remove a mesh gate from the list of known gates
344 mpath->sdata->u.mesh.num_gates--;
349 mpath->dst, mpath->sdata->u.mesh.num_gates);
358 return sdata->u.mesh.num_gates;
385 * mesh_path_add - allocate and add a new path to the mesh path table
406 if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0)
413 tbl = &sdata->u.mesh.mesh_paths;
431 sdata->u.mesh.mesh_paths_generation++;
455 tbl = &sdata->u.mesh.mpp_paths;
468 sdata->u.mesh.mpp_paths_generation++;
484 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
498 sdata->u.mesh.mshcfg.element_ttl,
516 atomic_dec(&sdata->u.mesh.mpaths);
530 * mesh_path_flush_by_nexthop - Deletes mesh paths if their next hop matches
532 * @sta: mesh peer to match
534 * RCU notes: this function is called when a mesh plink transitions from
543 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
558 struct mesh_table *tbl = &sdata->u.mesh.mpp_paths;
583 * mesh_path_flush_by_iface - Deletes all mesh paths associated with a given iface
585 * This function deletes both mesh paths as well as mesh portal paths.
592 table_flush_by_iface(&sdata->u.mesh.mesh_paths);
593 table_flush_by_iface(&sdata->u.mesh.mpp_paths);
597 * table_path_del - delete a path from the mesh or mpp table
599 * @tbl: mesh or mpp path table
625 * mesh_path_del - delete a mesh path from the table
639 err = table_path_del(&sdata->u.mesh.mesh_paths, sdata, addr);
640 sdata->u.mesh.mesh_paths_generation++;
645 * mesh_path_tx_pending - sends pending frames in a mesh path queue
647 * @mpath: mesh path to activate
660 * mesh_path_send_to_gates - sends pending frames to all known mesh gates
662 * @mpath: mesh path whose queue will be emptied
677 tbl = &sdata->u.mesh.mesh_paths;
714 sdata->u.mesh.mshstats.dropped_frames_no_route++;
718 * mesh_path_flush_pending - free the pending queue of a mesh path
720 * @mpath: mesh path whose queue has to be freed
727 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
746 * mesh_path_fix_nexthop - force a specific next hop for a mesh path
748 * @mpath: the mesh path to modify
764 ewma_mesh_fail_avg_init(&next_hop->mesh->fail_avg);
766 ewma_mesh_fail_avg_add(&next_hop->mesh->fail_avg, 1);
772 mesh_table_init(&sdata->u.mesh.mesh_paths);
773 mesh_table_init(&sdata->u.mesh.mpp_paths);
795 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mesh_paths);
796 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mpp_paths);
801 mesh_table_free(&sdata->u.mesh.mesh_paths);
802 mesh_table_free(&sdata->u.mesh.mpp_paths);