mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
ipmr/ip6mr: report origin of mfc entry into rtnl msg
A mfc entry can be static or not (added via the mroute_sk socket). The patch reports MFC_STATIC flag into rtm_protocol by setting rtm_protocol to RTPROT_STATIC or RTPROT_MROUTED. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
adfa85e45d
commit
9a68ac72a4
@ -227,6 +227,7 @@ enum {
|
|||||||
#define RTPROT_XORP 14 /* XORP */
|
#define RTPROT_XORP 14 /* XORP */
|
||||||
#define RTPROT_NTK 15 /* Netsukuku */
|
#define RTPROT_NTK 15 /* Netsukuku */
|
||||||
#define RTPROT_DHCP 16 /* DHCP client */
|
#define RTPROT_DHCP 16 /* DHCP client */
|
||||||
|
#define RTPROT_MROUTED 17 /* Multicast daemon */
|
||||||
|
|
||||||
/* rtm_scope
|
/* rtm_scope
|
||||||
|
|
||||||
|
@ -2169,7 +2169,10 @@ static int ipmr_fill_mroute(struct mr_table *mrt, struct sk_buff *skb,
|
|||||||
goto nla_put_failure;
|
goto nla_put_failure;
|
||||||
rtm->rtm_type = RTN_MULTICAST;
|
rtm->rtm_type = RTN_MULTICAST;
|
||||||
rtm->rtm_scope = RT_SCOPE_UNIVERSE;
|
rtm->rtm_scope = RT_SCOPE_UNIVERSE;
|
||||||
rtm->rtm_protocol = RTPROT_UNSPEC;
|
if (c->mfc_flags & MFC_STATIC)
|
||||||
|
rtm->rtm_protocol = RTPROT_STATIC;
|
||||||
|
else
|
||||||
|
rtm->rtm_protocol = RTPROT_MROUTED;
|
||||||
rtm->rtm_flags = 0;
|
rtm->rtm_flags = 0;
|
||||||
|
|
||||||
if (nla_put_be32(skb, RTA_SRC, c->mfc_origin) ||
|
if (nla_put_be32(skb, RTA_SRC, c->mfc_origin) ||
|
||||||
|
@ -2249,7 +2249,10 @@ static int ip6mr_fill_mroute(struct mr6_table *mrt, struct sk_buff *skb,
|
|||||||
if (nla_put_u32(skb, RTA_TABLE, mrt->id))
|
if (nla_put_u32(skb, RTA_TABLE, mrt->id))
|
||||||
goto nla_put_failure;
|
goto nla_put_failure;
|
||||||
rtm->rtm_scope = RT_SCOPE_UNIVERSE;
|
rtm->rtm_scope = RT_SCOPE_UNIVERSE;
|
||||||
rtm->rtm_protocol = RTPROT_UNSPEC;
|
if (c->mfc_flags & MFC_STATIC)
|
||||||
|
rtm->rtm_protocol = RTPROT_STATIC;
|
||||||
|
else
|
||||||
|
rtm->rtm_protocol = RTPROT_MROUTED;
|
||||||
rtm->rtm_flags = 0;
|
rtm->rtm_flags = 0;
|
||||||
|
|
||||||
if (nla_put(skb, RTA_SRC, 16, &c->mf6c_origin) ||
|
if (nla_put(skb, RTA_SRC, 16, &c->mf6c_origin) ||
|
||||||
|
Loading…
Reference in New Issue
Block a user