Update RELEASE.NOTES for ircu2.10.12.
[ircu2.10.12-pk.git] / RELEASE.NOTES
1 Release notes for ircu2.10.12
2 Last updated: 13 Jan 2005
3 Written by Michael Poole <mdpoole@troilus.org>
4 Based on earlier documents by Kev <klmitch@mit.edu> and
5 Braden <dbtem@yahoo.com>.
6
7 This document briefly describes changes in ircu2.10.12 relative to
8 ircu2.10.11.  ircu2.10.12 is only compatible with servers that
9 implement the P10 protocol.  It has been tested to link against
10 ircu2.10.11, but some features (notably IPv6 support) are not
11 supported by ircu2.10.11.
12
13 Enhancements:
14
15 The configuration file format has changed to one that is easier to
16 read.  It is based on the configuration parser found in ircd-hybrid.
17 As usual, an example configuration file can be found in the doc
18 subdirectory.
19
20 ircu now supports IPv6 clients.  If your operating system provides
21 IPv6 socket support, ircu can accept connections on IPv6 addresses.
22 Even if your operating system does not support IPv6 sockets, you can
23 link (using IPv4) to a server that has IPv6 clients, and ircu will
24 treat the IPv6 clients correctly.
25
26 The DNS resolver has been replaced with a streamlined version (also
27 from ircd-hybrid) that avoids some of the complications from using
28 the full libresolv or adns libraries.
29
30 The server can query an IAUTH external authorization server.  The
31 protocol is described in doc/readme.iauth.  This allows an external
32 program to accept or reject any client that connects to the server
33 and allows that external program to assign an account stamp to the
34 incoming user.
35
36 A new feature called "oplevels" has been added.  It uses new channel
37 keys (+A for the administrator, +U for users) to grant chanop status
38 when you join using those keys.  Part of this channel protection is
39 that you cannot be deopped in channel by someone who you opped.
40
41 More than one hashing mechanism is now supported for oper passwords,
42 and a new tool (ircd/umkpasswd) is provided to generate them.
43
44 Clients may negotiate extensions and changes to the standard IRC
45 client protocol by using the CAP command during registration.  There
46 does not appear to be any documentation for the protocol, which should
47 not matter since ircu does not currently features that do anything.
48
49 Configuration Changes:
50
51 As mentioned above, the configuration file format has changed
52 radically.  Please consult doc/example.conf for details on the
53 new format.
54
55 Compile Time Options:
56
57 A listing of supported compile-time options may be seen by running
58 "./configure --help".  The defaults should be sane.  In particular,
59 you should NOT compile with --enable-debug or with --disable-symbols
60 on a production network.
61
62 Otherwise Undocumented Features:
63
64 Despite our preferences to keep these undocumented, they are
65 occasionally useful, and are described here for users who may
66 need them.
67
68 To enable these, you need to add them to CFLAGS prior to running
69 ./configure, usually as in: CFLAGS="-O2 -D<option>" ./configure
70
71 -DNICKLEN=20
72
73   This allows you change the maximum nick length from 15 to 20 (or
74 whatever number you use at the end).  It MUST be the same on all
75 servers on your network, or bad things will happen.  You should also
76 use the NICKLEN feature in ircd.conf.
77
78 -DNOTHROTTLE
79   This disables the throttling code.  This is used for debugging
80 *only*.  It lets you connect up to 255 clients from one host with no
81 time considerations.  If this is enabled on a production server Kev will
82 personally drive your server into the ground.  You have been warned.
83
84
85 Operating System and Kernel Requirements:
86
87 If you plan allowing more than 1000 clients on your server, you may
88 need to adjust your kernel resource limits for networking and
89 I/O. There are two things you will need to pay particular attention
90 to, the number of file descriptors available and the number of buffers
91 the kernel has available to read and write data to the file
92 descriptors.
93
94 To calculate kernel buffer requirements a good place to start is to
95 multiply the expected number connections expected on the machine by
96 the amount of data we buffer for each connection.  Doubling the result
97 of the above calculation and dividing it by the size of the buffers
98 the kernel uses for I/O should give you a starting place.
99
100 The server uses 2K kernel buffers for clients, and 64K kernel buffers
101 for servers (actual use may be somewhat higher).
102
103 c_count - number of clients expected
104 c_q     - number of bytes buffered for each client
105 s_count - number of servers expected
106 s_q     - number of bytes buffered for each server
107
108 buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size
109
110 If the client count is 2000 and the server count is 1 (normal leaf)
111 and your server uses 2K as an I/O buffer size:
112
113 You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum of 4064
114 buffers available, if the kernel uses 512 byte buffers you will need a
115 minimum of 16256 kernel buffers.
116
117 These settings may be a bit light for net-breaks under full client
118 load you will need to experiment a bit to find the right settings for
119 your server.
120
121 FreeBSD --WildThang
122
123 You may want to increase your kernel resources if you want to put a
124 lot of clients on your machine here are a few values to start with:
125
126 CHILD_MAX=4096
127 OPEN_MAX=4096
128 FD_SETSIZE=4096
129 NMBCLUSTERS=8096
130
131 If you have trouble connecting *out* from your machine try:
132  sysctl -w net.inet.ip.portrange.last=10000
133
134 Solaris 2.6  --Tar
135
136 Increase the default hard limit for file descriptors in /etc/system:
137
138 set rlim_fd_max = 4096
139
140 The server will raise the soft limit to the hard limit.
141
142 Linux 2.2 -- [Tri]/Isomer
143
144 The kernel has a kernel destination cache size of 4096.  If the kernel
145 sees more than 4096 IP's in 60s it warns 'dst cache overflow'.  This
146 limit can be changed by modifying /proc/sys/net/ipv4/route/max_size.
147
148 A patch to select is also recommended if you have regular poll/select
149 errors.