Lines Matching refs:mfc

117 static void mr6_netlink_event(struct mr6_table *mrt, struct mfc6_cache *mfc,
356 struct mfc6_cache *mfc; in ipmr_mfc_seq_idx() local
361 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
363 return mfc; in ipmr_mfc_seq_idx()
369 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
371 return mfc; in ipmr_mfc_seq_idx()
505 struct mfc6_cache *mfc = v; in ipmr_mfc_seq_next() local
515 if (mfc->list.next != it->cache) in ipmr_mfc_seq_next()
516 return list_entry(mfc->list.next, struct mfc6_cache, list); in ipmr_mfc_seq_next()
567 const struct mfc6_cache *mfc = v; in ipmr_mfc_seq_show() local
572 &mfc->mf6c_mcastgrp, &mfc->mf6c_origin, in ipmr_mfc_seq_show()
573 mfc->mf6c_parent); in ipmr_mfc_seq_show()
577 mfc->mfc_un.res.pkt, in ipmr_mfc_seq_show()
578 mfc->mfc_un.res.bytes, in ipmr_mfc_seq_show()
579 mfc->mfc_un.res.wrong_if); in ipmr_mfc_seq_show()
580 for (n = mfc->mfc_un.res.minvif; in ipmr_mfc_seq_show()
581 n < mfc->mfc_un.res.maxvif; n++) { in ipmr_mfc_seq_show()
583 mfc->mfc_un.res.ttls[n] < 255) in ipmr_mfc_seq_show()
586 n, mfc->mfc_un.res.ttls[n]); in ipmr_mfc_seq_show()
1304 static int ip6mr_mfc_delete(struct mr6_table *mrt, struct mf6cctl *mfc, in ip6mr_mfc_delete() argument
1310 line = MFC6_HASH(&mfc->mf6cc_mcastgrp.sin6_addr, &mfc->mf6cc_origin.sin6_addr); in ip6mr_mfc_delete()
1313 if (ipv6_addr_equal(&c->mf6c_origin, &mfc->mf6cc_origin.sin6_addr) && in ip6mr_mfc_delete()
1315 &mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_delete()
1455 struct mf6cctl *mfc, int mrtsock, int parent) in ip6mr_mfc_add() argument
1463 if (mfc->mf6cc_parent >= MAXMIFS) in ip6mr_mfc_add()
1468 if (IF_ISSET(i, &mfc->mf6cc_ifset)) in ip6mr_mfc_add()
1473 line = MFC6_HASH(&mfc->mf6cc_mcastgrp.sin6_addr, &mfc->mf6cc_origin.sin6_addr); in ip6mr_mfc_add()
1476 if (ipv6_addr_equal(&c->mf6c_origin, &mfc->mf6cc_origin.sin6_addr) && in ip6mr_mfc_add()
1478 &mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_add()
1479 (parent == -1 || parent == mfc->mf6cc_parent)) { in ip6mr_mfc_add()
1487 c->mf6c_parent = mfc->mf6cc_parent; in ip6mr_mfc_add()
1496 if (!ipv6_addr_any(&mfc->mf6cc_mcastgrp.sin6_addr) && in ip6mr_mfc_add()
1497 !ipv6_addr_is_multicast(&mfc->mf6cc_mcastgrp.sin6_addr)) in ip6mr_mfc_add()
1504 c->mf6c_origin = mfc->mf6cc_origin.sin6_addr; in ip6mr_mfc_add()
1505 c->mf6c_mcastgrp = mfc->mf6cc_mcastgrp.sin6_addr; in ip6mr_mfc_add()
1506 c->mf6c_parent = mfc->mf6cc_parent; in ip6mr_mfc_add()
1666 struct mf6cctl mfc; in ip6_mroute_setsockopt() local
1724 if (optlen < sizeof(mfc)) in ip6_mroute_setsockopt()
1726 if (copy_from_user(&mfc, optval, sizeof(mfc))) in ip6_mroute_setsockopt()
1729 parent = mfc.mf6cc_parent; in ip6_mroute_setsockopt()
1732 ret = ip6mr_mfc_delete(mrt, &mfc, parent); in ip6_mroute_setsockopt()
1734 ret = ip6mr_mfc_add(net, mrt, &mfc, in ip6_mroute_setsockopt()
2425 static void mr6_netlink_event(struct mr6_table *mrt, struct mfc6_cache *mfc, in mr6_netlink_event() argument
2432 skb = nlmsg_new(mr6_msgsize(mfc->mf6c_parent >= MAXMIFS, mrt->maxvif), in mr6_netlink_event()
2437 err = ip6mr_fill_mroute(mrt, skb, 0, 0, mfc, cmd, 0); in mr6_netlink_event()
2454 struct mfc6_cache *mfc; in ip6mr_rtm_dumproute() local
2470 list_for_each_entry(mfc, &mrt->mfc6_cache_array[h], list) { in ip6mr_rtm_dumproute()
2476 mfc, RTM_NEWROUTE, in ip6mr_rtm_dumproute()
2485 list_for_each_entry(mfc, &mrt->mfc6_unres_queue, list) { in ip6mr_rtm_dumproute()
2491 mfc, RTM_NEWROUTE, in ip6mr_rtm_dumproute()