Lines 650-662
tcp_init(void)
Link Here
|
650 |
hashsize); |
650 |
hashsize); |
651 |
} |
651 |
} |
652 |
in_pcbinfo_init(&V_tcbinfo, "tcp", &V_tcb, hashsize, hashsize, |
652 |
in_pcbinfo_init(&V_tcbinfo, "tcp", &V_tcb, hashsize, hashsize, |
653 |
"tcp_inpcb", tcp_inpcb_init, NULL, 0, IPI_HASHFIELDS_4TUPLE); |
653 |
"tcp_inpcb", tcp_inpcb_init, NULL, UMA_ZONE_NOFREE, |
|
|
654 |
IPI_HASHFIELDS_4TUPLE); |
654 |
|
655 |
|
655 |
/* |
656 |
/* |
656 |
* These have to be type stable for the benefit of the timers. |
657 |
* These have to be type stable for the benefit of the timers. |
657 |
*/ |
658 |
*/ |
658 |
V_tcpcb_zone = uma_zcreate("tcpcb", sizeof(struct tcpcb_mem), |
659 |
V_tcpcb_zone = uma_zcreate("tcpcb", sizeof(struct tcpcb_mem), |
659 |
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); |
660 |
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); |
660 |
uma_zone_set_max(V_tcpcb_zone, maxsockets); |
661 |
uma_zone_set_max(V_tcpcb_zone, maxsockets); |
661 |
uma_zone_set_warning(V_tcpcb_zone, "kern.ipc.maxsockets limit reached"); |
662 |
uma_zone_set_warning(V_tcpcb_zone, "kern.ipc.maxsockets limit reached"); |
662 |
|
663 |
|
Lines 666-672
tcp_init(void)
Link Here
|
666 |
|
667 |
|
667 |
TUNABLE_INT_FETCH("net.inet.tcp.sack.enable", &V_tcp_do_sack); |
668 |
TUNABLE_INT_FETCH("net.inet.tcp.sack.enable", &V_tcp_do_sack); |
668 |
V_sack_hole_zone = uma_zcreate("sackhole", sizeof(struct sackhole), |
669 |
V_sack_hole_zone = uma_zcreate("sackhole", sizeof(struct sackhole), |
669 |
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); |
670 |
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); |
670 |
|
671 |
|
671 |
/* Skip initialization of globals for non-default instances. */ |
672 |
/* Skip initialization of globals for non-default instances. */ |
672 |
if (!IS_DEFAULT_VNET(curvnet)) |
673 |
if (!IS_DEFAULT_VNET(curvnet)) |
673 |
- |
|
|