diff options
Diffstat (limited to 'net/ipv4/ipmr.c')
-rw-r--r-- | net/ipv4/ipmr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 0c452e3fdc1b..c5617d646b93 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -2046,6 +2046,7 @@ static int __ipmr_fill_mroute(struct mr_table *mrt, struct sk_buff *skb, | |||
2046 | int ct; | 2046 | int ct; |
2047 | struct rtnexthop *nhp; | 2047 | struct rtnexthop *nhp; |
2048 | struct nlattr *mp_attr; | 2048 | struct nlattr *mp_attr; |
2049 | struct rta_mfc_stats mfcs; | ||
2049 | 2050 | ||
2050 | /* If cache is unresolved, don't try to parse IIF and OIF */ | 2051 | /* If cache is unresolved, don't try to parse IIF and OIF */ |
2051 | if (c->mfc_parent >= MAXVIFS) | 2052 | if (c->mfc_parent >= MAXVIFS) |
@@ -2074,6 +2075,12 @@ static int __ipmr_fill_mroute(struct mr_table *mrt, struct sk_buff *skb, | |||
2074 | 2075 | ||
2075 | nla_nest_end(skb, mp_attr); | 2076 | nla_nest_end(skb, mp_attr); |
2076 | 2077 | ||
2078 | mfcs.mfcs_packets = c->mfc_un.res.pkt; | ||
2079 | mfcs.mfcs_bytes = c->mfc_un.res.bytes; | ||
2080 | mfcs.mfcs_wrong_if = c->mfc_un.res.wrong_if; | ||
2081 | if (nla_put(skb, RTA_MFC_STATS, sizeof(mfcs), &mfcs) < 0) | ||
2082 | return -EMSGSIZE; | ||
2083 | |||
2077 | rtm->rtm_type = RTN_MULTICAST; | 2084 | rtm->rtm_type = RTN_MULTICAST; |
2078 | return 1; | 2085 | return 1; |
2079 | } | 2086 | } |