Lines Matching full:mfc

111 static void mroute_netlink_event(struct mr_table *mrt, struct mfc_cache *mfc,
663 struct mfc_cache *mfc, u32 tb_id) in call_ipmr_mfc_entry_notifiers() argument
666 &mfc->_c, tb_id, &net->ipv4.ipmr_seq); in call_ipmr_mfc_entry_notifiers()
1201 /* MFC cache manipulation by user space mroute daemon */
1203 static int ipmr_mfc_delete(struct mr_table *mrt, struct mfcctl *mfc, int parent) in ipmr_mfc_delete() argument
1210 c = ipmr_cache_find_parent(mrt, mfc->mfcc_origin.s_addr, in ipmr_mfc_delete()
1211 mfc->mfcc_mcastgrp.s_addr, parent); in ipmr_mfc_delete()
1225 struct mfcctl *mfc, int mrtsock, int parent) in ipmr_mfc_add() argument
1232 if (mfc->mfcc_parent >= MAXVIFS) in ipmr_mfc_add()
1237 c = ipmr_cache_find_parent(mrt, mfc->mfcc_origin.s_addr, in ipmr_mfc_add()
1238 mfc->mfcc_mcastgrp.s_addr, parent); in ipmr_mfc_add()
1242 c->_c.mfc_parent = mfc->mfcc_parent; in ipmr_mfc_add()
1243 ipmr_update_thresholds(mrt, &c->_c, mfc->mfcc_ttls); in ipmr_mfc_add()
1253 if (mfc->mfcc_mcastgrp.s_addr != htonl(INADDR_ANY) && in ipmr_mfc_add()
1254 !ipv4_is_multicast(mfc->mfcc_mcastgrp.s_addr)) in ipmr_mfc_add()
1261 c->mfc_origin = mfc->mfcc_origin.s_addr; in ipmr_mfc_add()
1262 c->mfc_mcastgrp = mfc->mfcc_mcastgrp.s_addr; in ipmr_mfc_add()
1263 c->_c.mfc_parent = mfc->mfcc_parent; in ipmr_mfc_add()
1264 ipmr_update_thresholds(mrt, &c->_c, mfc->mfcc_ttls); in ipmr_mfc_add()
1391 struct mfcctl mfc; in ip_mroute_setsockopt() local
1480 if (optlen != sizeof(mfc)) { in ip_mroute_setsockopt()
1484 if (copy_from_sockptr(&mfc, optval, sizeof(mfc))) { in ip_mroute_setsockopt()
1489 parent = mfc.mfcc_parent; in ip_mroute_setsockopt()
1491 ret = ipmr_mfc_delete(mrt, &mfc, parent); in ip_mroute_setsockopt()
1493 ret = ipmr_mfc_add(net, mrt, &mfc, in ip_mroute_setsockopt()
2416 static void mroute_netlink_event(struct mr_table *mrt, struct mfc_cache *mfc, in mroute_netlink_event() argument
2423 skb = nlmsg_new(mroute_msgsize(mfc->_c.mfc_parent >= MAXVIFS, in mroute_netlink_event()
2429 err = ipmr_fill_mroute(mrt, skb, 0, 0, mfc, cmd, 0); in mroute_netlink_event()
3021 const struct mfc_cache *mfc = v; in ipmr_mfc_seq_show() local
3026 (__force u32) mfc->mfc_mcastgrp, in ipmr_mfc_seq_show()
3027 (__force u32) mfc->mfc_origin, in ipmr_mfc_seq_show()
3028 mfc->_c.mfc_parent); in ipmr_mfc_seq_show()
3032 atomic_long_read(&mfc->_c.mfc_un.res.pkt), in ipmr_mfc_seq_show()
3033 atomic_long_read(&mfc->_c.mfc_un.res.bytes), in ipmr_mfc_seq_show()
3034 atomic_long_read(&mfc->_c.mfc_un.res.wrong_if)); in ipmr_mfc_seq_show()
3035 for (n = mfc->_c.mfc_un.res.minvif; in ipmr_mfc_seq_show()
3036 n < mfc->_c.mfc_un.res.maxvif; n++) { in ipmr_mfc_seq_show()
3038 mfc->_c.mfc_un.res.ttls[n] < 255) in ipmr_mfc_seq_show()
3041 n, mfc->_c.mfc_un.res.ttls[n]); in ipmr_mfc_seq_show()