MCPcopy Create free account
hub / github.com/F-Stack/f-stack / tcp_addrack

Function tcp_addrack

freebsd/netinet/tcp_stacks/rack.c:14895–14967  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14893static bool rack_mod_inited = false;
14894
14895static int
14896tcp_addrack(module_t mod, int32_t type, void *data)
14897{
14898 int32_t err = 0;
14899 int num_stacks;
14900
14901 switch (type) {
14902 case MOD_LOAD:
14903 rack_zone = uma_zcreate(__XSTRING(MODNAME) "_map",
14904 sizeof(struct rack_sendmap),
14905 rack_ctor, rack_dtor, NULL, NULL, UMA_ALIGN_PTR, 0);
14906
14907 rack_pcb_zone = uma_zcreate(__XSTRING(MODNAME) "_pcb",
14908 sizeof(struct tcp_rack),
14909 rack_ctor, NULL, NULL, NULL, UMA_ALIGN_CACHE, 0);
14910
14911 sysctl_ctx_init(&rack_sysctl_ctx);
14912 rack_sysctl_root = SYSCTL_ADD_NODE(&rack_sysctl_ctx,
14913 SYSCTL_STATIC_CHILDREN(_net_inet_tcp),
14914 OID_AUTO,
14915#ifdef STACKALIAS
14916 __XSTRING(STACKALIAS),
14917#else
14918 __XSTRING(STACKNAME),
14919#endif
14920 CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
14921 "");
14922 if (rack_sysctl_root == NULL) {
14923 printf("Failed to add sysctl node\n");
14924 err = EFAULT;
14925 goto free_uma;
14926 }
14927 rack_init_sysctls();
14928 num_stacks = nitems(rack_stack_names);
14929 err = register_tcp_functions_as_names(&__tcp_rack, M_WAITOK,
14930 rack_stack_names, &num_stacks);
14931 if (err) {
14932 printf("Failed to register %s stack name for "
14933 "%s module\n", rack_stack_names[num_stacks],
14934 __XSTRING(MODNAME));
14935 sysctl_ctx_free(&rack_sysctl_ctx);
14936free_uma:
14937 uma_zdestroy(rack_zone);
14938 uma_zdestroy(rack_pcb_zone);
14939 rack_counter_destroy();
14940 printf("Failed to register rack module -- err:%d\n", err);
14941 return (err);
14942 }
14943 tcp_lro_reg_mbufq();
14944 rack_mod_inited = true;
14945 break;
14946 case MOD_QUIESCE:
14947 err = deregister_tcp_functions(&__tcp_rack, true, false);
14948 break;
14949 case MOD_UNLOAD:
14950 err = deregister_tcp_functions(&__tcp_rack, false, true);
14951 if (err == EBUSY)
14952 break;

Callers

nothing calls this directly

Calls 11

uma_zcreateFunction · 0.85
sysctl_ctx_initFunction · 0.85
rack_init_sysctlsFunction · 0.85
sysctl_ctx_freeFunction · 0.85
uma_zdestroyFunction · 0.85
rack_counter_destroyFunction · 0.85
tcp_lro_reg_mbufqFunction · 0.85
deregister_tcp_functionsFunction · 0.85
tcp_lro_dereg_mbufqFunction · 0.85
printfFunction · 0.50

Tested by

no test coverage detected