| TCP_CONGCTL(9) | Kernel Developer's Manual | TCP_CONGCTL(9) |
tcp_congctl — TCP
congestion control API
#include
<netinet/tcp_congctl.h>
int
tcp_congctl_register(const
char *, struct
tcp_congctl *);
int
tcp_congctl_unregister(const
char *);
The 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.
Implementation is in sys/netinet/tcp_congctl.c and the interface is in sys/netinet/tcp_congctl.h.
| October 15, 2006 | NetBSD 11.0 |