Author: ZenShadow
[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 This causes your server to attempt to flush
72 it's internal buffers before dropping clients during a netbreak.
73 This option *may* panic your server - especially if your running
74 on a unconfigured FreeBSD box.  If you can define this we recommend
75 you do - but beware of spontanious reboots on netbreak.
76 -DWALLOPS_OPER_ONLY Setting this option removes the ability for
77 clients that are not opered to see wallops messages.
78 -DNOOPER Disallow the /oper command.
79
80 There are a few to be used for debugging or other networks.  These
81 should *NOT* be defined on the undernet production network.
82
83 -DNICKLEN=15 This allows you do override the default nick length
84 to 15 characters.  If this has different values on different servers
85 your network *WILL* fall apart.  Only use this option if you know
86 what your doing. If you don't, ask in #coder-com on undernet.
87 -DNO_THROTTLE This disables the throttling code.  This is used for
88 debugging *only*.  It lets you connect up to 255 clients from one
89 host with no time conciderations.  If this is enabled on a 
90 production server I will personally drive your server into the 
91 ground.  You have been warned.
92
93 Operating System and Kernel Requirements:
94 If you plan allowing more than 1000 clients on your server, you
95 may need to adjust your kernel resource limits for networking
96 and I/O. There are two things you will need to pay particular
97 attention to, the number of file descriptors available and the
98 number of buffers the kernel has available to read and write
99 data to the file descriptors.
100
101 To calculate kernel buffer requirements a good place to start
102 is to multipy the expected number connections expected on the machine
103 by the amount of data we buffer for each connection.
104 Doubling the result of the above calculation and dividing it by the
105 size of the buffers the kernel uses for I/O should give you a starting
106 place.
107
108 The server uses 2K kernel buffers for clients, and 64K kernel
109 buffers for servers (actual use may be somewhat higher).
110
111 c_count - number of clients expected
112 c_q     - number of bytes buffered for each client
113 s_count - number of servers expected
114 s_q     - number of bytes buffered for each server
115
116 buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size
117
118 If the client count is 2000 and the server count is 1 (normal leaf)
119 and your server uses 2K as an I/O buffer size:
120
121 You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum
122 of 4064 buffers available, if the kernel uses 512 byte buffers you
123 will need a minimum of 16256 kernel buffers.
124
125 These settings may be a bit light for netbreaks under full client load
126 you will need to experiment a bit to find the right settings for your
127 server.
128
129 FreeBSD --WildThang
130 You may want to increase your kernel resources if you want to put
131 a lot of clients on your machine here are a few values to start with:
132 CHILD_MAX=4096
133 OPEN_MAX=4096
134 FD_SETSIZE=4096
135 NMBCLUSTERS=8096
136
137 Solaris 2.6  --Tar
138 Increase the default hard limit for file descriptors in /etc/system
139 set rlim_fd_max = 4096
140 The server will raise the soft limit to the hard limit.
141
142