| 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 9.4 |