2 * inet6 interface/address list definitions
3 * Linux INET6 implementation
6 * Pedro Roque <roque@di.fc.ul.pt>
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
15 #ifndef _NET_IF_INET6_H
16 #define _NET_IF_INET6_H
18 #define IF_RA_RCVD 0x20
19 #define IF_RS_SENT 0x10
39 struct timer_list timer
;
41 struct inet6_dev
*idev
;
43 struct inet6_ifaddr
*lst_next
; /* next addr in addr_lst */
44 struct inet6_ifaddr
*if_next
; /* next addr in inet6_dev */
49 struct ipv6_mc_socklist
53 struct ipv6_mc_socklist
*next
;
56 #define MAF_TIMER_RUNNING 0x01
57 #define MAF_LAST_REPORTER 0x02
58 #define MAF_LOADED 0x04
62 struct in6_addr mca_addr
;
63 struct inet6_dev
*idev
;
64 struct ifmcaddr6
*next
;
65 struct timer_list mca_timer
;
70 #define IFA_HOST IPV6_ADDR_LOOPBACK
71 #define IFA_LINK IPV6_ADDR_LINKLOCAL
72 #define IFA_SITE IPV6_ADDR_SITELOCAL
73 #define IFA_GLOBAL 0x0000U
85 int rtr_solicit_interval
;
86 int rtr_solicit_delay
;
93 struct net_device
*dev
;
95 struct inet6_ifaddr
*addr_list
;
96 struct ifmcaddr6
*mc_list
;
102 struct neigh_parms
*nd_parms
;
103 struct inet6_dev
*next
;
104 struct ipv6_devconf cnf
;
107 extern struct ipv6_devconf ipv6_devconf
;
109 extern __inline__
void ipv6_eth_mc_map(struct in6_addr
*addr
, char *buf
)
112 * +-------+-------+-------+-------+-------+-------+
113 * | 33 | 33 | DST13 | DST14 | DST15 | DST16 |
114 * +-------+-------+-------+-------+-------+-------+
120 memcpy(buf
+ 2, &addr
->s6_addr32
[3], sizeof(__u32
));