Lines Matching refs:mesh
16 #include "mesh.h"
56 cache = &sdata->u.mesh.tx_cache;
65 cache = &sdata->u.mesh.tx_cache;
107 * mesh_path_assign_nexthop - update mesh path next hop
109 * @mpath: mesh path to update
146 /* size of the fixed part of the mesh header */
155 /* we preserve the previous mesh header and only add
258 * mesh_path_lookup - look up a path in the mesh path table
262 * Returns: pointer to the mesh path structure, or NULL if not found
269 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata);
275 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata);
301 * mesh_path_lookup_by_idx - look up a path in the mesh path table by its index
305 * Returns: pointer to the mesh path structure, or NULL if not found.
312 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx);
327 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx);
331 * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
340 tbl = &mpath->sdata->u.mesh.mesh_paths;
349 mpath->sdata->u.mesh.num_gates++;
359 mpath->dst, mpath->sdata->u.mesh.num_gates);
367 * mesh_gate_del - remove a mesh gate from the list of known gates
380 mpath->sdata->u.mesh.num_gates--;
385 mpath->dst, mpath->sdata->u.mesh.num_gates);
394 return sdata->u.mesh.num_gates;
434 cache = &sdata->u.mesh.tx_cache;
479 cache = &sdata->u.mesh.tx_cache;
602 cache = &sdata->u.mesh.tx_cache;
616 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
620 cache = &sdata->u.mesh.tx_cache;
631 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
635 cache = &sdata->u.mesh.tx_cache;
646 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
649 cache = &sdata->u.mesh.tx_cache;
658 * mesh_path_add - allocate and add a new path to the mesh path table
679 if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0)
686 tbl = &sdata->u.mesh.mesh_paths;
704 sdata->u.mesh.mesh_paths_generation++;
728 tbl = &sdata->u.mesh.mpp_paths;
743 sdata->u.mesh.mpp_paths_generation++;
759 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
773 sdata->u.mesh.mshcfg.element_ttl,
791 atomic_dec(&sdata->u.mesh.mpaths);
801 if (tbl == &mpath->sdata->u.mesh.mpp_paths)
809 * mesh_path_flush_by_nexthop - Deletes mesh paths if their next hop matches
811 * @sta: mesh peer to match
813 * RCU notes: this function is called when a mesh plink transitions from
822 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths;
837 struct mesh_table *tbl = &sdata->u.mesh.mpp_paths;
862 * mesh_path_flush_by_iface - Deletes all mesh paths associated with a given iface
864 * This function deletes both mesh paths as well as mesh portal paths.
871 table_flush_by_iface(&sdata->u.mesh.mesh_paths);
872 table_flush_by_iface(&sdata->u.mesh.mpp_paths);
876 * table_path_del - delete a path from the mesh or mpp table
878 * @tbl: mesh or mpp path table
904 * mesh_path_del - delete a mesh path from the table
918 err = table_path_del(&sdata->u.mesh.mesh_paths, sdata, addr);
919 sdata->u.mesh.mesh_paths_generation++;
924 * mesh_path_tx_pending - sends pending frames in a mesh path queue
926 * @mpath: mesh path to activate
939 * mesh_path_send_to_gates - sends pending frames to all known mesh gates
941 * @mpath: mesh path whose queue will be emptied
956 tbl = &sdata->u.mesh.mesh_paths;
993 sdata->u.mesh.mshstats.dropped_frames_no_route++;
997 * mesh_path_flush_pending - free the pending queue of a mesh path
999 * @mpath: mesh path whose queue has to be freed
1012 * mesh_path_fix_nexthop - force a specific next hop for a mesh path
1014 * @mpath: the mesh path to modify
1031 ewma_mesh_fail_avg_init(&next_hop->mesh->fail_avg);
1033 ewma_mesh_fail_avg_add(&next_hop->mesh->fail_avg, 1);
1039 mesh_table_init(&sdata->u.mesh.mesh_paths);
1040 mesh_table_init(&sdata->u.mesh.mpp_paths);
1063 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mesh_paths);
1064 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mpp_paths);
1070 mesh_table_free(&sdata->u.mesh.mesh_paths);
1071 mesh_table_free(&sdata->u.mesh.mpp_paths);