📄 ip6_var.h
字号:
u_quad_t ip6s_fragtimeout; /* fragments timed out */ u_quad_t ip6s_fragoverflow; /* fragments that exceeded limit */ u_quad_t ip6s_forward; /* packets forwarded */ u_quad_t ip6s_cantforward; /* packets rcvd for unreachable dest */ u_quad_t ip6s_redirectsent; /* packets forwarded on same net */ u_quad_t ip6s_delivered; /* datagrams delivered to upper level*/ u_quad_t ip6s_localout; /* total ip packets generated here */ u_quad_t ip6s_odropped; /* lost packets due to nobufs, etc. */ u_quad_t ip6s_reassembled; /* total packets reassembled ok */ u_quad_t ip6s_fragmented; /* datagrams successfully fragmented */ u_quad_t ip6s_ofragments; /* output fragments created */ u_quad_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ u_quad_t ip6s_badoptions; /* error in option processing */ u_quad_t ip6s_noroute; /* packets discarded due to no route */ u_quad_t ip6s_badvers; /* ip6 version != 6 */ u_quad_t ip6s_rawout; /* total raw ip packets generated */ u_quad_t ip6s_badscope; /* scope error */ u_quad_t ip6s_notmember; /* don't join this multicast group */ u_quad_t ip6s_nxthist[256]; /* next header history */ u_quad_t ip6s_m1; /* one mbuf */ u_quad_t ip6s_m2m[32]; /* two or more mbuf */ u_quad_t ip6s_mext1; /* one ext mbuf */ u_quad_t ip6s_mext2m; /* two or more ext mbuf */ u_quad_t ip6s_exthdrtoolong; /* ext hdr are not continuous */ u_quad_t ip6s_nogif; /* no match gif found */ u_quad_t ip6s_toomanyhdr; /* discarded due to too many headers */ /* * statistics for improvement of the source address selection * algorithm: * XXX: hardcoded 16 = # of ip6 multicast scope types + 1 */ /* number of times that address selection fails */ u_quad_t ip6s_sources_none; /* number of times that an address on the outgoing I/F is chosen */ u_quad_t ip6s_sources_sameif[16]; /* number of times that an address on a non-outgoing I/F is chosen */ u_quad_t ip6s_sources_otherif[16]; /* * number of times that an address that has the same scope * from the destination is chosen. */ u_quad_t ip6s_sources_samescope[16]; /* * number of times that an address that has a different scope * from the destination is chosen. */ u_quad_t ip6s_sources_otherscope[16]; /* number of times that a deprecated address is chosen */ u_quad_t ip6s_sources_deprecated[16]; u_quad_t ip6s_forward_cachehit; u_quad_t ip6s_forward_cachemiss; /* number of times that each rule of source selection is applied. */ u_quad_t ip6s_sources_rule[16];};#ifdef _WRS_KERNEL/* * IPv6 onion peeling state. * it will be initialized when we come into ip6_input(). * XXX do not make it a kitchen sink! */struct ip6aux { u_int32_t ip6a_flags;#define IP6A_SWAP 0x01 /* swapped home/care-of on packet */#define IP6A_HASEEN 0x02 /* HA was present */#define IP6A_BRUID 0x04 /* BR Unique Identifier was present */#define IP6A_RTALERTSEEN 0x08 /* rtalert present */#define IP6A_ROUTEOPTIMIZED 0x10 /* route optimized packet */#define IP6A_NOTUSEBC 0x20 /* do not requrie to lookup BC */#define IP6A_TEMP_PROXYND_DEL 0x40 /* Marking for resuming proxy nd entry after sending sepcial BA */ /* ip6.ip6_src */ struct in6_addr ip6a_coa; /* care of address of the peer */ /* ip6.ip6_dst */ struct in6_ifaddr *ip6a_dstia6; /* my ifaddr that matches ip6_dst */ /* rtalert */ u_int16_t ip6a_rtalert; /* rtalert option value */ /* * decapsulation history will be here. * with IPsec it may not be accurate. */};/* flags passed to ip6_output as last parameter */#define IPV6_UNSPECSRC 0x01 /* allow :: as the source address */#define IPV6_FORWARDING 0x02 /* most of IPv6 header exists */#define IPV6_MINMTU 0x04 /* use minimum MTU (IPV6_USE_MIN_MTU) */#define IPV6_MLDSEND 0x08 /* the following is no longer used. To set the don't fragment option, use * the IP6PO_DONTFRAG */#if 0 #define IPV6_DONTFRAG 0x08 /* Dont fragment - for tunnelLib */#endif#ifndef VIRTUAL_STACKextern struct ip6stat _ip6stat; /* statistics */extern u_int32_t ip6_id; /* fragment identifier */extern int ip6_defhlim; /* default hop limit */extern int ip6_defmcasthlim; /* default multicast hop limit */extern int ip6_forwarding; /* act as router? */extern int ip6_gif_hlim; /* Hop limit for gif encap packet */extern int ip6_sendredirect; /* send ICMPv6 redirect? */extern int ip6_forward_srcrt; /* forward src-routed? */extern int ip6_use_deprecated; /* allow deprecated addr as source */extern int ip6_rr_prune; /* router renumbering prefix * walk list every 5 sec. */extern int ip6_mcast_pmtu; /* enable pMTU discovery for multicast? */extern int ip6_v6only;extern struct socket *ip6_mrouter; /* multicast routing daemon */extern int ip6_sendredirects; /* send IP redirects when forwarding? */extern int ip6_maxfragpackets; /* Maximum packets in reassembly queue */extern int ip6_maxfrags; /* Maximum fragments in reassembly queue */extern int ip6_sourcecheck; /* Verify source interface */extern int ip6_sourcecheck_interval; /* Interval between log messages */extern int ip6_accept_rtadv; /* Acts as a host not a router */extern int ip6_keepfaith; /* Firewall Aided Internet Translator */extern int ip6_log_interval;extern time_t ip6_log_time;extern int ip6_hdrnestlimit; /* upper limit of # of extension headers */extern int ip6_dad_count; /* DupAddrDetectionTransmits */extern u_int32_t ip6_flow_seq;extern int ip6_auto_flowlabel;extern int ip6_auto_linklocal;extern int ip6_use_tempaddr; /* whether to use temporary addresses. */extern int ip6_prefer_tempaddr;extern int ip6_use_defzone; /* whether to use the default scope zone when unspecified */extern int mldmaxsrcfilter; /* maximum num .of msf per interface */extern int mldsomaxsrc; /* maximum num .of msf per socket */extern int mldversion; #endif /* VIRTUAL_STACK */extern int ip6_anonportmin; /* minimum ephemeral port */extern int ip6_anonportmax; /* maximum ephemeral port */extern int ip6_lowportmin; /* minimum reserved port */extern int ip6_lowportmax; /* maximum reserved port */extern struct pr_usrreqs rip6_usrreqs;struct sockopt;struct inpcb;int icmp6_ctloutput __P((struct socket *, struct sockopt *sopt));struct in6_ifaddr;void ip6_init __P((void));void ip6intr __P((void));void ip6_input __P((struct mbuf *));struct in6_ifaddr *ip6_getdstifaddr __P((struct mbuf *));void ip6_freepcbopts __P((struct ip6_pktopts *));void ip6_freemoptions __P((struct ip6_moptions *));int ip6_unknown_opt __P((u_int8_t *, struct mbuf *, int));char * ip6_get_prevhdr __P((struct mbuf *, int));int ip6_nexthdr __P((struct mbuf *, int, int, int *));int ip6_lasthdr __P((struct mbuf *, int, int, int *));struct mbuf *ip6_addaux __P((struct mbuf *));struct mbuf *ip6_findaux __P((struct mbuf *));void ip6_delaux __P((struct mbuf *));int ip6_mforward __P((struct ip6_hdr *, struct ifnet *, struct mbuf *));int ip6_process_hopopts __P((struct mbuf *, u_int8_t *, int, u_int32_t *, u_int32_t *));void ip6_savecontrol __P((struct inpcb *, struct mbuf *, struct mbuf **));void ip6_notify_pmtu __P((struct inpcb *, struct sockaddr_in6 *, u_int32_t *));int ip6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));void ip6_forward __P((struct mbuf *, int));void ip6_mloopback __P((struct ifnet *, struct mbuf *, struct sockaddr_in6 *));int ip6_output __P((struct mbuf *, struct ip6_pktopts *, struct route_in6 *, int, struct ip6_moptions *, struct ifnet **));int ip6_ctloutput __P((struct socket *, struct sockopt *sopt));int ip6_raw_ctloutput __P((struct socket *, struct sockopt *));void ip6_initpktopts __P((struct ip6_pktopts *));int ip6_setpktopts __P((struct mbuf *, struct ip6_pktopts *, struct ip6_pktopts *, int, int));void ip6_clearpktopts __P((struct ip6_pktopts *, int));struct ip6_pktopts *ip6_copypktopts __P((struct ip6_pktopts *, int));int ip6_optlen __P((struct inpcb *));int route6_input __P((struct mbuf **, int *, int));void frag6_init __P((void));int frag6_input __P((struct mbuf **, int *, int));void frag6_slowtimo __P((void));void frag6_drain __P((void));int rip6_input __P((struct mbuf **, int *, int));void rip6_ctlinput __P((int, struct sockaddr *, void *));int rip6_ctloutput __P((struct socket *, struct sockopt *));int rip6_output __P((struct mbuf *, ...));int rip6_usrreq __P((struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct proc *));int dest6_input __P((struct mbuf **, int *, int));#ifdef MIP6int dest6_mip6_hao __P((struct mbuf *, int, int));int mip6_input __P((struct mbuf **, int *, int));#endifstruct in6_addr *in6_selectsrc __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct in6_addr *, struct ifnet **, int *));int in6_selectroute __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct ifnet **, struct rtentry **, int));u_int32_t ip6_randomid __P((void));u_int32_t ip6_randomflowlabel __P((void));#endif /* _WRS_KERNEL */#ifdef __cplusplus}#endif #endif /* !_NETINET6_IP6_VAR_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -