Lines Matching refs:cache

112 			   struct sk_buff *skb, struct mfc6_cache *cache);
347 struct list_head *cache; member
360 it->cache = &mrt->mfc6_cache_array[it->ct]; in ipmr_mfc_seq_idx()
361 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
368 it->cache = &mrt->mfc6_unres_queue; in ipmr_mfc_seq_idx()
369 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
374 it->cache = NULL; in ipmr_mfc_seq_idx()
515 if (mfc->list.next != it->cache) in ipmr_mfc_seq_next()
518 if (it->cache == &mrt->mfc6_unres_queue) in ipmr_mfc_seq_next()
521 BUG_ON(it->cache != &mrt->mfc6_cache_array[it->ct]); in ipmr_mfc_seq_next()
524 it->cache = &mrt->mfc6_cache_array[it->ct]; in ipmr_mfc_seq_next()
525 if (list_empty(it->cache)) in ipmr_mfc_seq_next()
527 return list_first_entry(it->cache, struct mfc6_cache, list); in ipmr_mfc_seq_next()
532 it->cache = &mrt->mfc6_unres_queue; in ipmr_mfc_seq_next()
536 if (!list_empty(it->cache)) in ipmr_mfc_seq_next()
537 return list_first_entry(it->cache, struct mfc6_cache, list); in ipmr_mfc_seq_next()
541 it->cache = NULL; in ipmr_mfc_seq_next()
551 if (it->cache == &mrt->mfc6_unres_queue) in ipmr_mfc_seq_stop()
553 else if (it->cache == &mrt->mfc6_cache_array[it->ct]) in ipmr_mfc_seq_stop()
575 if (it->cache != &mrt->mfc6_unres_queue) { in ipmr_mfc_seq_show()
910 static void ip6mr_update_thresholds(struct mr6_table *mrt, struct mfc6_cache *cache, in ip6mr_update_thresholds() argument
915 cache->mfc_un.res.minvif = MAXMIFS; in ip6mr_update_thresholds()
916 cache->mfc_un.res.maxvif = 0; in ip6mr_update_thresholds()
917 memset(cache->mfc_un.res.ttls, 255, MAXMIFS); in ip6mr_update_thresholds()
922 cache->mfc_un.res.ttls[vifi] = ttls[vifi]; in ip6mr_update_thresholds()
923 if (cache->mfc_un.res.minvif > vifi) in ip6mr_update_thresholds()
924 cache->mfc_un.res.minvif = vifi; in ip6mr_update_thresholds()
925 if (cache->mfc_un.res.maxvif <= vifi) in ip6mr_update_thresholds()
926 cache->mfc_un.res.maxvif = vifi + 1; in ip6mr_update_thresholds()
2089 struct sk_buff *skb, struct mfc6_cache *cache) in ip6_mr_forward() argument
2095 vif = cache->mf6c_parent; in ip6_mr_forward()
2096 cache->mfc_un.res.pkt++; in ip6_mr_forward()
2097 cache->mfc_un.res.bytes += skb->len; in ip6_mr_forward()
2099 if (ipv6_addr_any(&cache->mf6c_origin) && true_vifi >= 0) { in ip6_mr_forward()
2115 cache->mfc_un.res.wrong_if++; in ip6_mr_forward()
2124 cache->mfc_un.res.ttls[true_vifi] < 255) && in ip6_mr_forward()
2126 cache->mfc_un.res.last_assert + MFC_ASSERT_THRESH)) { in ip6_mr_forward()
2127 cache->mfc_un.res.last_assert = jiffies; in ip6_mr_forward()
2140 if (ipv6_addr_any(&cache->mf6c_origin) && in ip6_mr_forward()
2141 ipv6_addr_any(&cache->mf6c_mcastgrp)) { in ip6_mr_forward()
2143 true_vifi != cache->mf6c_parent && in ip6_mr_forward()
2145 cache->mfc_un.res.ttls[cache->mf6c_parent]) { in ip6_mr_forward()
2150 psend = cache->mf6c_parent; in ip6_mr_forward()
2155 for (ct = cache->mfc_un.res.maxvif - 1; ct >= cache->mfc_un.res.minvif; ct--) { in ip6_mr_forward()
2157 if ((!ipv6_addr_any(&cache->mf6c_origin) || ct != true_vifi) && in ip6_mr_forward()
2158 ipv6_hdr(skb)->hop_limit > cache->mfc_un.res.ttls[ct]) { in ip6_mr_forward()
2162 ip6mr_forward2(net, mrt, skb2, cache, psend); in ip6_mr_forward()
2169 ip6mr_forward2(net, mrt, skb, cache, psend); in ip6_mr_forward()
2184 struct mfc6_cache *cache; in ip6_mr_input() local
2200 cache = ip6mr_cache_find(mrt, in ip6_mr_input()
2202 if (!cache) { in ip6_mr_input()
2206 cache = ip6mr_cache_find_any(mrt, in ip6_mr_input()
2214 if (!cache) { in ip6_mr_input()
2229 ip6_mr_forward(net, mrt, skb, cache); in ip6_mr_input()
2288 struct mfc6_cache *cache; in ip6mr_get_route() local
2296 cache = ip6mr_cache_find(mrt, &rt->rt6i_src.addr, &rt->rt6i_dst.addr); in ip6mr_get_route()
2297 if (!cache && skb->dev) { in ip6mr_get_route()
2301 cache = ip6mr_cache_find_any(mrt, &rt->rt6i_dst.addr, in ip6mr_get_route()
2305 if (!cache) { in ip6mr_get_route()
2353 cache->mfc_flags |= MFC_NOTIFY; in ip6mr_get_route()
2355 err = __ip6mr_fill_mroute(mrt, skb, cache, rtm); in ip6mr_get_route()