| TCP_CONGCTL(9) | Kernel Developer's Manual | TCP_CONGCTL(9) | 
tcp_congctl —
#include <netinet/tcp_congctl.h>
int
  
  tcp_congctl_register(const
    char *, struct
    tcp_congctl *);
int
  
  tcp_congctl_unregister(const
    char *);
tcp_congctrl API is used to add or remove TCP
  congestion control algorithms on-the-fly and to modularize them. It includes
  basically two functions:
tcp_congctl_register(const char
    *, struct tcp_congctl *)
struct tcp_congctl {
	int  (*fast_retransmit)(struct tcpcb *,
	    struct tcphdr *);
	void (*slow_retransmit)(struct tcpcb *);
	void (*fast_retransmit_newack)(struct tcpcb *,
	    struct tcphdr *);
	void (*newack)(struct tcpcb *,
	    struct tcphdr *);
	void (*cong_exp)(struct tcpcb *);
};
    
    tcp_congctl_unregister(const char
    *)tcp_congctl_register() and
  tcp_congctl_unregister() both return
  0 when there is no error. If the name is already
  registered, tcp_congctl_register() will return
  EEXIST.
  tcp_congctl_unregister() can return
  ENOENT if there is no congestion control algorithm by
  that name and can return EBUSY if the matched
  algorithm is being used by userspace applications.
| October 15, 2006 | NetBSD 10.0 |