tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: IPv4 Address Flags



On 23/04/2015 09:51, Joerg Sonnenberger wrote:
> On Wed, Apr 22, 2015 at 03:42:01PM -0700, Matt Thomas wrote:
>>
>>> On Apr 22, 2015, at 3:24 PM, Christos Zoulas <christos%astron.com@localhost> wrote:
>>>
>>> In article <55381013.6070403%marples.name@localhost>,
>>> Roy Marples  <roy%marples.name@localhost> wrote:
>>>> diff -u -r1.188 if.h
>>>> --- sys/net/if.h	20 Apr 2015 10:19:54 -0000	1.188
>>>> +++ sys/net/if.h	22 Apr 2015 21:03:01 -0000
>>>> @@ -594,6 +594,7 @@
>>>> 		struct	sockaddr ifru_broadaddr;
>>>> 		struct	sockaddr_storage ifru_space;
>>>> 		short	ifru_flags;
>>>> +		int	ifru_addrflags;
>>>> 		int	ifru_metric;
>>>
>>> This is an ABI change to all ifreq ioctls... If you are going to do this,
>>> I'd bite the bullet and bump sockaddr_storage to 256 or 512 bytes and get
>>> rid of sockaddr_big.
>>
>> Not really since that’s in a union.
>>
>> No ABI change.
> 
> It is an ABI change as the offset of ifru_metric changes?

#include <net/if.h>
#include <stddef.h>
#include <stdio.h>

int main(void)
{

	printf ("flags offset %lu\n", offsetof(struct ifreq, ifr_flags));
	printf ("addrflags offset %lu\n", offsetof(struct ifreq, ifr_addrflags));
	printf ("metric offset %lu\n", offsetof(struct ifreq, ifr_addrflags));
	return 0;
}

outputs:
flags offset 16
addrflags offset 16
metric offset 16

How is this an ABI change?

Roy


Home | Main Index | Thread Index | Old Index