Lines Matching refs:mfc

135 static void mroute_netlink_event(struct mr_table *mrt, struct mfc_cache *mfc,
1103 static int ipmr_mfc_delete(struct mr_table *mrt, struct mfcctl *mfc, int parent) in ipmr_mfc_delete() argument
1108 line = MFC_HASH(mfc->mfcc_mcastgrp.s_addr, mfc->mfcc_origin.s_addr); in ipmr_mfc_delete()
1111 if (c->mfc_origin == mfc->mfcc_origin.s_addr && in ipmr_mfc_delete()
1112 c->mfc_mcastgrp == mfc->mfcc_mcastgrp.s_addr && in ipmr_mfc_delete()
1124 struct mfcctl *mfc, int mrtsock, int parent) in ipmr_mfc_add() argument
1130 if (mfc->mfcc_parent >= MAXVIFS) in ipmr_mfc_add()
1133 line = MFC_HASH(mfc->mfcc_mcastgrp.s_addr, mfc->mfcc_origin.s_addr); in ipmr_mfc_add()
1136 if (c->mfc_origin == mfc->mfcc_origin.s_addr && in ipmr_mfc_add()
1137 c->mfc_mcastgrp == mfc->mfcc_mcastgrp.s_addr && in ipmr_mfc_add()
1146 c->mfc_parent = mfc->mfcc_parent; in ipmr_mfc_add()
1147 ipmr_update_thresholds(mrt, c, mfc->mfcc_ttls); in ipmr_mfc_add()
1155 if (mfc->mfcc_mcastgrp.s_addr != htonl(INADDR_ANY) && in ipmr_mfc_add()
1156 !ipv4_is_multicast(mfc->mfcc_mcastgrp.s_addr)) in ipmr_mfc_add()
1163 c->mfc_origin = mfc->mfcc_origin.s_addr; in ipmr_mfc_add()
1164 c->mfc_mcastgrp = mfc->mfcc_mcastgrp.s_addr; in ipmr_mfc_add()
1165 c->mfc_parent = mfc->mfcc_parent; in ipmr_mfc_add()
1166 ipmr_update_thresholds(mrt, c, mfc->mfcc_ttls); in ipmr_mfc_add()
1274 struct mfcctl mfc; in ip_mroute_setsockopt() local
1344 if (optlen != sizeof(mfc)) in ip_mroute_setsockopt()
1346 if (copy_from_user(&mfc, optval, sizeof(mfc))) in ip_mroute_setsockopt()
1349 parent = mfc.mfcc_parent; in ip_mroute_setsockopt()
1352 ret = ipmr_mfc_delete(mrt, &mfc, parent); in ip_mroute_setsockopt()
1354 ret = ipmr_mfc_add(net, mrt, &mfc, in ip_mroute_setsockopt()
2325 static void mroute_netlink_event(struct mr_table *mrt, struct mfc_cache *mfc, in mroute_netlink_event() argument
2332 skb = nlmsg_new(mroute_msgsize(mfc->mfc_parent >= MAXVIFS, mrt->maxvif), in mroute_netlink_event()
2337 err = ipmr_fill_mroute(mrt, skb, 0, 0, mfc, cmd, 0); in mroute_netlink_event()
2354 struct mfc_cache *mfc; in ipmr_rtm_dumproute() local
2370 list_for_each_entry_rcu(mfc, &mrt->mfc_cache_array[h], list) { in ipmr_rtm_dumproute()
2376 mfc, RTM_NEWROUTE, in ipmr_rtm_dumproute()
2385 list_for_each_entry(mfc, &mrt->mfc_unres_queue, list) { in ipmr_rtm_dumproute()
2391 mfc, RTM_NEWROUTE, in ipmr_rtm_dumproute()
2538 struct mfc_cache *mfc; in ipmr_mfc_seq_idx() local
2543 list_for_each_entry_rcu(mfc, it->cache, list) in ipmr_mfc_seq_idx()
2545 return mfc; in ipmr_mfc_seq_idx()
2551 list_for_each_entry(mfc, it->cache, list) in ipmr_mfc_seq_idx()
2553 return mfc; in ipmr_mfc_seq_idx()
2580 struct mfc_cache *mfc = v; in ipmr_mfc_seq_next() local
2590 if (mfc->list.next != it->cache) in ipmr_mfc_seq_next()
2591 return list_entry(mfc->list.next, struct mfc_cache, list); in ipmr_mfc_seq_next()
2640 const struct mfc_cache *mfc = v; in ipmr_mfc_seq_show() local
2645 (__force u32) mfc->mfc_mcastgrp, in ipmr_mfc_seq_show()
2646 (__force u32) mfc->mfc_origin, in ipmr_mfc_seq_show()
2647 mfc->mfc_parent); in ipmr_mfc_seq_show()
2651 mfc->mfc_un.res.pkt, in ipmr_mfc_seq_show()
2652 mfc->mfc_un.res.bytes, in ipmr_mfc_seq_show()
2653 mfc->mfc_un.res.wrong_if); in ipmr_mfc_seq_show()
2654 for (n = mfc->mfc_un.res.minvif; in ipmr_mfc_seq_show()
2655 n < mfc->mfc_un.res.maxvif; n++) { in ipmr_mfc_seq_show()
2657 mfc->mfc_un.res.ttls[n] < 255) in ipmr_mfc_seq_show()
2660 n, mfc->mfc_un.res.ttls[n]); in ipmr_mfc_seq_show()