Author: Bleep <tomh@inxpress.net>
[ircu2.10.12-pk.git] / RELEASE.NOTES
1 Release Notes for ircu2.10.10
2
3 This is a brief description of the changes we have made to the server
4 since the release of ircu2.10.07.
5
6 This is the first Undernet server that is fully P10, it is no longer
7 compatible with older P9 only servers. The server has been verified
8 to be compatible with Undernet server versions 2.10.06 and above.
9
10 Enhancements:
11 All server to server communications use tokenization and numeric id's,
12 this reduces the bandwidth requirements approximately 10-20%.
13
14 Much of the network code has been rewritten and many old bugs relating
15 to the networking core of the server have been fixed.
16
17 The port handling code has been rewritten to allow much better control
18 over listeners.
19
20 The server supports extended numerics which theoretically would allow
21 the entire population of the planet to participate on a network without
22 running out of unique values.
23
24 Added ISUPPORT messages on client connects to allow client coders to
25 detect network specific enhancements to the client protocol.
26
27 Server aliasing and virtual hosting (port forwarding) are available for
28 larger DoS attack prone networks. This will be improved in the next
29 release.
30
31 Status messages are sent to connecting clients so connections don't
32 seem to hang during client registration.
33
34 The server now uses a bit less memory and cpu under full load, we
35 estimate around a 10% improvement in resource usage over the previous
36 version.
37
38 Configuration Changes:
39 Please read example.conf in the doc directory for detailed information
40 on various configuration options.
41 Virtual host IP addresses are now in the password field of the server M:line,
42 there is no longer a command line option for specifying them. This is the
43 address the server will bind to for all outgoing server to server connections.
44 The port field of the server M:line is no longer used and is ignored when
45 the server reads the configuration file, server ports are now specified
46 only on P:lines.
47 The server ignores N:lines, C:lines are used for all connect server
48 information now. This means that the passwords for both sides of the
49 connection must match, this change does not degrade server connection
50 security of the existing protocol.
51 There are several new configuration options for P:lines (listener ports).
52
53 Compile Time Options:
54 If you are planning on hosting more than 1000 clients on your server
55 we recommend that you do not turn on asserts and heap checking or
56 debug messages. This is known to cause problems.
57 There are several new compile time options that you will automatically
58 be prompted for when you configure the server which should be self
59 explanitory.
60
61 Undocumented Features:
62 Every Undernet server released has had at least one undocumented
63 feature ;-) Here are a few of the ones available in ircu2.10.10.
64 I'm sure there are a few more we are unaware of, these are the ones
65 we know about.
66 To enable these you need to add them to the extra CFLAGS when you
67 run make config.
68 -DEXTENDED_NUMERICS This option configures the server to send
69 extended numerics as well as parse them. This option should only
70 be used on networks that run ircu2.10.07 and above only.
71 -DFERGUSON_FLUSHER If you have a server with a lot of resources
72 available this option will cause the server to attempt to flush
73 it's internal buffers before dropping clients during a netbreak.
74 Don't define this if you don't know, if you're not careful this
75 can end up rebooting FreeBSD boxes.
76 -DWALLOPS_OPER_ONLY Setting this option removes the ability for
77 clients that are not opered to see wallops messages.
78
79 Operating System and Kernel Requirements:
80 If you plan allowing more than 1000 clients on your server, you
81 may need to adjust your kernel resource limits for networking
82 and I/O. There are two things you will need to pay particular
83 attention to, the number of file descriptors available and the
84 number of buffers the kernel has available to read and write
85 data to the file descriptors.
86
87 To calculate kernel buffer requirements a good place to start
88 is to multipy the expected number connections expected on the machine
89 by the amount of data we buffer for each connection.
90 Doubling the result of the above calculation and dividing it by the
91 size of the buffers the kernel uses for I/O should give you a starting
92 place.
93
94 The server uses 2K kernel buffers for clients, and 64K kernel
95 buffers for servers (actual use may be somewhat higher).
96
97 c_count - number of clients expected
98 c_q     - number of bytes buffered for each client
99 s_count - number of servers expected
100 s_q     - number of bytes buffered for each server
101
102 buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size
103
104 If the client count is 2000 and the server count is 1 (normal leaf)
105 and your server uses 2K as an I/O buffer size:
106
107 You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum
108 of 4064 buffers available, if the kernel uses 512 byte buffers you
109 will need a minimum of 16256 kernel buffers.
110
111 These settings may be a bit light for netbreaks under full client load
112 you will need to experiment a bit to find the right settings for your
113 server.
114
115 FreeBSD --WildThang
116 You may want to increase your kernel resources if you want to put
117 a lot of clients on your machine here are a few values to start with:
118 CHILD_MAX=4096
119 OPEN_MAX=4096
120 FD_SETSIZE=4096
121 NMBCLUSTERS=8096
122
123 Solaris 2.6  --Tar
124 Increase the default hard limit for file descriptors in /etc/system
125 set rlim_fd_max = 4096
126 The server will raise the soft limit to the hard limit.
127
128