Lines Matching refs:vifi
104 struct sk_buff *pkt, vifi_t vifi, int assert);
646 static int vif_delete(struct mr_table *mrt, int vifi, int notify, in vif_delete() argument
654 if (vifi < 0 || vifi >= mrt->maxvif) in vif_delete()
657 v = &mrt->vif_table[vifi]; in vif_delete()
659 if (VIF_EXISTS(mrt, vifi)) in vif_delete()
660 call_ipmr_vif_entry_notifiers(net, FIB_EVENT_VIF_DEL, v, vifi, in vif_delete()
672 if (vifi == mrt->mroute_reg_vif_num) in vif_delete()
675 if (vifi + 1 == mrt->maxvif) { in vif_delete()
678 for (tmp = vifi - 1; tmp >= 0; tmp--) { in vif_delete()
791 int vifi; in ipmr_update_thresholds() local
797 for (vifi = 0; vifi < mrt->maxvif; vifi++) { in ipmr_update_thresholds()
798 if (VIF_EXISTS(mrt, vifi) && in ipmr_update_thresholds()
799 ttls[vifi] && ttls[vifi] < 255) { in ipmr_update_thresholds()
800 cache->mfc_un.res.ttls[vifi] = ttls[vifi]; in ipmr_update_thresholds()
801 if (cache->mfc_un.res.minvif > vifi) in ipmr_update_thresholds()
802 cache->mfc_un.res.minvif = vifi; in ipmr_update_thresholds()
803 if (cache->mfc_un.res.maxvif <= vifi) in ipmr_update_thresholds()
804 cache->mfc_un.res.maxvif = vifi + 1; in ipmr_update_thresholds()
814 int vifi = vifc->vifc_vifi; in vif_add() local
815 struct vif_device *v = &mrt->vif_table[vifi]; in vif_add()
821 if (VIF_EXISTS(mrt, vifi)) in vif_add()
902 mrt->mroute_reg_vif_num = vifi; in vif_add()
903 if (vifi+1 > mrt->maxvif) in vif_add()
904 mrt->maxvif = vifi+1; in vif_add()
906 call_ipmr_vif_entry_notifiers(net, FIB_EVENT_VIF_ADD, v, vifi, mrt->id); in vif_add()
925 __be32 mcastgrp, int vifi) in ipmr_cache_find_any() argument
933 return mr_mfc_find_any_parent(mrt, vifi); in ipmr_cache_find_any()
934 return mr_mfc_find_any(mrt, vifi, &arg); in ipmr_cache_find_any()
1013 struct sk_buff *pkt, vifi_t vifi, int assert) in ipmr_cache_report() argument
1044 msg->im_vif = vifi; in ipmr_cache_report()
1045 msg->im_vif_hi = vifi >> 8; in ipmr_cache_report()
1061 msg->im_vif = vifi; in ipmr_cache_report()
1062 msg->im_vif_hi = vifi >> 8; in ipmr_cache_report()
1095 static int ipmr_cache_unresolved(struct mr_table *mrt, vifi_t vifi, in ipmr_cache_unresolved() argument
1128 err = ipmr_cache_report(mrt, skb, vifi, IGMPMSG_NOCACHE); in ipmr_cache_unresolved()
1604 if (vr.vifi >= mrt->maxvif) in ipmr_ioctl()
1606 vr.vifi = array_index_nospec(vr.vifi, mrt->maxvif); in ipmr_ioctl()
1608 vif = &mrt->vif_table[vr.vifi]; in ipmr_ioctl()
1609 if (VIF_EXISTS(mrt, vr.vifi)) { in ipmr_ioctl()
1655 vifi_t vifi; /* Which iface */ member
1679 if (vr.vifi >= mrt->maxvif) in ipmr_compat_ioctl()
1681 vr.vifi = array_index_nospec(vr.vifi, mrt->maxvif); in ipmr_compat_ioctl()
1683 vif = &mrt->vif_table[vr.vifi]; in ipmr_compat_ioctl()
1684 if (VIF_EXISTS(mrt, vr.vifi)) { in ipmr_compat_ioctl()
1816 int in_vifi, struct sk_buff *skb, int vifi) in ipmr_queue_xmit() argument
1819 struct vif_device *vif = &mrt->vif_table[vifi]; in ipmr_queue_xmit()
1833 ipmr_cache_report(mrt, skb, vifi, IGMPMSG_WHOLEPKT); in ipmr_queue_xmit()
1837 if (ipmr_forward_offloaded(skb, mrt, in_vifi, vifi)) in ipmr_queue_xmit()
2627 int remaining = nla_len(nla), vifi = 0; in ipmr_nla_get_ttls() local
2630 mfcc->mfcc_ttls[vifi] = rtnh->rtnh_hops; in ipmr_nla_get_ttls()
2631 if (++vifi == MAXVIFS) in ipmr_nla_get_ttls()
2636 return remaining > 0 ? -EINVAL : vifi; in ipmr_nla_get_ttls()