Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


if_addr.h
01: #ifndef __LINUX_IF_ADDR_H
02: #define __LINUX_IF_ADDR_H
03: 
04: #include <linux/types.h>
05: #include <linux/netlink.h>
06: 
07: struct ifaddrmsg {
08:         __u8            ifa_family;
09:         __u8            ifa_prefixlen;  /* The prefix length            */
10:         __u8            ifa_flags;      /* Flags                        */
11:         __u8            ifa_scope;      /* Address scope                */
12:         __u32           ifa_index;      /* Link index                   */
13: };
14: 
15: /*
16:  * Important comment:
17:  * IFA_ADDRESS is prefix address, rather than local interface address.
18:  * It makes no difference for normally configured broadcast interfaces,
19:  * but for point-to-point IFA_ADDRESS is DESTINATION address,
20:  * local address is supplied in IFA_LOCAL attribute.
21:  */
22: enum {
23:         IFA_UNSPEC,
24:         IFA_ADDRESS,
25:         IFA_LOCAL,
26:         IFA_LABEL,
27:         IFA_BROADCAST,
28:         IFA_ANYCAST,
29:         IFA_CACHEINFO,
30:         IFA_MULTICAST,
31:         __IFA_MAX,
32: };
33: 
34: #define IFA_MAX (__IFA_MAX - 1)
35: 
36: /* ifa_flags */
37: #define IFA_F_SECONDARY         0x01
38: #define IFA_F_TEMPORARY         IFA_F_SECONDARY
39: 
40: #define IFA_F_NODAD             0x02
41: #define IFA_F_OPTIMISTIC        0x04
42: #define IFA_F_DADFAILED         0x08
43: #define IFA_F_HOMEADDRESS       0x10
44: #define IFA_F_DEPRECATED        0x20
45: #define IFA_F_TENTATIVE         0x40
46: #define IFA_F_PERMANENT         0x80
47: 
48: struct ifa_cacheinfo {
49:         __u32   ifa_prefered;
50:         __u32   ifa_valid;
51:         __u32   cstamp; /* created timestamp, hundredths of seconds */
52:         __u32   tstamp; /* updated timestamp, hundredths of seconds */
53: };
54: 
55: /* backwards compatibility for userspace */
56: #define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
57: #define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
58: 
59: #endif
60: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/