Lines Matching defs:vmap
106 struct vrf_map vmap;
179 return &nn_vrf->vmap;
225 static struct vrf_map_elem *vrf_map_lookup_elem(struct vrf_map *vmap,
232 hash_for_each_possible(vmap->ht, me, hnode, key) {
240 static void vrf_map_add_elem(struct vrf_map *vmap, struct vrf_map_elem *me)
246 hash_add(vmap->ht, &me->hnode, key);
254 static void vrf_map_lock(struct vrf_map *vmap) __acquires(&vmap->vmap_lock)
256 spin_lock(&vmap->vmap_lock);
259 static void vrf_map_unlock(struct vrf_map *vmap) __releases(&vmap->vmap_lock)
261 spin_unlock(&vmap->vmap_lock);
268 struct vrf_map *vmap = netns_vrf_map_by_dev(dev);
285 vrf_map_lock(vmap);
287 me = vrf_map_lookup_elem(vmap, table_id);
290 vrf_map_add_elem(vmap, me);
298 if (vmap->strict_mode) {
308 ++vmap->shared_tables;
315 vrf_map_unlock(vmap);
327 struct vrf_map *vmap = netns_vrf_map_by_dev(dev);
333 vrf_map_lock(vmap);
335 me = vrf_map_lookup_elem(vmap, table_id);
343 --vmap->shared_tables;
352 vrf_map_unlock(vmap);
358 struct vrf_map *vmap = netns_vrf_map(net);
362 vrf_map_lock(vmap);
364 if (!vmap->strict_mode) {
369 me = vrf_map_lookup_elem(vmap, table_id);
378 vrf_map_unlock(vmap);
1809 static int vrf_map_init(struct vrf_map *vmap)
1811 spin_lock_init(&vmap->vmap_lock);
1812 hash_init(vmap->ht);
1814 vmap->strict_mode = false;
1820 static bool vrf_strict_mode(struct vrf_map *vmap)
1824 vrf_map_lock(vmap);
1825 strict_mode = vmap->strict_mode;
1826 vrf_map_unlock(vmap);
1831 static int vrf_strict_mode_change(struct vrf_map *vmap, bool new_mode)
1836 vrf_map_lock(vmap);
1838 cur_mode = &vmap->strict_mode;
1846 if (vmap->shared_tables) {
1861 vrf_map_unlock(vmap);
1870 struct vrf_map *vmap = netns_vrf_map(net);
1883 proc_strict_mode = vrf_strict_mode(vmap);
1888 ret = vrf_strict_mode_change(vmap, (bool)proc_strict_mode);
1952 vrf_map_init(&nn_vrf->vmap);