📄 in6.h
字号:
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "pim6", CTLTYPE_NODE }, \
}
/*
* Names for IP sysctl objects
*/
#define IPV6CTL_FORWARDING 1 /* act as router */
#define IPV6CTL_SENDREDIRECTS 2 /* may send redirects when forwarding*/
#define IPV6CTL_DEFHLIM 3 /* default Hop-Limit */
#ifdef notyet
#define IPV6CTL_DEFMTU 4 /* default MTU */
#endif
#define IPV6CTL_FORWSRCRT 5 /* forward source-routed dgrams */
#define IPV6CTL_STATS 6 /* stats */
#define IPV6CTL_MRTSTATS 7 /* multicast forwarding stats */
#define IPV6CTL_MRTPROTO 8 /* multicast routing protocol */
#define IPV6CTL_MAXFRAGPACKETS 9 /* max packets reassembly queue */
#define IPV6CTL_SOURCECHECK 10 /* verify source route and intf */
#define IPV6CTL_SOURCECHECK_LOGINT 11 /* minimume logging interval */
#define IPV6CTL_ACCEPT_RTADV 12
#define IPV6CTL_KEEPFAITH 13
#define IPV6CTL_LOG_INTERVAL 14
#define IPV6CTL_HDRNESTLIMIT 15
#define IPV6CTL_DAD_COUNT 16
#define IPV6CTL_AUTO_FLOWLABEL 17
#define IPV6CTL_DEFMCASTHLIM 18
#define IPV6CTL_GIF_HLIM 19 /* default HLIM for gif encap packet */
#define IPV6CTL_KAME_VERSION 20
#define IPV6CTL_USE_DEPRECATED 21 /* use deprecated addr (RFC2462 5.5.4) */
#define IPV6CTL_RR_PRUNE 22 /* walk timer for router renumbering */
#if 0 /* obsolete */
#define IPV6CTL_MAPPED_ADDR 23
#endif
#define IPV6CTL_V6ONLY 24
#ifdef __FreeBSD__
#define IPV6CTL_RTEXPIRE 25 /* cloned route expiration time */
#define IPV6CTL_RTMINEXPIRE 26 /* min value for expiration time */
#define IPV6CTL_RTMAXCACHE 27 /* trigger level for dynamic expire */
#endif
#ifdef __NetBSD__
#define IPV6CTL_ANONPORTMIN 28 /* minimum ephemeral port */
#define IPV6CTL_ANONPORTMAX 29 /* maximum ephemeral port */
#define IPV6CTL_LOWPORTMIN 30 /* minimum reserved port */
#define IPV6CTL_LOWPORTMAX 31 /* maximum reserved port */
#endif
#define IPV6CTL_USETEMPADDR 32 /* use temporary addresses for
privacy extension */
#define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */
#define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */
#define IPV6CTL_AUTO_LINKLOCAL 35 /* automatic link-local addr assign */
#define IPV6CTL_RIP6STATS 36 /* raw_ip6 stats */
#define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */
#define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */
#define IPV6CTL_USE_DEFAULTZONE 39 /* use default scope zone */
/* New entries should be added here from current IPV6CTL_MAXID value. */
/* to define items, should talk with KAME guys first, for *BSD compatibility */
#define IPV6CTL_MAXID 40
#ifdef IPV6CTL_RTEXPIRE
#define __IPV6CTL_NAMES_RTEXPIRE "rtexpire"
#define __IPV6CTL_TYPE_RTEXPIRE CTLTYPE_INT
#define __IPV6CTL_VARS_RTEXPIRE 0 /* &rtq_reallyold */
#else
#define __IPV6CTL_NAMES_RTEXPIRE 0
#define __IPV6CTL_TYPE_RTEXPIRE 0
#define __IPV6CTL_VARS_RTEXPIRE 0
#endif
#ifdef IPV6CTL_RTMINEXPIRE
#define __IPV6CTL_NAMES_RTMINEXPIRE "minexpire"
#define __IPV6CTL_TYPE_RTMINEXPIRE CTLTYPE_INT
#define __IPV6CTL_VARS_RTMINEXPIRE 0 /* &rtq_minreallyold */
#else
#define __IPV6CTL_NAMES_RTMINEXPIRE 0
#define __IPV6CTL_TYPE_RTMINEXPIRE 0
#define __IPV6CTL_VARS_RTMINEXPIRE 0
#endif
#ifdef IPV6CTL_RTMAXCACHE
#define __IPV6CTL_NAMES_RTMAXCACHE "maxcache"
#define __IPV6CTL_TYPE_RTMAXCACHE CTLTYPE_INT
#define __IPV6CTL_VARS_RTMAXCACHE 0 /* &rtq_toomany */
#else
#define __IPV6CTL_NAMES_RTMAXCACHE 0
#define __IPV6CTL_TYPE_RTMAXCACHE 0
#define __IPV6CTL_VARS_RTMAXCACHE 0
#endif
#ifdef IPV6CTL_ANONPORTMIN
#define __IPV6CTL_NAMES_ANONPORTMIN "anonportmin"
#define __IPV6CTL_TYPE_ANONPORTMIN CTLTYPE_INT
#define __IPV6CTL_VARS_ANONPORTMIN 0
#else
#define __IPV6CTL_NAMES_ANONPORTMIN 0
#define __IPV6CTL_TYPE_ANONPORTMIN 0
#define __IPV6CTL_VARS_ANONPORTMIN 0
#endif
#ifdef IPV6CTL_ANONPORTMAX
#define __IPV6CTL_NAMES_ANONPORTMAX "anonportmax"
#define __IPV6CTL_TYPE_ANONPORTMAX CTLTYPE_INT
#define __IPV6CTL_VARS_ANONPORTMAX 0
#else
#define __IPV6CTL_NAMES_ANONPORTMAX 0
#define __IPV6CTL_TYPE_ANONPORTMAX 0
#define __IPV6CTL_VARS_ANONPORTMAX 0
#endif
#ifdef IPV6CTL_LOWPORTMIN
#define __IPV6CTL_NAMES_LOWPORTMIN "lowportmin"
#define __IPV6CTL_TYPE_LOWPORTMIN CTLTYPE_INT
#define __IPV6CTL_VARS_LOWPORTMIN 0
#else
#define __IPV6CTL_NAMES_LOWPORTMIN 0
#define __IPV6CTL_TYPE_LOWPORTMIN 0
#define __IPV6CTL_VARS_LOWPORTMIN 0
#endif
#ifdef IPV6CTL_LOWPORTMAX
#define __IPV6CTL_NAMES_LOWPORTMAX "lowportmax"
#define __IPV6CTL_TYPE_LOWPORTMAX CTLTYPE_INT
#define __IPV6CTL_VARS_LOWPORTMAX 0
#else
#define __IPV6CTL_NAMES_LOWPORTMAX 0
#define __IPV6CTL_TYPE_LOWPORTMAX 0
#define __IPV6CTL_VARS_LOWPORTMAX 0
#endif
#define IPV6CTL_NAMES { \
{ 0, 0 }, \
{ "forwarding", CTLTYPE_INT }, \
{ "redirect", CTLTYPE_INT }, \
{ "hlim", CTLTYPE_INT }, \
{ "mtu", CTLTYPE_INT }, \
{ "forwsrcrt", CTLTYPE_INT }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "mrtproto", CTLTYPE_INT }, \
{ "maxfragpackets", CTLTYPE_INT }, \
{ "sourcecheck", CTLTYPE_INT }, \
{ "sourcecheck_logint", CTLTYPE_INT }, \
{ "accept_rtadv", CTLTYPE_INT }, \
{ "keepfaith", CTLTYPE_INT }, \
{ "log_interval", CTLTYPE_INT }, \
{ "hdrnestlimit", CTLTYPE_INT }, \
{ "dad_count", CTLTYPE_INT }, \
{ "auto_flowlabel", CTLTYPE_INT }, \
{ "defmcasthlim", CTLTYPE_INT }, \
{ "gifhlim", CTLTYPE_INT }, \
{ "kame_version", CTLTYPE_STRING }, \
{ "use_deprecated", CTLTYPE_INT }, \
{ "rr_prune", CTLTYPE_INT }, \
{ 0, 0 }, \
{ "v6only", CTLTYPE_INT }, \
{ __IPV6CTL_NAMES_RTEXPIRE, __IPV6CTL_TYPE_RTEXPIRE }, \
{ __IPV6CTL_NAMES_RTMINEXPIRE, __IPV6CTL_TYPE_RTMINEXPIRE }, \
{ __IPV6CTL_NAMES_RTMAXCACHE, __IPV6CTL_TYPE_RTMAXCACHE }, \
{ __IPV6CTL_NAMES_ANONPORTMIN, __IPV6CTL_TYPE_ANONPORTMIN }, \
{ __IPV6CTL_NAMES_ANONPORTMAX, __IPV6CTL_TYPE_ANONPORTMAX }, \
{ __IPV6CTL_NAMES_LOWPORTMIN, __IPV6CTL_TYPE_LOWPORTMIN }, \
{ __IPV6CTL_NAMES_LOWPORTMAX, __IPV6CTL_TYPE_LOWPORTMAX }, \
{ "use_tempaddr", CTLTYPE_INT }, \
{ "temppltime", CTLTYPE_INT }, \
{ "tempvltime", CTLTYPE_INT }, \
{ "auto_linklocal", CTLTYPE_INT }, \
{ 0, 0 }, \
{ "prefer_tempaddr", CTLTYPE_INT }, \
{ 0, 0 }, \
{ "use_defaultzone", CTLTYPE_INT }, \
}
#ifdef __bsdi__
#define IPV6CTL_VARS { \
0, \
&ip6_forwarding, \
&ip6_sendredirects, \
&ip6_defhlim, \
0, \
&ip6_forward_srcrt, \
0, \
0, \
0, \
&ip6_maxfragpackets, \
&ip6_sourcecheck, \
&ip6_sourcecheck_interval, \
&ip6_accept_rtadv, \
&ip6_keepfaith, \
&ip6_log_interval, \
&ip6_hdrnestlimit, \
&ip6_dad_count, \
&ip6_auto_flowlabel, \
&ip6_defmcasthlim, \
&ip6_gif_hlim, \
0, \
&ip6_use_deprecated, \
&ip6_rr_prune, \
0, \
&ip6_v6only, \
__IPV6CTL_VARS_RTEXPIRE, \
__IPV6CTL_VARS_RTMINEXPIRE, \
__IPV6CTL_VARS_RTMAXCACHE, \
__IPV6CTL_VARS_ANONPORTMIN, \
__IPV6CTL_VARS_ANONPORTMAX, \
__IPV6CTL_VARS_LOWPORTMIN, \
__IPV6CTL_VARS_LOWPORTMAX, \
&ip6_use_tempaddr, \
&ip6_temp_preferred_lifetime, \
&ip6_temp_valid_lifetime, \
&ip6_auto_linklocal, \
0, \
&ip6_prefer_tempaddr, \
0, \
&ip6_use_defzone,\
}
#endif
#endif /* !_XOPEN_SOURCE */
/*
* Redefinition of mbuf flags
*/
#define M_AUTHIPHDR M_PROTO2
#define M_DECRYPTED M_PROTO3
#define M_LOOP M_PROTO4
#define M_AUTHIPDGM M_PROTO5
#ifdef _KERNEL
struct cmsghdr;
struct mbuf;
struct ifnet;
int in6_cksum __P((struct mbuf *, u_int8_t, u_int32_t, u_int32_t));
int in6_localaddr __P((struct in6_addr *));
int in6_addrscope __P((struct in6_addr *));
struct in6_ifaddr *in6_ifawithifp __P((struct ifnet *, struct in6_addr *));
extern void in6_if_up __P((struct ifnet *));
struct sockaddr;
void in6_sin6_2_sin __P((struct sockaddr_in *sin,
struct sockaddr_in6 *sin6));
void in6_sin_2_v4mapsin6 __P((struct sockaddr_in *sin,
struct sockaddr_in6 *sin6));
void in6_sin6_2_sin_in_sock __P((struct sockaddr *nam));
void in6_sin_2_v4mapsin6_in_sock __P((struct sockaddr **nam));
extern void addrsel_policy_init __P((void));
#define satosin6(sa) ((struct sockaddr_in6 *)(sa))
#define sin6tosa(sin6) ((struct sockaddr *)(sin6))
#define ifatoia6(ifa) ((struct in6_ifaddr *)(ifa))
#endif /* _KERNEL */
__BEGIN_DECLS
struct cmsghdr;
extern int inet6_option_space __P((int));
extern int inet6_option_init __P((void *, struct cmsghdr **, int));
extern int inet6_option_append __P((struct cmsghdr *, const u_int8_t *,
int, int));
extern u_int8_t *inet6_option_alloc __P((struct cmsghdr *, int, int, int));
extern int inet6_option_next __P((const struct cmsghdr *, u_int8_t **));
extern int inet6_option_find __P((const struct cmsghdr *, u_int8_t **, int));
extern size_t inet6_rthdr_space __P((int, int));
extern struct cmsghdr *inet6_rthdr_init __P((void *, int));
extern int inet6_rthdr_add __P((struct cmsghdr *, const struct in6_addr *,
unsigned int));
extern int inet6_rthdr_lasthop __P((struct cmsghdr *, unsigned int));
#if 0 /* not implemented yet */
extern int inet6_rthdr_reverse __P((const struct cmsghdr *, struct cmsghdr *));
#endif
extern int inet6_rthdr_segments __P((const struct cmsghdr *));
extern struct in6_addr *inet6_rthdr_getaddr __P((struct cmsghdr *, int));
extern int inet6_rthdr_getflags __P((const struct cmsghdr *, int));
extern int inet6_opt_init __P((void *, size_t));
extern int inet6_opt_append __P((void *, size_t, int, u_int8_t,
size_t, u_int8_t, void **));
extern int inet6_opt_finish __P((void *, size_t, int));
extern int inet6_opt_set_val __P((void *, size_t, void *, int));
extern int inet6_opt_next __P((void *, size_t, int, u_int8_t *,
size_t *, void **));
extern int inet6_opt_find __P((void *, size_t, int, u_int8_t,
size_t *, void **));
extern int inet6_opt_get_val __P((void *, size_t, void *, int));
extern size_t inet6_rth_space __P((int, int));
extern void *inet6_rth_init __P((void *, int, int, int));
extern int inet6_rth_add __P((void *, const struct in6_addr *));
extern int inet6_rth_reverse __P((const void *, void *));
extern int inet6_rth_segments __P((const void *));
extern struct in6_addr *inet6_rth_getaddr __P((const void *, int));
/* the followings two are experimental. should not merge them to *BSD. */
struct sockaddr; /* XXX */
extern int addr2scopetype __P((struct sockaddr *));
extern int inet_zoneid __P((int, int, char *, u_int32_t *));
__END_DECLS
#endif /* !_NETINET6_IN6_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -