version 1.290, 2010/11/05 00:21:51 |
version 1.293.2.1, 2011/06/06 09:09:55 |
Line 221 int ip_checkinterface = 0; |
|
Line 221 int ip_checkinterface = 0; |
|
|
|
struct rttimer_queue *ip_mtudisc_timeout_q = NULL; |
struct rttimer_queue *ip_mtudisc_timeout_q = NULL; |
|
|
int ipqmaxlen = IFQ_MAXLEN; |
|
u_long in_ifaddrhash; /* size of hash table - 1 */ |
u_long in_ifaddrhash; /* size of hash table - 1 */ |
int in_ifaddrentries; /* total number of addrs */ |
int in_ifaddrentries; /* total number of addrs */ |
struct in_ifaddrhead in_ifaddrhead; |
struct in_ifaddrhead in_ifaddrhead; |
Line 231 int in_multientries; /* total number o |
|
Line 230 int in_multientries; /* total number o |
|
struct in_multihashhead *in_multihashtbl; |
struct in_multihashhead *in_multihashtbl; |
struct ifqueue ipintrq; |
struct ifqueue ipintrq; |
|
|
|
ipid_state_t * ip_ids; |
uint16_t ip_id; |
uint16_t ip_id; |
|
|
percpu_t *ipstat_percpu; |
percpu_t *ipstat_percpu; |
Line 278 static struct ip_srcrt { |
|
Line 278 static struct ip_srcrt { |
|
struct in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)]; |
struct in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)]; |
} ip_srcrt; |
} ip_srcrt; |
|
|
|
static int ip_drainwanted; |
|
|
static void save_rte(u_char *, struct in_addr); |
static void save_rte(u_char *, struct in_addr); |
|
|
#ifdef MBUFTRACE |
#ifdef MBUFTRACE |
|
|
|
|
ip_reass_init(); |
ip_reass_init(); |
|
|
ip_initid(); |
ip_ids = ip_id_init(); |
ip_id = time_second & 0xfffff; |
ip_id = time_second & 0xfffff; |
|
|
ipintrq.ifq_maxlen = ipqmaxlen; |
ipintrq.ifq_maxlen = IFQ_MAXLEN; |
|
|
TAILQ_INIT(&in_ifaddrhead); |
TAILQ_INIT(&in_ifaddrhead); |
in_ifaddrhashtbl = hashinit(IN_IFADDR_HASH_SIZE, HASH_LIST, true, |
in_ifaddrhashtbl = hashinit(IN_IFADDR_HASH_SIZE, HASH_LIST, true, |
|
|
struct ifqueue lcl_intrq; |
struct ifqueue lcl_intrq; |
|
|
memset(&lcl_intrq, 0, sizeof(lcl_intrq)); |
memset(&lcl_intrq, 0, sizeof(lcl_intrq)); |
ipintrq.ifq_maxlen = ipqmaxlen; |
|
|
|
mutex_enter(softnet_lock); |
mutex_enter(softnet_lock); |
KERNEL_LOCK(1, NULL); |
KERNEL_LOCK(1, NULL); |
Line 1283 const int inetctlerrmap[PRC_NCMDS] = { |
|
Line 1284 const int inetctlerrmap[PRC_NCMDS] = { |
|
[PRC_PARAMPROB] = ENOPROTOOPT, |
[PRC_PARAMPROB] = ENOPROTOOPT, |
}; |
}; |
|
|
|
void |
|
ip_fasttimo(void) |
|
{ |
|
if (ip_drainwanted) { |
|
ip_drain(); |
|
ip_drainwanted = 0; |
|
} |
|
} |
|
|
|
void |
|
ip_drainstub(void) |
|
{ |
|
ip_drainwanted = 1; |
|
} |
|
|
/* |
/* |
* Forward a packet. If some error occurs return the sender |
* Forward a packet. If some error occurs return the sender |
* an icmp packet. Note we can't always generate a meaningful |
* an icmp packet. Note we can't always generate a meaningful |