Lines Matching refs:cache

112 			   struct sk_buff *skb, struct mfc6_cache *cache);
346 struct list_head *cache; member
359 it->cache = &mrt->mfc6_cache_array[it->ct]; in ipmr_mfc_seq_idx()
360 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
367 it->cache = &mrt->mfc6_unres_queue; in ipmr_mfc_seq_idx()
368 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
373 it->cache = NULL; in ipmr_mfc_seq_idx()
514 if (mfc->list.next != it->cache) in ipmr_mfc_seq_next()
517 if (it->cache == &mrt->mfc6_unres_queue) in ipmr_mfc_seq_next()
520 BUG_ON(it->cache != &mrt->mfc6_cache_array[it->ct]); in ipmr_mfc_seq_next()
523 it->cache = &mrt->mfc6_cache_array[it->ct]; in ipmr_mfc_seq_next()
524 if (list_empty(it->cache)) in ipmr_mfc_seq_next()
526 return list_first_entry(it->cache, struct mfc6_cache, list); in ipmr_mfc_seq_next()
531 it->cache = &mrt->mfc6_unres_queue; in ipmr_mfc_seq_next()
535 if (!list_empty(it->cache)) in ipmr_mfc_seq_next()
536 return list_first_entry(it->cache, struct mfc6_cache, list); in ipmr_mfc_seq_next()
540 it->cache = NULL; in ipmr_mfc_seq_next()
550 if (it->cache == &mrt->mfc6_unres_queue) in ipmr_mfc_seq_stop()
552 else if (it->cache == &mrt->mfc6_cache_array[it->ct]) in ipmr_mfc_seq_stop()
574 if (it->cache != &mrt->mfc6_unres_queue) { in ipmr_mfc_seq_show()
905 static void ip6mr_update_thresholds(struct mr6_table *mrt, struct mfc6_cache *cache, in ip6mr_update_thresholds() argument
910 cache->mfc_un.res.minvif = MAXMIFS; in ip6mr_update_thresholds()
911 cache->mfc_un.res.maxvif = 0; in ip6mr_update_thresholds()
912 memset(cache->mfc_un.res.ttls, 255, MAXMIFS); in ip6mr_update_thresholds()
917 cache->mfc_un.res.ttls[vifi] = ttls[vifi]; in ip6mr_update_thresholds()
918 if (cache->mfc_un.res.minvif > vifi) in ip6mr_update_thresholds()
919 cache->mfc_un.res.minvif = vifi; in ip6mr_update_thresholds()
920 if (cache->mfc_un.res.maxvif <= vifi) in ip6mr_update_thresholds()
921 cache->mfc_un.res.maxvif = vifi + 1; in ip6mr_update_thresholds()
2084 struct sk_buff *skb, struct mfc6_cache *cache) in ip6_mr_forward() argument
2090 vif = cache->mf6c_parent; in ip6_mr_forward()
2091 cache->mfc_un.res.pkt++; in ip6_mr_forward()
2092 cache->mfc_un.res.bytes += skb->len; in ip6_mr_forward()
2094 if (ipv6_addr_any(&cache->mf6c_origin) && true_vifi >= 0) { in ip6_mr_forward()
2110 cache->mfc_un.res.wrong_if++; in ip6_mr_forward()
2119 cache->mfc_un.res.ttls[true_vifi] < 255) && in ip6_mr_forward()
2121 cache->mfc_un.res.last_assert + MFC_ASSERT_THRESH)) { in ip6_mr_forward()
2122 cache->mfc_un.res.last_assert = jiffies; in ip6_mr_forward()
2135 if (ipv6_addr_any(&cache->mf6c_origin) && in ip6_mr_forward()
2136 ipv6_addr_any(&cache->mf6c_mcastgrp)) { in ip6_mr_forward()
2138 true_vifi != cache->mf6c_parent && in ip6_mr_forward()
2140 cache->mfc_un.res.ttls[cache->mf6c_parent]) { in ip6_mr_forward()
2145 psend = cache->mf6c_parent; in ip6_mr_forward()
2150 for (ct = cache->mfc_un.res.maxvif - 1; ct >= cache->mfc_un.res.minvif; ct--) { in ip6_mr_forward()
2152 if ((!ipv6_addr_any(&cache->mf6c_origin) || ct != true_vifi) && in ip6_mr_forward()
2153 ipv6_hdr(skb)->hop_limit > cache->mfc_un.res.ttls[ct]) { in ip6_mr_forward()
2157 ip6mr_forward2(net, mrt, skb2, cache, psend); in ip6_mr_forward()
2164 ip6mr_forward2(net, mrt, skb, cache, psend); in ip6_mr_forward()
2179 struct mfc6_cache *cache; in ip6_mr_input() local
2195 cache = ip6mr_cache_find(mrt, in ip6_mr_input()
2197 if (!cache) { in ip6_mr_input()
2201 cache = ip6mr_cache_find_any(mrt, in ip6_mr_input()
2209 if (!cache) { in ip6_mr_input()
2224 ip6_mr_forward(net, mrt, skb, cache); in ip6_mr_input()
2283 struct mfc6_cache *cache; in ip6mr_get_route() local
2291 cache = ip6mr_cache_find(mrt, &rt->rt6i_src.addr, &rt->rt6i_dst.addr); in ip6mr_get_route()
2292 if (!cache && skb->dev) { in ip6mr_get_route()
2296 cache = ip6mr_cache_find_any(mrt, &rt->rt6i_dst.addr, in ip6mr_get_route()
2300 if (!cache) { in ip6mr_get_route()
2348 cache->mfc_flags |= MFC_NOTIFY; in ip6mr_get_route()
2350 err = __ip6mr_fill_mroute(mrt, skb, cache, rtm); in ip6mr_get_route()