Re: [PATCH net-next v5] ipv6: add IFLA_INET6_RA_MTU to expose mtu value

From: Rocco Yue
Date: Fri Aug 27 2021 - 05:44:03 EST


On Fri, 2021-08-27 at 13:28 +0800, David Ahern wrote:
> On 8/25/21 11:46 PM, Rocco Yue wrote:
>> @@ -5651,6 +5654,9 @@ static int inet6_fill_ifla6_attrs(struct sk_buff *skb, struct inet6_dev *idev,
>> if (nla_put_u8(skb, IFLA_INET6_ADDR_GEN_MODE, idev->cnf.addr_gen_mode))
>> goto nla_put_failure;
>>
>> + if (nla_put_u32(skb, IFLA_INET6_RA_MTU, idev->ra_mtu))
>
> I should have seen this earlier. The intent here is to only notify
> userspace if the RA contains an MTU in which case this should be
>
> if (idev->ra_mtu &&
> nla_put_u32(skb, IFLA_INET6_RA_MTU, idev->ra_mtu))
>

Hi David,

Thanks for your pretty suggestion.

When ra_mtu = 0, notify userspace is really unnecessary. At first
I did this because when userspace get ra_mtu = 0 through getlink,
then the corresponding operation can be performed.

After adding the restriction of "idev->ra_mtu", I think userspace can
judge whether the mtu option is carried in the RA by judging whether it
can be parsed to IFLA_INET6_RA_MTU after getlink, and perform the
corresponding operation.

I will push the next version.

> and in which case idev->ra_mtu should be initialized to 0 explicitly,
> not U32_MIN.

will do.

Thanks