📄 vsip.h
字号:
/* vsIp.h - virtual stack data for IP *//* * Copyright (c) 2000-2005 Wind River Systems, Inc. * * The right to copy, distribute or otherwise make use of this software * may be licensed only pursuant to the terms of an applicable Wind River * license agreement. No license to Wind River intellectual property rights * is granted herein. All rights not licensed by Wind River are reserved * by Wind River. *//*modification history--------------------01w,15aug05,dlk Port reassembly improvements from FreeBSD/Kame. Removed priv_ip_nfragpackets and priv_ip_maxfragpackets, added priv_maxfragsperpacket;01v,25jun05,dlk Added ipintrq, ipintrqJob for loopback.01u,27apr05,kch Move ip_mrouter definition here from VS_IP_MROUTE.01t,02mar05,niq Make router alert support scalable01s,25feb05,niq Add support for router alert01r,31jan05,niq merge mroute changes from comp_wn_ipv6_multicast_interim-dev branch (ver 1)01q,20jan05,sar Removal of divert, dummynet and fw code.01p,13sep04,vvv renamed icmpErrorLen to fix sysctl/virtual stack issue (SPR #91565)01o,23jun04,sar Added rate filter for completeness01n,28may04,niq Merging from base6 label POST_ITER5_FRZ16_REBASE (ver /main/vdt/base6_itn5_networking-int/1)01m,11may04,sar Added fields for IPFW routines01l,21feb04,dlk Rename _icmperr_mcopy to icmperr_mcopy.01k,11feb04,dlk Added _icmperr_mcopy.01j,11nov03,cdw Removal of unnecessary _KERNEL guards.01i,10nov03,rlm 2nd pass of include update for header re-org.01h,05nov03,cdw Removal of unnecessary _KERNEL guards.01g,04nov03,rlm Ran batch header path update for header re-org.01f,03nov03,rlm Removed wrn/coreip/ prefix from #includes for header re-org.01e,07mar03,spm fixed VS support after merge from CLARINET-1_1-KAME-UPDATE01d,11dec02,sar Virtualize the external hooks01c,02sep02,vlk added proxyBroadcastHook variable01b,26aug02,kal moved some to VS_NET_CORE01a,20jun02,ant taken from from synth*/#ifndef __INCvsIph#define __INCvsIph/* includes */#include <net/socketvar.h>#include <sys/socket.h>#include <netinet/in_systm.h>#include <netinet/in.h>#include <netinet/in_var.h>#include <netinet/ip.h>#include <netinet/ip_var.h>#include <netinet/ip_flow.h>#include <netinet/ipprotosw.h>#include <netinet/in_pcb.h>#include <netLib.h>#include <net/domain.h>#include <netinet/ip4_ext_in.h>#include <netinet/ip4_ext_out.h>#include <time.h>#include <netinet/ipfw.h>LIST_HEAD(in_multihead, in_multi);TAILQ_HEAD(in_ifaddrhead, in_ifaddr);/* defines *//* typedefs */typedef struct vs_ip_global_data { /* definitions from in.c */ int priv_subnetsarelocal; struct in_multihead _in_multihead; int priv_in_interfaces; /* definitions from in_pcb.c */ int ipport_lowfirstauto; int ipport_lowlastauto; int ipport_firstauto; int ipport_lastauto; int ipport_hifirstauto; int ipport_hilastauto; /* definitions from in_proto.c */ struct domain inetdomain; /* definitions from in_rmx.c */ int priv_rtq_reallyold; int priv_rtq_minreallyold; int priv_rtq_toomany; int priv_rtq_timeout; time_t priv_last_adjusted_timeout; /* in_rtqtimo() */ void *priv_rtqTimerHandle; /* definitions from in_flow.c */ LIST_HEAD(ipflowhead, ipflow) priv_ipflows[IPFLOW_HASHSIZE]; int priv_ipflow_inuse; int priv_ipflow_active; /* definitions from ip_input.c */ int rsvp_on; int priv_ip_rsvp_on; /* * Removed ip_rsvpd as we support RSVP through the IP_ROUTER_ALERT option */ FUNCPTR proxyBroadcastHook; int ipforwarding; int priv_ipsendredirects; int ip_defttl; int priv_ip_dosourceroute; int priv_ip_acceptsourceroute; struct mbuf * icmperr_mcopy;#if 0 int ip_keepfaith;#endif int icmpErrorLength; int priv_ip_checkinterface;#ifdef DIAGNOSTIC int priv_ipprintfs;#endif u_char ip_protox[IPPROTO_MAX]; struct in_ifaddrhashhead *in_ifaddrhashtbl; u_long in_ifaddrhmask; int priv_ipqmaxlen; struct in_ifaddrhead _in_ifaddrhead; struct ipstat _ipstat; struct ipq priv_ipq[IPREASS_NHASH]; int priv_nipq; int priv_maxnipq; int priv_maxfragsperpacket;#ifdef IPSTEALTH int priv_ipstealth;#endif /* from intrq.c */ struct ifqueue ipintrq; INTRQ_QJOB ipintrqJob; int priv_ip_nhops; struct ip_srcrt { struct in_addr dst; char nop; char srcopt[IPOPT_OFFSET + 1]; struct in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)]; } priv_ip_srcrt; struct sockaddr_in priv_ipaddr; struct route ipforward_rt; /* external hooks from ip_input.c */ INPUT_HOOK_IPV4_FUNCPTR ipFilterHook; IPSEC_FILTER_HOOK_FUNCPTR ipsecFilterHook; IPSEC_INPUT_FUNCPTR ipsecInput; /* PROXY_BROADCAST_FUNCPTR proxyBroadcastHook;*/ MCAST_ROUTE_FWD_FUNCPTR mCastRouteFwdHook; FUNCPTR _mCastRouteCmdHook; /* external hook from sizing.c */ SIZING_ROUTINE_FUNCPTR ipsecSizing; /* definitions from ip_output.c */ u_short _ip_id; struct route priv_sro_fwd; /* ip_output() */ /* external hooks from ip_output.c */ IPSEC_OUTPUT_FUNCPTR ipsecOutput; /* definitions from raw_ip.c */ struct inpcbhead ripcb; struct inpcbinfo ripcbinfo; struct sockaddr_in priv_ripsrc; u_long rip_sendspace; u_long rip_recvspace;#ifdef ROUTER_ALERT struct ralcb_list_head _ralcb_list;#endif /* ROUTER_ALERT */#ifdef INCLUDE_IPFW_HOOKS /* external hooks from ipfw_var.c, these are for ip_input.c and ip_output.c */ int ipfw_serial; ipfw_anchor_t ipfw_preinput; ipfw_anchor_t ipfw_input; ipfw_anchor_t ipfw_forward; ipfw_anchor_t ipfw_output; ipfw_anchor_t ipfw_call; ipfw_anchor_t ipfw_rate; /* push points for the ipfw code, from ipfw_var.c */ ipfw_type_t ipfw_types[IPFW_MAX_PUSH_POINTS];#endif /* INCLUDE_IPFW_HOOKS */ /* multicast routing daemon */ struct socket *ip_mrouter; } VS_IP;/* macros */#define VS_IP_DATA ((VS_IP *)vsTbl[myStackNum]->pIpGlobals)/* definitions from in.c */#define _in_multihead VS_IP_DATA->_in_multihead/* definitions from in_pcb.c */#define ipport_lowfirstauto VS_IP_DATA->ipport_lowfirstauto#define ipport_lowlastauto VS_IP_DATA->ipport_lowlastauto#define ipport_firstauto VS_IP_DATA->ipport_firstauto#define ipport_lastauto VS_IP_DATA->ipport_lastauto#define ipport_hifirstauto VS_IP_DATA->ipport_hifirstauto#define ipport_hilastauto VS_IP_DATA->ipport_hilastauto/* definitions from in_proto.c */#define inetdomain VS_IP_DATA->inetdomain/* definitions from in_rmx.c *//* definitions from in_flow.c *//* definitions from ip_input.c */#define ipforward_rt VS_IP_DATA->ipforward_rt#define rsvp_on VS_IP_DATA->rsvp_on#define ipforwarding VS_IP_DATA->ipforwarding#define proxyBroadcastHook VS_IP_DATA->proxyBroadcastHook#define ip_defttl VS_IP_DATA->ip_defttl#define icmpErrorLength VS_IP_DATA->icmpErrorLength#define ip_protox VS_IP_DATA->ip_protox#define in_ifaddrhashtbl VS_IP_DATA->in_ifaddrhashtbl#define in_ifaddrhmask VS_IP_DATA->in_ifaddrhmask#define icmperr_mcopy VS_IP_DATA->icmperr_mcopy#define _in_ifaddrhead VS_IP_DATA->_in_ifaddrhead#define _ipstat VS_IP_DATA->_ipstat#define ip_mrouter VS_IP_DATA->ip_mrouter/* external hooks from ip_input.c */#define _ipFilterHook VS_IP_DATA->ipFilterHook#define _ipsecFilterHook VS_IP_DATA->ipsecFilterHook#define _ipsecInput VS_IP_DATA->ipsecInput#define proxyBroadcastHook VS_IP_DATA->proxyBroadcastHook#define mCastRouteFwdHook VS_IP_DATA->mCastRouteFwdHook#define _mCastRouteCmdHook VS_IP_DATA->_mCastRouteCmdHook#define SET_IPFILTERHOOK(foo) (VS_IP_DATA->ipFilterHook = foo)#define SET_IPSECFILTERHOOK(foo) (VS_IP_DATA->ipsecFilterHook = foo)#define SET_IPSECINPUT(foo) (VS_IP_DATA->ipsecInput = foo)#define SET_PROXYBROADCASTHOOK(foo)(VS_IP_DATA->proxyBroadcastHook = foo)#define SET_MCASTROUTEFWDHOOK(foo) (mCastRouteFwdHook = foo)/* and for backwards compatibility in ip_input.c */#define _func_ipsecFilterHook VS_IP_DATA->ipsecFilterHook#define _func_ipsecInput VS_IP_DATA->ipsecInput/* from intrq.c (loopback) */#define ipintrq VS_IP_DATA->ipintrq#define ipintrqJob VS_IP_DATA->ipintrqJob/* external hook from sizing.c */#define _ipsecSizing VS_IP_DATA->ipsecSizing#define SET_IPSECSIZING(foo) (VS_IP_DATA->ipsecSizing = foo)/* definitions from ip_output.c */#define _ip_id VS_IP_DATA->_ip_id/* external hooks from ip_output.c */#define _ipsecOutput VS_IP_DATA->ipsecOutput#define SET_IPSECOUTPUT(foo) (VS_IP_DATA->ipsecOutput = foo)/* definitions from raw_ip.c */#define ripcb VS_IP_DATA->ripcb#define ripcbinfo VS_IP_DATA->ripcbinfo#define rip_sendspace VS_IP_DATA->rip_sendspace#define rip_recvspace VS_IP_DATA->rip_recvspace#ifdef ROUTER_ALERT#define ralcb_list VS_IP_DATA->_ralcb_list#endif /* ROUTER_ALERT *//* definitions from ipfw_var.c */#define ipfw_serial VS_IP_DATA->ipfw_serial#define ipfw_preinput VS_IP_DATA->ipfw_preinput#define ipfw_input VS_IP_DATA->ipfw_input#define ipfw_forward VS_IP_DATA->ipfw_forward#define ipfw_output VS_IP_DATA->ipfw_output#define ipfw_call VS_IP_DATA->ipfw_call#define ipfw_rate VS_IP_DATA->ipfw_rate#define ipfw_types VS_IP_DATA->ipfw_types#endif /* __INCvsIph */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -