Lines Matching refs:mfc

117 static void mr6_netlink_event(struct mr6_table *mrt, struct mfc6_cache *mfc,
355 struct mfc6_cache *mfc; in ipmr_mfc_seq_idx() local
360 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
362 return mfc; in ipmr_mfc_seq_idx()
368 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
370 return mfc; in ipmr_mfc_seq_idx()
504 struct mfc6_cache *mfc = v; in ipmr_mfc_seq_next() local
514 if (mfc->list.next != it->cache) in ipmr_mfc_seq_next()
515 return list_entry(mfc->list.next, struct mfc6_cache, list); in ipmr_mfc_seq_next()
566 const struct mfc6_cache *mfc = v; in ipmr_mfc_seq_show() local
571 &mfc->mf6c_mcastgrp, &mfc->mf6c_origin, in ipmr_mfc_seq_show()
572 mfc->mf6c_parent); in ipmr_mfc_seq_show()
576 mfc->mfc_un.res.pkt, in ipmr_mfc_seq_show()
577 mfc->mfc_un.res.bytes, in ipmr_mfc_seq_show()
578 mfc->mfc_un.res.wrong_if); in ipmr_mfc_seq_show()
579 for (n = mfc->mfc_un.res.minvif; in ipmr_mfc_seq_show()
580 n < mfc->mfc_un.res.maxvif; n++) { in ipmr_mfc_seq_show()
582 mfc->mfc_un.res.ttls[n] < 255) in ipmr_mfc_seq_show()
585 n, mfc->mfc_un.res.ttls[n]); in ipmr_mfc_seq_show()
1299 static int ip6mr_mfc_delete(struct mr6_table *mrt, struct mf6cctl *mfc, in ip6mr_mfc_delete() argument
1305 line = MFC6_HASH(&mfc->mf6cc_mcastgrp.sin6_addr, &mfc->mf6cc_origin.sin6_addr); in ip6mr_mfc_delete()
1308 if (ipv6_addr_equal(&c->mf6c_origin, &mfc->mf6cc_origin.sin6_addr) && in ip6mr_mfc_delete()
1310 &mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_delete()
1450 struct mf6cctl *mfc, int mrtsock, int parent) in ip6mr_mfc_add() argument
1458 if (mfc->mf6cc_parent >= MAXMIFS) in ip6mr_mfc_add()
1463 if (IF_ISSET(i, &mfc->mf6cc_ifset)) in ip6mr_mfc_add()
1468 line = MFC6_HASH(&mfc->mf6cc_mcastgrp.sin6_addr, &mfc->mf6cc_origin.sin6_addr); in ip6mr_mfc_add()
1471 if (ipv6_addr_equal(&c->mf6c_origin, &mfc->mf6cc_origin.sin6_addr) && in ip6mr_mfc_add()
1473 &mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_add()
1474 (parent == -1 || parent == mfc->mf6cc_parent)) { in ip6mr_mfc_add()
1482 c->mf6c_parent = mfc->mf6cc_parent; in ip6mr_mfc_add()
1491 if (!ipv6_addr_any(&mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_add()
1492 !ipv6_addr_is_multicast(&mfc->mf6cc_mcastgrp.sin6_addr)) in ip6mr_mfc_add()
1499 c->mf6c_origin = mfc->mf6cc_origin.sin6_addr; in ip6mr_mfc_add()
1500 c->mf6c_mcastgrp = mfc->mf6cc_mcastgrp.sin6_addr; in ip6mr_mfc_add()
1501 c->mf6c_parent = mfc->mf6cc_parent; in ip6mr_mfc_add()
1661 struct mf6cctl mfc; in ip6_mroute_setsockopt() local
1719 if (optlen < sizeof(mfc)) in ip6_mroute_setsockopt()
1721 if (copy_from_user(&mfc, optval, sizeof(mfc))) in ip6_mroute_setsockopt()
1724 parent = mfc.mf6cc_parent; in ip6_mroute_setsockopt()
1727 ret = ip6mr_mfc_delete(mrt, &mfc, parent); in ip6_mroute_setsockopt()
1729 ret = ip6mr_mfc_add(net, mrt, &mfc, in ip6_mroute_setsockopt()
2420 static void mr6_netlink_event(struct mr6_table *mrt, struct mfc6_cache *mfc, in mr6_netlink_event() argument
2427 skb = nlmsg_new(mr6_msgsize(mfc->mf6c_parent >= MAXMIFS, mrt->maxvif), in mr6_netlink_event()
2432 err = ip6mr_fill_mroute(mrt, skb, 0, 0, mfc, cmd, 0); in mr6_netlink_event()
2449 struct mfc6_cache *mfc; in ip6mr_rtm_dumproute() local
2465 list_for_each_entry(mfc, &mrt->mfc6_cache_array[h], list) { in ip6mr_rtm_dumproute()
2471 mfc, RTM_NEWROUTE, in ip6mr_rtm_dumproute()
2480 list_for_each_entry(mfc, &mrt->mfc6_unres_queue, list) { in ip6mr_rtm_dumproute()
2486 mfc, RTM_NEWROUTE, in ip6mr_rtm_dumproute()