Lines Matching refs:vif

76 /* Big lock, protecting vif table, mrt cache and mroute socket state.
82 static struct net_device *vif_dev_read(const struct vif_device *vif)
84 return rcu_dereference(vif->dev);
625 struct vif_device *vif,
630 vif, vif_dev, vif_index, tb_id,
820 /* Is vif busy ? */
1277 /* Close the multicast socket, and clear the vif tables etc */
1286 /* Shut down all active vif entries */
1363 struct vifctl vif;
1425 if (optlen != sizeof(vif)) {
1429 if (copy_from_sockptr(&vif, optval, sizeof(vif))) {
1433 if (vif.vifc_vifi >= MAXVIFS) {
1438 ret = vif_add(net, mrt, &vif,
1441 ret = vif_delete(mrt, vif.vifc_vifi, 0, NULL);
1621 struct vif_device *vif;
1639 vif = &mrt->vif_table[vr->vifi];
1641 vr->icount = READ_ONCE(vif->pkt_in);
1642 vr->ocount = READ_ONCE(vif->pkt_out);
1643 vr->ibytes = READ_ONCE(vif->bytes_in);
1644 vr->obytes = READ_ONCE(vif->bytes_out);
1691 struct vif_device *vif;
1708 vif = &mrt->vif_table[vr.vifi];
1710 vr.icount = READ_ONCE(vif->pkt_in);
1711 vr.ocount = READ_ONCE(vif->pkt_out);
1712 vr.ibytes = READ_ONCE(vif->bytes_in);
1713 vr.obytes = READ_ONCE(vif->bytes_out);
1843 struct vif_device *vif = &mrt->vif_table[vifi];
1850 vif_dev = vif_dev_read(vif);
1854 if (vif->flags & VIFF_REGISTER) {
1855 WRITE_ONCE(vif->pkt_out, vif->pkt_out + 1);
1856 WRITE_ONCE(vif->bytes_out, vif->bytes_out + skb->len);
1866 if (vif->flags & VIFF_TUNNEL) {
1868 vif->remote, vif->local,
1871 RT_TOS(iph->tos), vif->link);
1879 RT_TOS(iph->tos), vif->link);
1903 WRITE_ONCE(vif->pkt_out, vif->pkt_out + 1);
1904 WRITE_ONCE(vif->bytes_out, vif->bytes_out + skb->len);
1913 if (vif->flags & VIFF_TUNNEL) {
1914 ip_encap(net, skb, vif->local, vif->remote);
1961 int vif, ct;
1963 vif = c->_c.mfc_parent;
1974 cache_proxy = mr_mfc_find_any_parent(mrt, vif);
1981 if (rcu_access_pointer(mrt->vif_table[vif].dev) != dev) {
2020 WRITE_ONCE(mrt->vif_table[vif].pkt_in,
2021 mrt->vif_table[vif].pkt_in + 1);
2022 WRITE_ONCE(mrt->vif_table[vif].bytes_in,
2023 mrt->vif_table[vif].bytes_in + skb->len);
2113 * get the proper interface that does have a vif associated with it.
2160 int vif = ipmr_find_vif(mrt, dev);
2162 if (vif >= 0)
2164 vif);
2169 int vif;
2179 vif = ipmr_find_vif(mrt, dev);
2180 if (vif >= 0)
2181 return ipmr_cache_unresolved(mrt, vif, skb, dev);
2271 int vif = ipmr_find_vif(mrt, skb->dev);
2273 if (vif >= 0)
2274 cache = ipmr_cache_find_any(mrt, daddr, vif);
2280 int vif = -1;
2284 vif = ipmr_find_vif(mrt, dev);
2285 if (vif < 0) {
2304 err = ipmr_cache_unresolved(mrt, vif, skb2, dev);
2773 struct vif_device *vif;
2775 vif = &mrt->vif_table[vifid];
2776 vif_dev = rtnl_dereference(vif->dev);
2787 nla_put_u16(skb, IPMRA_VIFA_FLAGS, vif->flags) ||
2788 nla_put_u64_64bit(skb, IPMRA_VIFA_BYTES_IN, vif->bytes_in,
2790 nla_put_u64_64bit(skb, IPMRA_VIFA_BYTES_OUT, vif->bytes_out,
2792 nla_put_u64_64bit(skb, IPMRA_VIFA_PACKETS_IN, vif->pkt_in,
2794 nla_put_u64_64bit(skb, IPMRA_VIFA_PACKETS_OUT, vif->pkt_out,
2796 nla_put_be32(skb, IPMRA_VIFA_LOCAL_ADDR, vif->local) ||
2797 nla_put_be32(skb, IPMRA_VIFA_REMOTE_ADDR, vif->remote)) {
2948 const struct vif_device *vif = v;
2952 vif_dev = vif_dev_read(vif);
2956 vif - mrt->vif_table,
2957 name, vif->bytes_in, vif->pkt_in,
2958 vif->bytes_out, vif->pkt_out,
2959 vif->flags, vif->local, vif->remote);