V_tcp_fastopen_ccache
V_tcp_fastopen_ccache.secret);
ccb = &V_tcp_fastopen_ccache.base[hash & V_tcp_fastopen_ccache.mask];
if (ccb->ccb_num_entries < V_tcp_fastopen_ccache.bucket_limit)
cce = uma_zalloc(V_tcp_fastopen_ccache.zone, M_NOWAIT);
uma_zfree(V_tcp_fastopen_ccache.zone, cce);
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
ccb = &V_tcp_fastopen_ccache.base[i];
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
ccb = &V_tcp_fastopen_ccache.base[i];
&V_tcp_fastopen_ccache.bucket_limit);
if (V_tcp_fastopen_ccache.bucket_limit == 0)
V_tcp_fastopen_ccache.bucket_limit =
V_tcp_fastopen_ccache.buckets =
V_tcp_fastopen_ccache.buckets = V_tcp_fastopen_ccache_buckets;
V_tcp_fastopen_ccache.mask = V_tcp_fastopen_ccache.buckets - 1;
V_tcp_fastopen_ccache.secret = arc4random();
V_tcp_fastopen_ccache.base = malloc(V_tcp_fastopen_ccache.buckets *
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
TAILQ_INIT(&V_tcp_fastopen_ccache.base[i].ccb_entries);
mtx_init(&V_tcp_fastopen_ccache.base[i].ccb_mtx, "tfo_ccache_bucket",
V_tcp_fastopen_ccache.base[i].ccb_num_entries = 0;
V_tcp_fastopen_ccache.base[i].ccb_num_entries = -1;
V_tcp_fastopen_ccache.base[i].ccb_ccache = &V_tcp_fastopen_ccache;
V_tcp_fastopen_ccache.zone = uma_zcreate("tfo_ccache_entries",
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
ccb = &V_tcp_fastopen_ccache.base[i];
KASSERT(uma_zone_get_cur(V_tcp_fastopen_ccache.zone) == 0,
uma_zdestroy(V_tcp_fastopen_ccache.zone);
free(V_tcp_fastopen_ccache.base, M_TCP_FASTOPEN_CCACHE);
new = V_tcp_fastopen_ccache.bucket_limit;
if (new < V_tcp_fastopen_ccache.bucket_limit) {
for (i = 0; i < V_tcp_fastopen_ccache.buckets;
ccb = &V_tcp_fastopen_ccache.base[i];
V_tcp_fastopen_ccache.bucket_limit = new;
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
ccb = &V_tcp_fastopen_ccache.base[i];
for (i = 0; i < V_tcp_fastopen_ccache.buckets; i++) {
ccb = &V_tcp_fastopen_ccache.base[i];