On 11/10/20 7:21 AM, Jeff Dike wrote:
> Hi Jakub,
>
> On 11/9/20 2:47 PM, Jakub Kicinski wrote:
>> This makes sense because mcast L2 addr is calculated, not discovered,
>> and therefore can be recreated at a very low cost, correct?
>
> Yes.
>
>> Perhaps it would make sense to widen the API to any "computed" address
>> rather than implicitly depending on this behavior for mcast?
>
> I'm happy to do that, but I don't know of any other types of addresses which
> are computed and end up in the neighbors table.
>
>> I'm not an expert tho, maybe others disagree.
>>
>>> +static int arp_is_multicast(const void *pkey)
>>> +{
>>> + return IN_MULTICAST(htonl(*((u32 *)pkey)));
>>> +}
>>
>> net/ipv4/arp.c:935:16: warning: cast from restricted __be32
>>
>> s/u32/__be32/
>> s/htonl/ntohl/
>
> Thanks, I ran sparse, but must have missed that somehow.
>
I missed this yesterday -- ipv4_is_multicast() is more appropriate and
the norm for IPv4 addresses.