source: trunk/Packages/synapse/docs/help/snmpsend.html

Last change on this file was 2, checked in by chronos, 12 years ago
  • Přidáno: Základní kostra projektu.
  • Přidáno: Knihovna synapse.
File size: 19.9 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
2<html>
3<head>
4<meta name="GENERATOR" content="PasDoc 0.9.0">
5<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
6<title>snmpsend</title>
7<link rel="StyleSheet" type="text/css" href="pasdoc.css">
8</head>
9<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#FF0000">
10<h1 class="unit">Unit snmpsend</h1>
11<table class="sections">
12<tr>
13<td><a class="section" href="#@Description">Description</a></td><td><a class="section" href="#@Uses">uses</a></td><td><a class="section" href="#@Classes">Classes, Interfaces, Objects and Records</a></td><td><a class="section" href="#@FuncsProcs">Functions and Procedures</a></td><td><a class="section" href="#@Types">Types</a></td><td><a class="section" href="#@Constants">Constants</a></td><td>Variables</td></tr></table>
14<a name="@Description"></a><h2 class="description">Description</h2>
15<p>
16SNMP client</p>
17<p>
18 Supports SNMPv1 include traps, SNMPv2c and SNMPv3 include authorization and privacy encryption.
19
20<p>Used RFC: RFC-1157, RFC-1901, RFC-3412, RFC-3414, RFC-3416, RFC-3826
21
22<p>Supported Authorization hashes: MD5, SHA1 Supported Privacy encryptions: DES, 3DES, AES</p>
23<a name="@Uses"></a><h2 class="uses">uses</h2>
24<ul class="useslist"><li>Classes</li><li>SysUtils</li><li><a href="blcksock.html">blcksock</a></li><li><a href="synautil.html">synautil</a></li><li><a href="asn1util.html">asn1util</a></li><li><a href="synaip.html">synaip</a></li><li><a href="synacode.html">synacode</a></li><li><a href="synacrypt.html">synacrypt</a></li></ul><h2 class="overview">Overview</h2>
25<a name="@Classes"></a><h3 class="cio">Classes, Interfaces, Objects and Records</h3>
26<table class="classestable">
27<tr class="listheader">
28<th class="itemname">Name</th>
29<th class="itemdesc">Description</th>
30</tr>
31<tr class="list">
32<td class="itemname">Class&nbsp;<a class="bold" href="snmpsend.TSNMPMib.html"><code>TSNMPMib</code></a></td>
33<td class="itemdesc">Data object with one record of MIB OID and corresponding values.</td>
34</tr>
35<tr class="list2">
36<td class="itemname">record&nbsp;<a class="bold" href="snmpsend.TV3Sync.html"><code>TV3Sync</code></a></td>
37<td class="itemdesc">It holding all information for SNMPv3 agent synchronization</td>
38</tr>
39<tr class="list">
40<td class="itemname">Class&nbsp;<a class="bold" href="snmpsend.TSNMPRec.html"><code>TSNMPRec</code></a></td>
41<td class="itemdesc">Data object abstracts SNMP data packet</td>
42</tr>
43<tr class="list2">
44<td class="itemname">Class&nbsp;<a class="bold" href="snmpsend.TSNMPSend.html"><code>TSNMPSend</code></a></td>
45<td class="itemdesc">Implementation of SNMP protocol.</td>
46</tr>
47</table>
48<a name="@FuncsProcs"></a><h3 class="summary">Functions and Procedures</h3>
49<table class="summary">
50<tr class="list">
51<td class="itemcode"><code>function <b><a href="snmpsend.html#SNMPGet">SNMPGet</a></b>(const OID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
52</tr>
53<tr class="list2">
54<td class="itemcode"><code>function <b><a href="snmpsend.html#SNMPSet">SNMPSet</a></b>(const OID, Community, SNMPHost, Value: AnsiString; ValueType: Integer): Boolean;</code></td>
55</tr>
56<tr class="list">
57<td class="itemcode"><code>function <b><a href="snmpsend.html#SNMPGetNext">SNMPGetNext</a></b>(var OID: AnsiString; const Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
58</tr>
59<tr class="list2">
60<td class="itemcode"><code>function <b><a href="snmpsend.html#SNMPGetTable">SNMPGetTable</a></b>(const BaseOID, Community, SNMPHost: AnsiString; const Value: TStrings): Boolean;</code></td>
61</tr>
62<tr class="list">
63<td class="itemcode"><code>function <b><a href="snmpsend.html#SNMPGetTableElement">SNMPGetTableElement</a></b>(const BaseOID, RowID, ColID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
64</tr>
65<tr class="list2">
66<td class="itemcode"><code>function <b><a href="snmpsend.html#SendTrap">SendTrap</a></b>(const Dest, Source, Enterprise, Community: AnsiString; Generic, Specific, Seconds: Integer; const MIBName, MIBValue: AnsiString; MIBtype: Integer): Integer;</code></td>
67</tr>
68<tr class="list">
69<td class="itemcode"><code>function <b><a href="snmpsend.html#RecvTrap">RecvTrap</a></b>(var Dest, Source, Enterprise, Community: AnsiString; var Generic, Specific, Seconds: Integer; const MIBName, MIBValue: TStringList): Integer;</code></td>
70</tr>
71</table>
72<a name="@Types"></a><h3 class="summary">Types</h3>
73<table class="summary">
74<tr class="list">
75<td class="itemcode"><code><b><a href="snmpsend.html#TV3Flags">TV3Flags</a></b> = (...);</code></td>
76</tr>
77<tr class="list2">
78<td class="itemcode"><code><b><a href="snmpsend.html#TV3Auth">TV3Auth</a></b> = (...);</code></td>
79</tr>
80<tr class="list">
81<td class="itemcode"><code><b><a href="snmpsend.html#TV3Priv">TV3Priv</a></b> = (...);</code></td>
82</tr>
83</table>
84<a name="@Constants"></a><h3 class="summary">Constants</h3>
85<table class="summary">
86<tr class="list">
87<td class="itemcode"><code><b><a href="snmpsend.html#cSnmpProtocol">cSnmpProtocol</a></b> = '161';</code></td>
88</tr>
89<tr class="list2">
90<td class="itemcode"><code><b><a href="snmpsend.html#cSnmpTrapProtocol">cSnmpTrapProtocol</a></b> = '162';</code></td>
91</tr>
92<tr class="list">
93<td class="itemcode"><code><b><a href="snmpsend.html#SNMP_V1">SNMP_V1</a></b> = 0;</code></td>
94</tr>
95<tr class="list2">
96<td class="itemcode"><code><b><a href="snmpsend.html#SNMP_V2C">SNMP_V2C</a></b> = 1;</code></td>
97</tr>
98<tr class="list">
99<td class="itemcode"><code><b><a href="snmpsend.html#SNMP_V3">SNMP_V3</a></b> = 3;</code></td>
100</tr>
101<tr class="list2">
102<td class="itemcode"><code><b><a href="snmpsend.html#PDUGetRequest">PDUGetRequest</a></b> = $A0;</code></td>
103</tr>
104<tr class="list">
105<td class="itemcode"><code><b><a href="snmpsend.html#PDUGetNextRequest">PDUGetNextRequest</a></b> = $A1;</code></td>
106</tr>
107<tr class="list2">
108<td class="itemcode"><code><b><a href="snmpsend.html#PDUGetResponse">PDUGetResponse</a></b> = $A2;</code></td>
109</tr>
110<tr class="list">
111<td class="itemcode"><code><b><a href="snmpsend.html#PDUSetRequest">PDUSetRequest</a></b> = $A3;</code></td>
112</tr>
113<tr class="list2">
114<td class="itemcode"><code><b><a href="snmpsend.html#PDUTrap">PDUTrap</a></b> = $A4;</code></td>
115</tr>
116<tr class="list">
117<td class="itemcode"><code><b><a href="snmpsend.html#PDUGetBulkRequest">PDUGetBulkRequest</a></b> = $A5;</code></td>
118</tr>
119<tr class="list2">
120<td class="itemcode"><code><b><a href="snmpsend.html#PDUInformRequest">PDUInformRequest</a></b> = $A6;</code></td>
121</tr>
122<tr class="list">
123<td class="itemcode"><code><b><a href="snmpsend.html#PDUTrapV2">PDUTrapV2</a></b> = $A7;</code></td>
124</tr>
125<tr class="list2">
126<td class="itemcode"><code><b><a href="snmpsend.html#PDUReport">PDUReport</a></b> = $A8;</code></td>
127</tr>
128<tr class="list">
129<td class="itemcode"><code><b><a href="snmpsend.html#ENoError">ENoError</a></b> = 0;</code></td>
130</tr>
131<tr class="list2">
132<td class="itemcode"><code><b><a href="snmpsend.html#ETooBig">ETooBig</a></b> = 1;</code></td>
133</tr>
134<tr class="list">
135<td class="itemcode"><code><b><a href="snmpsend.html#ENoSuchName">ENoSuchName</a></b> = 2;</code></td>
136</tr>
137<tr class="list2">
138<td class="itemcode"><code><b><a href="snmpsend.html#EBadValue">EBadValue</a></b> = 3;</code></td>
139</tr>
140<tr class="list">
141<td class="itemcode"><code><b><a href="snmpsend.html#EReadOnly">EReadOnly</a></b> = 4;</code></td>
142</tr>
143<tr class="list2">
144<td class="itemcode"><code><b><a href="snmpsend.html#EGenErr">EGenErr</a></b> = 5;</code></td>
145</tr>
146<tr class="list">
147<td class="itemcode"><code><b><a href="snmpsend.html#ENoAccess">ENoAccess</a></b> = 6;</code></td>
148</tr>
149<tr class="list2">
150<td class="itemcode"><code><b><a href="snmpsend.html#EWrongType">EWrongType</a></b> = 7;</code></td>
151</tr>
152<tr class="list">
153<td class="itemcode"><code><b><a href="snmpsend.html#EWrongLength">EWrongLength</a></b> = 8;</code></td>
154</tr>
155<tr class="list2">
156<td class="itemcode"><code><b><a href="snmpsend.html#EWrongEncoding">EWrongEncoding</a></b> = 9;</code></td>
157</tr>
158<tr class="list">
159<td class="itemcode"><code><b><a href="snmpsend.html#EWrongValue">EWrongValue</a></b> = 10;</code></td>
160</tr>
161<tr class="list2">
162<td class="itemcode"><code><b><a href="snmpsend.html#ENoCreation">ENoCreation</a></b> = 11;</code></td>
163</tr>
164<tr class="list">
165<td class="itemcode"><code><b><a href="snmpsend.html#EInconsistentValue">EInconsistentValue</a></b> = 12;</code></td>
166</tr>
167<tr class="list2">
168<td class="itemcode"><code><b><a href="snmpsend.html#EResourceUnavailable">EResourceUnavailable</a></b> = 13;</code></td>
169</tr>
170<tr class="list">
171<td class="itemcode"><code><b><a href="snmpsend.html#ECommitFailed">ECommitFailed</a></b> = 14;</code></td>
172</tr>
173<tr class="list2">
174<td class="itemcode"><code><b><a href="snmpsend.html#EUndoFailed">EUndoFailed</a></b> = 15;</code></td>
175</tr>
176<tr class="list">
177<td class="itemcode"><code><b><a href="snmpsend.html#EAuthorizationError">EAuthorizationError</a></b> = 16;</code></td>
178</tr>
179<tr class="list2">
180<td class="itemcode"><code><b><a href="snmpsend.html#ENotWritable">ENotWritable</a></b> = 17;</code></td>
181</tr>
182<tr class="list">
183<td class="itemcode"><code><b><a href="snmpsend.html#EInconsistentName">EInconsistentName</a></b> = 18;</code></td>
184</tr>
185</table>
186<h2 class="description">Description</h2>
187<h3 class="detail">Functions and Procedures</h3>
188<table class="detail">
189<tr class="list">
190<td class="itemcode"><a name="SNMPGet"></a><code>function <b>SNMPGet</b>(const OID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
191</tr>
192</table>
193<p>
194A very useful function and example of its use would be found in the TSNMPSend object. It implements basic GET method of the SNMP protocol. The MIB value is located in the &quot;OID&quot; variable, and is sent to the requested &quot;SNMPHost&quot; with the proper &quot;Community&quot; access identifier. Upon a successful retrieval, &quot;Value&quot; will contain the information requested. If the SNMP operation is successful, the result returns <code>True</code>.</p>
195<table class="detail">
196<tr class="list">
197<td class="itemcode"><a name="SNMPSet"></a><code>function <b>SNMPSet</b>(const OID, Community, SNMPHost, Value: AnsiString; ValueType: Integer): Boolean;</code></td>
198</tr>
199</table>
200<p>
201This is useful function and example of use TSNMPSend object. It implements the basic SET method of the SNMP protocol. If the SNMP operation is successful, the result is <code>True</code>. &quot;Value&quot; is value of MIB Oid for &quot;SNMPHost&quot; with &quot;Community&quot; access identifier. You must specify &quot;ValueType&quot; too.</p>
202<table class="detail">
203<tr class="list">
204<td class="itemcode"><a name="SNMPGetNext"></a><code>function <b>SNMPGetNext</b>(var OID: AnsiString; const Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
205</tr>
206</table>
207<p>
208A very useful function and example of its use would be found in the TSNMPSend object. It implements basic GETNEXT method of the SNMP protocol. The MIB value is located in the &quot;OID&quot; variable, and is sent to the requested &quot;SNMPHost&quot; with the proper &quot;Community&quot; access identifier. Upon a successful retrieval, &quot;Value&quot; will contain the information requested. If the SNMP operation is successful, the result returns <code>True</code>.</p>
209<table class="detail">
210<tr class="list">
211<td class="itemcode"><a name="SNMPGetTable"></a><code>function <b>SNMPGetTable</b>(const BaseOID, Community, SNMPHost: AnsiString; const Value: TStrings): Boolean;</code></td>
212</tr>
213</table>
214<p>
215A very useful function and example of its use would be found in the TSNMPSend object. It implements basic read of SNMP MIB tables. As BaseOID you must specify basic MIB OID of requested table (base IOD is OID without row and column specificator!) Table is readed into stringlist, where each string is comma delimited string.
216
217<p>Warning: this function is not have best performance. For better performance you must write your own function. best performace you can get by knowledge of structuture of table and by more then one MIB on one query.</p>
218<table class="detail">
219<tr class="list">
220<td class="itemcode"><a name="SNMPGetTableElement"></a><code>function <b>SNMPGetTableElement</b>(const BaseOID, RowID, ColID, Community, SNMPHost: AnsiString; var Value: AnsiString): Boolean;</code></td>
221</tr>
222</table>
223<p>
224A very useful function and example of its use would be found in the TSNMPSend object. It implements basic read of SNMP MIB table element. As BaseOID you must specify basic MIB OID of requested table (base IOD is OID without row and column specificator!) As next you must specify identificator of row and column for specify of needed field of table.</p>
225<table class="detail">
226<tr class="list">
227<td class="itemcode"><a name="SendTrap"></a><code>function <b>SendTrap</b>(const Dest, Source, Enterprise, Community: AnsiString; Generic, Specific, Seconds: Integer; const MIBName, MIBValue: AnsiString; MIBtype: Integer): Integer;</code></td>
228</tr>
229</table>
230<p>
231A very useful function and example of its use would be found in the TSNMPSend object. It implements a TRAPv1 to send with all data in the parameters.</p>
232<table class="detail">
233<tr class="list">
234<td class="itemcode"><a name="RecvTrap"></a><code>function <b>RecvTrap</b>(var Dest, Source, Enterprise, Community: AnsiString; var Generic, Specific, Seconds: Integer; const MIBName, MIBValue: TStringList): Integer;</code></td>
235</tr>
236</table>
237<p>
238A very useful function and example of its use would be found in the TSNMPSend object. It receives a TRAPv1 and returns all the data that comes with it.</p>
239<h3 class="detail">Types</h3>
240<table class="detail">
241<tr class="list">
242<td class="itemcode"><a name="TV3Flags"></a><code><b>TV3Flags</b> = (...);</code></td>
243</tr>
244</table>
245<p>
246Possible values for SNMPv3 flags.</p>
247<p>
248 This flags specify level of authorization and encryption.</p>
249<ul>
250<li>
251NoAuthNoPriv: </li>
252<li>
253AuthNoPriv: </li>
254<li>
255AuthPriv: </li>
256</ul>
257<table class="detail">
258<tr class="list">
259<td class="itemcode"><a name="TV3Auth"></a><code><b>TV3Auth</b> = (...);</code></td>
260</tr>
261</table>
262<p>
263Type of SNMPv3 authorization</p>
264<ul>
265<li>
266AuthMD5: </li>
267<li>
268AuthSHA1: </li>
269</ul>
270<table class="detail">
271<tr class="list">
272<td class="itemcode"><a name="TV3Priv"></a><code><b>TV3Priv</b> = (...);</code></td>
273</tr>
274</table>
275<p>
276Type of SNMPv3 privacy</p>
277<ul>
278<li>
279PrivDES: </li>
280<li>
281Priv3DES: </li>
282<li>
283PrivAES: </li>
284</ul>
285<h3 class="detail">Constants</h3>
286<table class="detail">
287<tr class="list">
288<td class="itemcode"><a name="cSnmpProtocol"></a><code><b>cSnmpProtocol</b> = '161';</code></td>
289</tr>
290</table>
291&nbsp;<table class="detail">
292<tr class="list">
293<td class="itemcode"><a name="cSnmpTrapProtocol"></a><code><b>cSnmpTrapProtocol</b> = '162';</code></td>
294</tr>
295</table>
296&nbsp;<table class="detail">
297<tr class="list">
298<td class="itemcode"><a name="SNMP_V1"></a><code><b>SNMP_V1</b> = 0;</code></td>
299</tr>
300</table>
301&nbsp;<table class="detail">
302<tr class="list">
303<td class="itemcode"><a name="SNMP_V2C"></a><code><b>SNMP_V2C</b> = 1;</code></td>
304</tr>
305</table>
306&nbsp;<table class="detail">
307<tr class="list">
308<td class="itemcode"><a name="SNMP_V3"></a><code><b>SNMP_V3</b> = 3;</code></td>
309</tr>
310</table>
311&nbsp;<table class="detail">
312<tr class="list">
313<td class="itemcode"><a name="PDUGetRequest"></a><code><b>PDUGetRequest</b> = $A0;</code></td>
314</tr>
315</table>
316&nbsp;<table class="detail">
317<tr class="list">
318<td class="itemcode"><a name="PDUGetNextRequest"></a><code><b>PDUGetNextRequest</b> = $A1;</code></td>
319</tr>
320</table>
321&nbsp;<table class="detail">
322<tr class="list">
323<td class="itemcode"><a name="PDUGetResponse"></a><code><b>PDUGetResponse</b> = $A2;</code></td>
324</tr>
325</table>
326&nbsp;<table class="detail">
327<tr class="list">
328<td class="itemcode"><a name="PDUSetRequest"></a><code><b>PDUSetRequest</b> = $A3;</code></td>
329</tr>
330</table>
331&nbsp;<table class="detail">
332<tr class="list">
333<td class="itemcode"><a name="PDUTrap"></a><code><b>PDUTrap</b> = $A4;</code></td>
334</tr>
335</table>
336&nbsp;<table class="detail">
337<tr class="list">
338<td class="itemcode"><a name="PDUGetBulkRequest"></a><code><b>PDUGetBulkRequest</b> = $A5;</code></td>
339</tr>
340</table>
341&nbsp;<table class="detail">
342<tr class="list">
343<td class="itemcode"><a name="PDUInformRequest"></a><code><b>PDUInformRequest</b> = $A6;</code></td>
344</tr>
345</table>
346&nbsp;<table class="detail">
347<tr class="list">
348<td class="itemcode"><a name="PDUTrapV2"></a><code><b>PDUTrapV2</b> = $A7;</code></td>
349</tr>
350</table>
351&nbsp;<table class="detail">
352<tr class="list">
353<td class="itemcode"><a name="PDUReport"></a><code><b>PDUReport</b> = $A8;</code></td>
354</tr>
355</table>
356&nbsp;<table class="detail">
357<tr class="list">
358<td class="itemcode"><a name="ENoError"></a><code><b>ENoError</b> = 0;</code></td>
359</tr>
360</table>
361&nbsp;<table class="detail">
362<tr class="list">
363<td class="itemcode"><a name="ETooBig"></a><code><b>ETooBig</b> = 1;</code></td>
364</tr>
365</table>
366&nbsp;<table class="detail">
367<tr class="list">
368<td class="itemcode"><a name="ENoSuchName"></a><code><b>ENoSuchName</b> = 2;</code></td>
369</tr>
370</table>
371&nbsp;<table class="detail">
372<tr class="list">
373<td class="itemcode"><a name="EBadValue"></a><code><b>EBadValue</b> = 3;</code></td>
374</tr>
375</table>
376&nbsp;<table class="detail">
377<tr class="list">
378<td class="itemcode"><a name="EReadOnly"></a><code><b>EReadOnly</b> = 4;</code></td>
379</tr>
380</table>
381&nbsp;<table class="detail">
382<tr class="list">
383<td class="itemcode"><a name="EGenErr"></a><code><b>EGenErr</b> = 5;</code></td>
384</tr>
385</table>
386&nbsp;<table class="detail">
387<tr class="list">
388<td class="itemcode"><a name="ENoAccess"></a><code><b>ENoAccess</b> = 6;</code></td>
389</tr>
390</table>
391&nbsp;<table class="detail">
392<tr class="list">
393<td class="itemcode"><a name="EWrongType"></a><code><b>EWrongType</b> = 7;</code></td>
394</tr>
395</table>
396&nbsp;<table class="detail">
397<tr class="list">
398<td class="itemcode"><a name="EWrongLength"></a><code><b>EWrongLength</b> = 8;</code></td>
399</tr>
400</table>
401&nbsp;<table class="detail">
402<tr class="list">
403<td class="itemcode"><a name="EWrongEncoding"></a><code><b>EWrongEncoding</b> = 9;</code></td>
404</tr>
405</table>
406&nbsp;<table class="detail">
407<tr class="list">
408<td class="itemcode"><a name="EWrongValue"></a><code><b>EWrongValue</b> = 10;</code></td>
409</tr>
410</table>
411&nbsp;<table class="detail">
412<tr class="list">
413<td class="itemcode"><a name="ENoCreation"></a><code><b>ENoCreation</b> = 11;</code></td>
414</tr>
415</table>
416&nbsp;<table class="detail">
417<tr class="list">
418<td class="itemcode"><a name="EInconsistentValue"></a><code><b>EInconsistentValue</b> = 12;</code></td>
419</tr>
420</table>
421&nbsp;<table class="detail">
422<tr class="list">
423<td class="itemcode"><a name="EResourceUnavailable"></a><code><b>EResourceUnavailable</b> = 13;</code></td>
424</tr>
425</table>
426&nbsp;<table class="detail">
427<tr class="list">
428<td class="itemcode"><a name="ECommitFailed"></a><code><b>ECommitFailed</b> = 14;</code></td>
429</tr>
430</table>
431&nbsp;<table class="detail">
432<tr class="list">
433<td class="itemcode"><a name="EUndoFailed"></a><code><b>EUndoFailed</b> = 15;</code></td>
434</tr>
435</table>
436&nbsp;<table class="detail">
437<tr class="list">
438<td class="itemcode"><a name="EAuthorizationError"></a><code><b>EAuthorizationError</b> = 16;</code></td>
439</tr>
440</table>
441&nbsp;<table class="detail">
442<tr class="list">
443<td class="itemcode"><a name="ENotWritable"></a><code><b>ENotWritable</b> = 17;</code></td>
444</tr>
445</table>
446&nbsp;<table class="detail">
447<tr class="list">
448<td class="itemcode"><a name="EInconsistentName"></a><code><b>EInconsistentName</b> = 18;</code></td>
449</tr>
450</table>
451&nbsp;<hr noshade size="1"><span class="appinfo"><em>Generated by <a target="_parent" href="http://pasdoc.sourceforge.net/">PasDoc 0.9.0</a> on 2012-04-23 21:38:51</em>
452</span>
453</body></html>
Note: See TracBrowser for help on using the repository browser.