netinet6: embed struct nd_ifinfo into struct in6_ndireq
There is no functional change here, but we'd like to emphasize that the
nd_ifinfo structure is not a actually a kernel ND6 software context,
despite being actively used like this way, but an API/ABI structure for
ioctl(2). This should prevent from a ABI breakages like in 31ec8b6407.
This also is a step towards stopping using it as a kernel software
context.
Reviewed by: tuexen
Differential Revision: https://reviews.freebsd.org/D54722
This commit is contained in:
+22
-18
@@ -62,22 +62,6 @@ struct llentry;
|
||||
#define ND6_IS_LLINFO_PROBREACH(n) ((n)->ln_state > ND6_LLINFO_INCOMPLETE)
|
||||
#define ND6_LLINFO_PERMANENT(n) (((n)->la_expire == 0) && ((n)->ln_state > ND6_LLINFO_INCOMPLETE))
|
||||
|
||||
struct nd_ifinfo {
|
||||
u_int32_t linkmtu; /* LinkMTU */
|
||||
u_int32_t maxmtu; /* Upper bound of LinkMTU */
|
||||
u_int32_t basereachable; /* BaseReachableTime */
|
||||
u_int32_t reachable; /* Reachable Time */
|
||||
u_int32_t retrans; /* Retrans Timer */
|
||||
u_int32_t flags; /* Flags */
|
||||
int recalctm; /* BaseReacable re-calculation timer */
|
||||
u_int8_t chlim; /* CurHopLimit */
|
||||
u_int8_t initialized; /* Flag to see the entry is initialized */
|
||||
/* the following 3 members are for privacy extension for addrconf */
|
||||
u_int8_t randomseed0[8]; /* upper 64 bits of MD5 digest */
|
||||
u_int8_t randomseed1[8]; /* lower 64 bits (usually the EUI64 IFID) */
|
||||
u_int8_t randomid[8]; /* current random ID */
|
||||
};
|
||||
|
||||
#define ND6_IFF_PERFORMNUD 0x1
|
||||
#define ND6_IFF_ACCEPT_RTADV 0x2
|
||||
#define ND6_IFF_PREFER_SOURCE 0x4 /* Not used in FreeBSD. */
|
||||
@@ -139,9 +123,29 @@ struct in6_prefix {
|
||||
/* struct sockaddr_in6 advrtr[] */
|
||||
};
|
||||
|
||||
struct in6_ndireq {
|
||||
struct in6_ndireq {
|
||||
char ifname[IFNAMSIZ];
|
||||
struct nd_ifinfo ndi;
|
||||
struct nd_ifinfo {
|
||||
uint32_t linkmtu; /* LinkMTU */
|
||||
uint32_t maxmtu; /* Upper bound of LinkMTU */
|
||||
uint32_t basereachable; /* BaseReachableTime */
|
||||
uint32_t reachable; /* Reachable Time */
|
||||
uint32_t retrans; /* Retrans Timer */
|
||||
uint32_t flags; /* Flags */
|
||||
int recalctm; /* BaseReacable re-calculation timer */
|
||||
uint8_t chlim; /* CurHopLimit */
|
||||
/*
|
||||
* The below members are not used. They came from KAME and
|
||||
* are hanging around to preserve ABI compatibility of the
|
||||
* SIOCGIFINFO_IN6 ioctl.
|
||||
* The original comment documented the random* members as a
|
||||
* privacy extension for addrconf.
|
||||
*/
|
||||
uint8_t initialized; /* compat: always 1 */
|
||||
uint8_t randomseed0[8]; /* upper 64 bits of MD5 digest */
|
||||
uint8_t randomseed1[8]; /* lower 64 bits (the EUI64 IFID?) */
|
||||
uint8_t randomid[8]; /* current random ID */
|
||||
} ndi;
|
||||
};
|
||||
|
||||
struct in6_ndifreq {
|
||||
|
||||
Reference in New Issue
Block a user