1--
2-- CDDL HEADER START
3--
4-- The contents of this file are subject to the terms of the
5-- Common Development and Distribution License, Version 1.0 only
6-- (the "License").  You may not use this file except in compliance
7-- with the License.
8--
9-- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10-- or http://www.opensolaris.org/os/licensing.
11-- See the License for the specific language governing permissions
12-- and limitations under the License.
13--
14-- When distributing Covered Code, include this CDDL HEADER in each
15-- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16-- If applicable, add the following below this CDDL HEADER, with the 
17-- fields enclosed by brackets "[]" replaced with your own identifying
18-- information: Portions Copyright [yyyy] [name of copyright owner]
19--
20-- CDDL HEADER END
21--
22-- Copyright 1996 Sun Microsystems, Inc.  All Rights Reserved.
23-- Use is subject to license terms.
24--
25-- #ident	"%Z%%M%	%I%	%E% SMI"
26--
27
28   MS-MIB DEFINITIONS ::= BEGIN
29
30   IMPORTS
31       OBJECT-TYPE, Counter32, Gauge32
32         FROM SNMPv2-SMI
33       DisplayString, TimeInterval
34         FROM SNMPv2-TC
35       mib-2
36         FROM RFC1213-MIB
37       applIndex
38         FROM APPLICATION-MIB;
39
40   ms MODULE-IDENTITY
41       LAST-UPDATED "9601290000Z"
42       ORGANIZATION "ICNC, SunSoft"
43       CONTACT-INFO
44         "        Olivier Reisacher
45
46          Postal: ICNC, SunSoft
47                  32, chemin du vieux chene
48                  38 240 Meylan
49                  FRANCE
50
51          Tel: +33 76 41 42 43
52          Fax: +33 76 41 42 41
53
54          E-Mail: oreisache@france.sun.com"
55       DESCRIPTION
56         "The MIB module describing Message Stores (MSs)"
57       ::= { private-mibs 4 }
58
59
60
61--	---------------------
62--	| ADMISTRATOR NEEDS |
63--	---------------------
64--
65--	1. Is the MS running? Is it down? Is it overloaded?
66--	2. Which are the Users that are creating the load?
67--	3. What is the current number of connections compare to
68--	   the maximum number of connections supported?
69--	4. Is the disk full? How much disk space is still available?
70--	5. Does a given User regularly read his mail?
71--
72--
73--	---------
74--	| GOALS |
75--	---------
76--
77--	Here are the 5 major goals we have tried to reach:
78--	- solve the administrator needs.
79--	- build/integrate this MIB on top of the Network Services
80--	  Monitoring MIB (RFC 1565).
81--	- use as much as possible the design/ideas contained in the
82--	  MTA MIB (RFC 1566), the DSA MIB (RFC 1567) and the HTTP MIB.
83--	  All these three MIBs are on the standard track and are also built on
84--	  top of the Network Services Monitoring MIB.
85--	- build a model to hold common variables/counters to monitor all kinds
86--	  of Message Stores. This model should be as hierarchical as possible
87--	  to be efficient.
88--	- test the resulting model against the following scenarios:
89--		the Berkeley Mailboxes that can be accessed by IMAP or POP
90--		the Solstice X.400 Message Store
91--		the Solstice Message Center
92--
93--
94--	---------
95--	| MODEL |
96--	---------
97--	
98--	The proposed model is the following:
99--		a MS is a APPLICATION (see RFC 1565)
100--		a MS serves several USERs
101--		a USER owns several FOLDERs
102--
103--	As we can guess, the number of USERs supported by a single MS will continue
104--	to grow in the future.
105--	Dumping some huge tables using SNMP is slow and resource consuming, so we
106--	decided to introduce a intermediate level between the MS and its USERs:
107--		the notion of GROUP.
108--
109--	We have then the resulting model:
110--		a MS is an APPLICATION (see RFC 1565)
111--		a MS serves several GROUPs
112--		a GROUP is composed of several USERs
113--		a USER owns several FOLDERs
114--
115--
116--	We have also introduced two new types of variables because
117--	a single MS may support several protocols:
118--		MsAccessMethod
119--		MsTransferMethod
120--
121--	These two new types are used in the msAccessTable, msTransferTable,
122--	msUserAccessTable, msUserTransferTable.
123--	The two first tables provide some statistics per Access/Transfer method
124--	for the entire MS and the other two tables provide some statistics
125--	per Access/Transfer Method and per User.
126--
127--	We do not provide statistics per Access/Transfer method per Group
128--      because this implies two extra tables and we think that it will
129--	be easy to sum these statistics on all users contained in that Group
130--      (a Group should not contain thousand of Users).
131--
132--	Comments:
133--
134--	- Variables which name looks like XXXAccessYYY are related to the
135--	  communication between Users and the MS.
136--	- Variables which name looks like XXXTransferYYY are related to the
137--	  communication between the MS and the MTA.
138--
139--
140--	 MS
141--      |---------------------------------------------------------|
142--      |                                                         |
143--      |         global stats of the MS                          |
144--      |                                                         |
145--      |       |----------------------------|                    |
146--      |       | stats per Transfer method  |                    |
147--      |       |----------------------------|                    |
148--      |                                                         |
149--      |       |----------------------------|                    |
150--      |       | stats per Access method    |                    |
151--      |       |----------------------------|                    |
152--      |                                                         |
153--      |   GROUP                                                 |
154--      | |-----------------------------------------------------| |
155--      | |                                                     | |
156--      | |       global stats of the GROUP                     | |
157--      | |                                                     | |
158--      | |   USER                                              | |
159--      | | |-------------------------------------------------| | |
160--      | | |                                                 | | |
161--      | | |     global stats of the USER                    | | |
162--      | | |                                                 | | |
163--      | | |   |----------------------------|                | | |
164--      | | |   | stats per Transfer method  |                | | |
165--      | | |   |----------------------------|                | | |
166--      | | |                                                 | | |
167--      | | |   |----------------------------|                | | |
168--      | | |   | stats per Access method    |                | | |
169--      | | |   |----------------------------|                | | |
170--      | | |                                                 | | |
171--      | | |                                                 | | |
172--      | | |   FOLDER                                        | | |
173--      | | | |---------------------------------------------| | | |
174--      | | | |                                             | | | |
175--      | | | |   global stats of the FOLDER                | | | |
176--      | | | |                                             | | | |
177--      | | | |                                             | | | |
178--      | | | |                                             | | | |
179--      | | | |                                             | | | |
180--      | | | |---------------------------------------------| | | |
181--      | | |                                                 | | |
182--      | | |-------------------------------------------------| | |
183--      | |                                                     | |
184--      | |-----------------------------------------------------| |
185--      |                                                         |
186--      |---------------------------------------------------------|
187--
188--
189--	Assumptions we made:
190--	- a User belongs to an MS (configuration of the MS)
191--	- a Association is always owned by a User
192--	- a Folder is always owned by a User
193--
194--	Example of questions we can answer:
195--	- Which is the Folder currently accessed by a given User?
196--
197--	Known limitation of the model:
198--	- each User can only belong to one Group.
199--	- each Folder is associated with a single User, the owner
200--        of the Folder (see msFolderIsShared).
201--	- we won't be able to provide the history list of Users
202--	  who accessed a given Folder
203
204
205
206   MsAccessMethod ::= TEXTUAL-CONVENTION
207       STATUS current
208       DESCRIPTION
209         "The Access method used by the UA to access the MS.
210
211          This new type is used in both the msAccessTable and the
212          msUserAccessTable.
213
214          pop(1), imap(4), p7(9) should only be used if the protocol
215          version is unknown."
216       SYNTAX INTEGER {
217          pop(1),
218          pop-2(2),
219          pop-3(3),
220          imap(4),
221          imap-2(5),
222          imap-2bis(6),
223          imap-3(7),
224          imap-4(8),
225          p7(9),
226          p7-88(10)
227       }
228      
229   MsTransferMethod ::= TEXTUAL-CONVENTION
230       STATUS current
231       DESCRIPTION
232         "The Transfer method used by the MS to submit a message
233          to the Message Tranfer System (MTS) or the Transfer method used
234          by the Message Transfer System to deliver a message to the MS.
235
236          This new type is used in both the msTransferTable and the
237          msUserTransferTable.
238
239          p3(1) should only be used if the protocol version is unknown."
240       SYNTAX INTEGER {
241          p3(1),
242          p3-88(2)
243       }
244
245
246
247   -- The msTable can be seen as an extension of the applTable
248   -- (see INDEX clause in the msEntry)
249   --
250   -- Comments:
251   -- ---------
252   -- The sum on all the Users of the used volume >= sum of the volume used by the MS
253   -- (some messages may be shared by several Users)
254
255   msTable OBJECT-TYPE
256       SYNTAX SEQUENCE OF MsEntry
257       MAX-ACCESS not-accessible
258       STATUS current
259       DESCRIPTION
260         "The table holding information specific to an MS."
261       ::= { ms 1 }
262
263   msEntry OBJECT-TYPE
264       SYNTAX MsEntry
265       MAX-ACCESS not-accessible
266       STATUS current
267       DESCRIPTION
268         "The entry associated with each MS."
269       INDEX { applIndex }
270       ::= { msTable 1 }
271
272   MsEntry ::= SEQUENCE {
273       msMessages
274         Gauge32,
275       msVolume
276         Gauge32,
277       msFreeSpace
278         INTEGER,
279       msGroups
280         Gauge32
281   }
282
283   msMessages OBJECT-TYPE
284       SYNTAX Gauge32
285       UNITS "K-octets"
286       MAX-ACCESS read-only
287       STATUS current
288       DESCRIPTION
289         "The number of messages stored in the MS."
290       ::= { msEntry 1 }
291
292   msVolume OBJECT-TYPE
293       SYNTAX Gauge32
294       UNITS "K-octets"
295       MAX-ACCESS read-only
296       STATUS current
297       DESCRIPTION
298         "The volume measured in kilo-octet of messages stored
299          in the MS."
300       ::= { msEntry 2 }
301
302   msFreeSpace OBJECT-TYPE
303       SYNTAX INTEGER
304       UNITS "K-octets"
305       MAX-ACCESS read-only
306       STATUS current
307       DESCRIPTION
308         "The free space available to store new messages in the MS.
309          This space is measured in kilo-octets.
310          If this value is not available, it should be set to -1."
311       ::= { msEntry 3 }
312
313   msGroups OBJECT-TYPE
314       SYNTAX Gauge
315       MAX-ACCESS read-only
316       STATUS current
317       DESCRIPTION
318         "The number of Groups of Users in the MS."
319       ::= { msEntry 4 }
320
321
322
323   -- The msAccessTable provide some statitics about the usage
324   -- of the MS per Access method.
325
326   msAccessTable OBJECT-TYPE
327       SYNTAX SEQUENCE OF MsAccessEntry
328       MAX-ACCESS not-accessible
329       STATUS current
330       DESCRIPTION
331         "The table holding statistics for an MS per
332          Access method."
333       ::= { ms 2 }
334
335   msAccessEntry OBJECT-TYPE
336       SYNTAX MsAccessEntry
337       MAX-ACCESS not-accessible
338       STATUS current
339       DESCRIPTION
340         "The entry associated with each MS and per Access method."
341       INDEX { applIndex, msAccessIndex }
342       ::= { msAccessTable 1 }
343
344   MsAccessEntry ::= SEQUENCE {
345       msAccessIndex,
346         MsAccessMethod,
347       msAccessListedMessages
348         Counter32,
349       msAccessFetchedMessages
350         Counter32,
351       msAccessDeletedMessages
352         Counter32,
353       msAccessListedVolume
354         Counter32,
355       msAccessFetchedVolume
356         Counter32,
357       msAccessDeletedVolume
358         Counter32,
359       msAccesses
360         Gauge32,
361       msAccumulatedAccesses
362         Counter32,
363       msLastAccess
364         TimeInterval,
365       msAccumulatedAccesseTime
366         TimeInterval,
367       msRejectedAccesses
368         Counter32,
369       msAccessRejectionReason
370         DisplayString
371   }
372
373   msAccessIndex OBJECT-TYPE
374       SYNTAX MsAccessMethod
375       MAX-ACCESS not-accessible
376       STATUS current
377       DESCRIPTION
378         "The index used to group statistics per Access method."
379       ::= { msAccessEntry 1 }
380
381   msAccessListedMessages OBJECT-TYPE
382       SYNTAX Counter32
383       MAX-ACCESS read-only
384       STATUS current
385       DESCRIPTION
386         "The total number of messages listed since MS initialization,
387          per Access method."
388       ::= { msAccessEntry 2 }
389
390   msAccessFetchedMessages OBJECT-TYPE
391       SYNTAX Counter32
392       MAX-ACCESS read-only
393       STATUS current
394       DESCRIPTION
395         "The total number of messages fetched since MS initialization,
396          per Access method."
397       ::= { msAccessEntry 3 }
398
399   msAccessDeletedMessages OBJECT-TYPE
400       SYNTAX Counter32
401       MAX-ACCESS read-only
402       STATUS current
403       DESCRIPTION
404         "The total number of messages deleted since MS initialization,
405          per Access method."
406       ::= { msAccessEntry 4 }
407
408   msAccessListedVolume OBJECT-TYPE
409       SYNTAX Counter32
410       UNITS "K-octets"
411       MAX-ACCESS read-only
412       STATUS current
413       DESCRIPTION
414         "The total volume of messages listed since MS initialization,
415          per Access method, measured in kilo-octets."
416       ::= { msAccessEntry 5 }
417
418   msAccessFetchedVolume OBJECT-TYPE
419       SYNTAX Counter32
420       UNITS "K-octets"
421       MAX-ACCESS read-only
422       STATUS current
423       DESCRIPTION
424         "The total volume of messages fetched since MS initialization,
425          per Access method, measured in kilo-octets."
426       ::= { msAccessEntry 6 }
427
428   msAccessDeletedVolume OBJECT-TYPE
429       SYNTAX Counter32
430       UNITS "K-octets"
431       MAX-ACCESS read-only
432       STATUS current
433       DESCRIPTION
434         "The total volume of messages deleted since MS initialization,
435          per Access method, measured in kilo-octets."
436       ::= { msAccessEntry 7 }
437
438   msAccesses OBJECT-TYPE
439       SYNTAX Gauge32
440       MAX-ACCESS read-only
441       STATUS current
442       DESCRIPTION
443         "The number of current accesses to the MS, per Access method."
444       ::= { msAccessEntry 8 }
445
446   msAccumulatedAccesses OBJECT-TYPE
447       SYNTAX Gauge32
448       MAX-ACCESS read-only
449       STATUS current
450       DESCRIPTION
451         "The total number of accesses to the MS since MS initialization,
452          per Access method."
453       ::= { msAccessEntry 9 }
454
455   msLastAccess OBJECT-TYPE
456       SYNTAX TimeInterval
457       MAX-ACCESS read-only
458       STATUS current
459       DESCRIPTION
460         "Time since the last time that the MS was accessed,
461          per Access method."
462       ::= { msAccessEntry 10 }
463
464   msAccumulatedAccessTime OBJECT-TYPE
465       SYNTAX TimeInterval
466       MAX-ACCESS read-only
467       STATUS current
468       DESCRIPTION
469         "The total time of connection to the MS
470          since MS initialization, per Access method."
471       ::= { msAccessEntry 11 }
472
473   msRejectedAccesses OBJECT-TYPE
474       SYNTAX Counter32
475       MAX-ACCESS read-only
476       STATUS current
477       DESCRIPTION
478         "The total number of accesses the MS has rejected since MS
479          initialization, per Access method."
480       ::= { msAccessEntry 12 }
481
482   msAccessRejectedReason OBJECT-TYPE
483       SYNTAX DisplayString
484       MAX-ACCESS read-only
485       STATUS current
486       DESCRIPTION
487         "The failure reason, if any, for the last access this
488         MS refused. An empty string indicates that
489         the last attempt was successful.  If no access attempt
490         has been made since the MS was initialized the value
491         should be 'never'."
492       ::= { msAccessEntry 13 }
493
494
495
496   -- The msTransferTable provide some statitics about the usage
497   -- of the MS per Transfer method.
498   --
499   -- When the MS application does not communicate with the MTA
500   -- (like "Berkeley Mailboxes"), there will no entry in this table.
501
502   msTransferTable OBJECT-TYPE
503       SYNTAX SEQUENCE OF MsTransferEntry
504       MAX-ACCESS not-accessible
505       STATUS current
506       DESCRIPTION
507         "The table holding statistics for a entire MS per
508          Transfer method."
509       ::= { ms 3 }
510
511   msTransferEntry OBJECT-TYPE
512       SYNTAX MsTransferEntry
513       MAX-ACCESS not-accessible
514       STATUS current
515       DESCRIPTION
516         "The entry associated with each MS and per Transfer method."
517       INDEX { applIndex, msTransferIndex }
518       ::= { msTransferTable 1 }
519
520   MsTransferEntry ::= SEQUENCE {
521       msTransferIndex,
522         MsTransferMethod,
523       msTransferSentMessages
524         Counter32,
525       msTransferReceivedMessages
526         Counter32,
527       msTransferSentVolume
528         Counter32,
529       msTransferReceivedVolume
530         Counter32,
531       msTransfers
532         Gauge32,
533       msAccumulatedTranfers,
534         Counter32,
535       msLastTransfer
536         TimeInterval,
537       msFailedTransfers
538         Counter32,
539       msTransferFailureReason
540         DisplayString
541   }
542
543   msTransferIndex OBJECT-TYPE
544       SYNTAX MsTransferMethod
545       MAX-ACCESS not-accessible
546       STATUS current
547       DESCRIPTION
548         "The index used to group statistics per Transfer method."
549       ::= { msTransferEntry 1 }
550
551   msTransferSentMessages OBJECT-TYPE
552       SYNTAX Counter32
553       MAX-ACCESS read-only
554       STATUS current
555       DESCRIPTION
556         "The total number of messages sent since MS initialization,
557          per Transfer method."
558       ::= { msTransferEntry 2 }
559
560   msTransferReceivedMessages OBJECT-TYPE
561       SYNTAX Counter32
562       MAX-ACCESS read-only
563       STATUS current
564       DESCRIPTION
565         "The total number of messages received since MS initialization,
566          per Transfer method."
567       ::= { msTransferEntry 3 }
568
569   msTransferSentVolume OBJECT-TYPE
570       SYNTAX Counter32
571       UNITS "K-octets"
572       MAX-ACCESS read-only
573       STATUS current
574       DESCRIPTION
575         "The total volume of messages sent since MS initialization,
576          per Transfer method, measured in kilo-octets."
577       ::= { msTransferEntry 4 }
578
579   msTransferReceivedVolume OBJECT-TYPE
580       SYNTAX Counter32
581       UNITS "K-octets"
582       MAX-ACCESS read-only
583       STATUS current
584       DESCRIPTION
585         "The total volume of messages received since MS initialization,
586          per Transfer method, measured in kilo-octets."
587       ::= { msTransferEntry 5 }
588
589   msTransfers OBJECT-TYPE
590       SYNTAX Gauge32
591       MAX-ACCESS read-only
592       STATUS current
593       DESCRIPTION
594         "The number of current tranfers to/from the MS, per Transfert method."
595       ::= { msTransferEntry 6 }
596
597   msAccumulatedTransfers OBJECT-TYPE
598       SYNTAX Gauge32
599       MAX-ACCESS read-only
600       STATUS current
601       DESCRIPTION
602         "The total number of transfers to/from the MS since MS initialization,
603          per Transfer method."
604       ::= { msTransferEntry 7 }
605
606   msLastTransfer OBJECT-TYPE
607       SYNTAX TimeInterval
608       MAX-ACCESS read-only
609       STATUS current
610       DESCRIPTION
611         "Time since the last time that a message was transferred to/from the MS,
612          per Transfer method."
613       ::= { msTransferEntry 8 }
614
615   msRejectedTransfers OBJECT-TYPE
616       SYNTAX Counter32
617       MAX-ACCESS read-only
618       STATUS current
619       DESCRIPTION
620         "The total number of Transfers that failed since MS
621          initialization, per Transfer method."
622       ::= { msTransferEntry 9 }
623
624   msTransferFailureReason OBJECT-TYPE
625       SYNTAX DisplayString
626       MAX-ACCESS read-only
627       STATUS current
628       DESCRIPTION
629         "The failure reason, if any, for the last Transfer that failed.
630         An empty string indicates that
631         the last Transfer was successful. If no Transfer attempt
632         has been made since the MS was initialized the value
633         should be 'never'."
634       ::= { msTransferEntry 10 }
635
636
637
638   -- We have introduced the notion of Groups of Users to avoid
639   -- dumping a large table of Users each time we want some detailed
640   -- statistics about the MS.
641   --
642   -- In the case of "Berkeley Mailboxes" a group could correspond to UNIX groups.
643   -- In the case of the "Solstice X.400 MS", we have already introduced
644   -- this notion of Group of Users.
645   --
646   -- If the MS does not support the notion of Group of Users or if a User
647   -- does not belong to any group, then the User should be added to the
648   -- dummy "anonymous" group.
649
650   msGroupTable OBJECT-TYPE
651       SYNTAX SEQUENCE OF MsGroupEntry
652       MAX-ACCESS not-accessible
653       STATUS current
654       DESCRIPTION
655         "The table holding information specific to each Group of Users."
656       ::= { ms 4 }
657
658   msGroupEntry OBJECT-TYPE
659       SYNTAX MsGroupEntry
660       MAX-ACCESS not-accessible
661       STATUS current
662       DESCRIPTION
663         "The entry associated with each Group of Users."
664       INDEX { applIndex, msGroupIndex }
665       ::= { msGroupTable 1 }
666
667   MsGroupEntry ::= SEQUENCE {
668       msGroupIndex
669           INTEGER,
670       msGroupUsers
671           Gauge32,
672       msGroupMessages
673           Counter32,
674       msGroupVolume
675           Counter32,
676       msGroupUsers,
677           Gauge32,
678       msGroupName
679           DisplayString
680   }
681
682   msGroupIndex OBJECT-TYPE
683       SYNTAX INTEGER
684       MAX-ACCESS not-accessible
685       STATUS current
686       DESCRIPTION
687         "The index associated with a Group of Users for a given MS."
688       ::= { msGroupEntry 1 }
689
690   msGroupMessages OBJECT-TYPE
691       SYNTAX Counter32
692       MAX-ACCESS read-only
693       STATUS current
694       DESCRIPTION
695         "The total number of messages stored for this Group of Users."
696       ::= { msGroupEntry 2 }
697
698   msGroupVolume OBJECT-TYPE
699       SYNTAX Counter32
700       UNITS "K-octets"
701       MAX-ACCESS read-only
702       STATUS current
703       DESCRIPTION
704         "The total volume of messages stored for this Group of Users,
705         measured in kilo-octets."
706       ::= { msGroupEntry 3 }
707
708   msGroupUsers OBJECT-TYPE
709       SYNTAX Gauge32
710       MAX-ACCESS read-only
711       STATUS current
712       DESCRIPTION
713         "The number of Users in this Group."
714       ::= { msGroupEntry 4 }
715
716   msGroupName OBJECT-TYPE
717       SYNTAX DisplayString
718       MAX-ACCESS read-only
719       STATUS current
720       DESCRIPTION
721         "A descriptive name for the Group of Users."
722       ::= { msGroupEntry 5 }
723
724
725
726   -- msUserTable
727
728   msUserTable OBJECT-TYPE
729       SYNTAX SEQUENCE OF MsUserEntry
730       MAX-ACCESS not-accessible
731       STATUS current
732       DESCRIPTION
733         "The table holding information specific to each User."
734       ::= { ms 5 }
735
736   msUserEntry OBJECT-TYPE
737       SYNTAX MsUserEntry
738       MAX-ACCESS not-accessible
739       STATUS current
740       DESCRIPTION
741         "The entry associated with each User."
742       INDEX { applIndex, msGroupIndex, msUserIndex }
743       ::= { msUserTable 1 }
744
745   MsUserEntry ::= SEQUENCE {
746       msUserIndex
747           INTEGER,
748       msUserMessages
749           Counter32,
750       msUserVolume
751           Counter32,
752       msUserFolders
753           Gauge32,
754       msUserName
755           DisplayString
756   }
757
758   msUserIndex OBJECT-TYPE
759       SYNTAX INTEGER
760       MAX-ACCESS not-accessible
761       STATUS current
762       DESCRIPTION
763         "The index associated with a User."
764       ::= { msUserEntry 1 }
765
766   msUserMessages OBJECT-TYPE
767       SYNTAX Counter32
768       MAX-ACCESS read-only
769       STATUS current
770       DESCRIPTION
771         "The total number of messages stored for this User."
772       ::= { msUserEntry 2 }
773
774   msUserVolume OBJECT-TYPE
775       SYNTAX Counter32
776       UNITS "K-octets"
777       MAX-ACCESS read-only
778       STATUS current
779       DESCRIPTION
780         "The total volume of messages stored for this User,
781          measured in kilo-octets."
782       ::= { msUserEntry 3 }
783
784   msUserFolders OBJECT-TYPE
785       SYNTAX Gauge32
786       MAX-ACCESS read-only
787       STATUS current
788       DESCRIPTION
789         "The number of Folders this User owns."
790       ::= { msUserEntry 4 }
791
792   msUserName OBJECT-TYPE
793       SYNTAX DisplayString
794       MAX-ACCESS read-only
795       STATUS current
796       DESCRIPTION
797         "A descriptive name for the User."
798       ::= { msUserEntry 5 }
799
800
801
802   -- msFolderTable:
803   --
804   -- A message can be in 4 different states: new, listed, processed, pending.
805   -- A pending message is a message with the deletion flag set (see IMAP)
806   --
807   -- Question: Is is possible to have an complete of the Folders for a
808   --           a given User? In an X.500 DSA?
809   --
810   -- In the case of the MS "Berkeley Mailboxes", there will be at least
811   -- one Folder: the INBOX Folder.
812   -- The IMAP could perhaps learn the Folders accessed by a User?
813   -- And what about the subsribed Folders?
814
815   msFolderTable OBJECT-TYPE
816       SYNTAX SEQUENCE OF MsFolderEntry
817       MAX-ACCESS not-accessible
818       STATUS current
819       DESCRIPTION
820         "The table holding information specific to each Folder."
821       ::= { ms 6 }
822
823   msFolderEntry OBJECT-TYPE
824       SYNTAX MsFolderEntry
825       MAX-ACCESS not-accessible
826       STATUS current
827       DESCRIPTION
828         "The entry associated with each Folder."
829       INDEX { applIndex, msGroupIndex, msUserIndex, msFolderIndex }
830       ::= { msFolderTable 1 }
831
832   MsFolderEntry ::= SEQUENCE {
833       msFolderIndex
834           INTEGER,
835       msFolderNewMessages
836           Gauge32,
837       msFolderListedMessages
838           Gauge32,
839       msFolderProcessedMessages
840           Gauge32,
841       msFolderPendingMessages
842           Gauge32,
843       msFolderNewVolume
844           Gauge32,
845       msFolderListedVolume
846           Gauge32,
847       msFolderProcessedVolume
848           Gauge32,
849       msFolderPendingVolume
850           Gauge32,
851       msFolderCreation
852           TimeInterval,
853       msFolderLastNewMessage
854           TimeInterval,
855       msFolderAccesses
856           Gauge32,
857       msFolderAccumulatedAccesses
858           Counter32,
859       msFolderLastAccess
860           TimeInterval,
861       msFolderIsShared,
862           INTEGER,
863       msFolderName
864           DisplayString
865   }
866
867   msFolderIndex OBJECT-TYPE
868       SYNTAX INTEGER
869       MAX-ACCESS not-accessible
870       STATUS current
871       DESCRIPTION
872         "The index associated with a Folder."
873       ::= { msFolderEntry 1 }
874
875   msFolderNewMessages OBJECT-TYPE
876       SYNTAX Gauge32
877       MAX-ACCESS read-only
878       STATUS current
879       DESCRIPTION
880         "The total number of new messages stored in this Folder."
881       ::= { msFolderEntry 2 }
882
883   msFolderListedMessages OBJECT-TYPE
884       SYNTAX Gauge32
885       MAX-ACCESS read-only
886       STATUS current
887       DESCRIPTION
888         "The total number of listed messages stored in this Folder."
889       ::= { msFolderEntry 3 }
890
891   msFolderProcessedMessages OBJECT-TYPE
892       SYNTAX Gauge32
893       MAX-ACCESS read-only
894       STATUS current
895       DESCRIPTION
896         "The total number of processed messages stored in this Folder."
897       ::= { msFolderEntry 4 }
898
899   msFolderPendingMessages OBJECT-TYPE
900       SYNTAX Gauge32
901       MAX-ACCESS read-only
902       STATUS current
903       DESCRIPTION
904         "The total number of pending messages stored in this Folder."
905       ::= { msFolderEntry 5 }
906
907   msFolderNewVolume OBJECT-TYPE
908       SYNTAX Gauge32
909       UNITS "K-octets"
910       MAX-ACCESS read-only
911       STATUS current
912       DESCRIPTION
913         "The total volume of new messages stored in this Folder,
914         measured in kilo-octets."
915       ::= { msFolderEntry 6 }
916
917   msFolderListedVolume OBJECT-TYPE
918       SYNTAX Gauge32
919       UNITS "K-octets"
920       MAX-ACCESS read-only
921       STATUS current
922       DESCRIPTION
923         "The total volume of listed messages stored in this Folder,
924         measured in kilo-octets."
925       ::= { msFolderEntry 7 }
926
927   msFolderProcessedVolume OBJECT-TYPE
928       SYNTAX Gauge32
929       UNITS "K-octets"
930       MAX-ACCESS read-only
931       STATUS current
932       DESCRIPTION
933         "The total volume of processed messages stored in this Folder,
934         measured in kilo-octets."
935       ::= { msFolderEntry 8 }
936
937   msFolderPendingVolume OBJECT-TYPE
938       SYNTAX Gauge32
939       UNITS "K-octets"
940       MAX-ACCESS read-only
941       STATUS current
942       DESCRIPTION
943         "The total volume of pending messages stored in this Folder,
944         measured in kilo-octets."
945       ::= { msFolderEntry 9 }
946
947   msFolderCreation OBJECT-TYPE
948       SYNTAX TimeInterval
949       MAX-ACCESS read-only
950       STATUS current
951       DESCRIPTION
952	"Time since the this Folder was created."
953       ::= { msFolderEntry 10 }
954
955   msFolderLastNewMessage OBJECT-TYPE
956       SYNTAX TimeInterval
957       MAX-ACCESS read-only
958       STATUS current
959       DESCRIPTION
960	"Time since the last new message was received in this Folder."
961       ::= { msFolderEntry 11 }
962
963   msFolderAccesses OBJECT-TYPE
964       SYNTAX Gauge32
965       MAX-ACCESS read-only
966       STATUS current
967       DESCRIPTION
968	"Number of current accesses to this Folder."
969       ::= { msFolderEntry 12 }
970
971   msFolderAccumulatedAccesses OBJECT-TYPE
972       SYNTAX Counter32
973       MAX-ACCESS read-only
974       STATUS current
975       DESCRIPTION
976	"Number of accumulated accesses to this Folder."
977       ::= { msFolderEntry 13 }
978
979   msFolderLastAccess OBJECT-TYPE
980       SYNTAX TimeInterval
981       MAX-ACCESS read-only
982       STATUS current
983       DESCRIPTION
984	"Time since a User last accessed this Folder."
985       ::= { msFolderEntry 14 }
986
987   msFolderIsShared OBJECT-TYPE
988       SYNTAX INTEGER {
989         yes(1),
990         no(2)
991       }
992       MAX-ACCESS read-only
993       STATUS current
994       DESCRIPTION
995	"yes(1) if this Folder is shared by many Users."
996       ::= { msFolderEntry 15 }
997
998   msFolderName OBJECT-TYPE
999       SYNTAX DisplayString
1000       MAX-ACCESS read-only
1001       STATUS current
1002       DESCRIPTION
1003         "A descriptive name for the Folder."
1004       ::= { msFolderEntry 16 }
1005
1006
1007
1008   -- The msUserAccessTable provide some statitics about the usage
1009   -- of the MS per Access method.
1010
1011   msUserAccessTable OBJECT-TYPE
1012       SYNTAX SEQUENCE OF msGroupEntry
1013       MAX-ACCESS not-accessible
1014       STATUS current
1015       DESCRIPTION
1016         "The table holding statistics specific to each User per
1017          Access method."
1018       ::= { ms 7 }
1019
1020   msUserAccessEntry OBJECT-TYPE
1021       SYNTAX MsUserAccessEntry
1022       MAX-ACCESS not-accessible
1023       STATUS current
1024       DESCRIPTION
1025         "The entry associated with each User per Access method."
1026       INDEX { applIndex, msGroupIndex, msUserIndex, msUserAccessIndex }
1027       ::= { msUserAccessTable 1 }
1028
1029   MsUserAccessEntry ::= SEQUENCE {
1030       msUserAccessIndex,
1031         MsAccessMethod,
1032       msUserAccessListedMessages
1033         Counter32,
1034       msUserAccessFetchedMessages
1035         Counter32,
1036       msUserAccessDeletedMessages
1037         Counter32,
1038       msUserAccessListedVolume
1039         Counter32,
1040       msUserAccessFetchedVolume
1041         Counter32,
1042       msUserAccessDeletedVolume
1043         Counter32,
1044       msUserAccesses
1045         Gauge32,
1046       msUserAccumulatedAccesses
1047         Counter32,
1048       msUserLastAccess
1049         TimeInterval,
1050       msUserAccumulatedAccessTime
1051         TimeInterval,
1052       msUserRejectedAccesses
1053         Counter32,
1054       msUserAccessRejectionReason
1055         DisplayString
1056   }
1057
1058   msUserAccessIndex OBJECT-TYPE
1059       SYNTAX MsAccessMethod
1060       MAX-ACCESS not-accessible
1061       STATUS current
1062       DESCRIPTION
1063         "The index used to group statistics per Access method."
1064       ::= { msUserAccessEntry 1 }
1065
1066   msUserAccessListedMessages OBJECT-TYPE
1067       SYNTAX Counter32
1068       MAX-ACCESS read-only
1069       STATUS current
1070       DESCRIPTION
1071         "The total number of messages listed since MS initialization,
1072          per User and per Access method."
1073       ::= { msUserAccessEntry 2 }
1074
1075   msUserAccessFetchedMessages OBJECT-TYPE
1076       SYNTAX Counter32
1077       MAX-ACCESS read-only
1078       STATUS current
1079       DESCRIPTION
1080         "The total number of messages fetched since MS initialization,
1081          per User and per Access method."
1082       ::= { msUserAccessEntry 3 }
1083
1084   msUserAccessDeletedMessages OBJECT-TYPE
1085       SYNTAX Counter32
1086       MAX-ACCESS read-only
1087       STATUS current
1088       DESCRIPTION
1089         "The total number of messages deleted since MS initialization,
1090          per User and per Access method."
1091       ::= { msUserAccessEntry 4 }
1092
1093   msUserAccessListedVolume OBJECT-TYPE
1094       SYNTAX Counter32
1095       UNITS "K-octets"
1096       MAX-ACCESS read-only
1097       STATUS current
1098       DESCRIPTION
1099         "The total volume of messages listed since MS initialization,
1100          per User and per Access method, measured in kilo-octets."
1101       ::= { msUserAccessEntry 5 }
1102
1103   msUserAccessFetchedVolume OBJECT-TYPE
1104       SYNTAX Counter32
1105       UNITS "K-octets"
1106       MAX-ACCESS read-only
1107       STATUS current
1108       DESCRIPTION
1109         "The total volume of messages fetched since MS initialization,
1110          per User and per Access method, measured in kilo-octets."
1111       ::= { msUserAccessEntry 6 }
1112
1113   msUserAccessDeletedVolume OBJECT-TYPE
1114       SYNTAX Counter32
1115       UNITS "K-octets"
1116       MAX-ACCESS read-only
1117       STATUS current
1118       DESCRIPTION
1119         "The total volume of messages deleted since MS initialization,
1120          per User and per Access method, measured in kilo-octets."
1121       ::= { msUserAccessEntry 7 }
1122
1123   msUserAccesses OBJECT-TYPE
1124       SYNTAX Gauge32
1125       MAX-ACCESS read-only
1126       STATUS current
1127       DESCRIPTION
1128         "The number of current accesses per User per Access method."
1129       ::= { msUserAccessEntry 8 }
1130
1131   msUserAccumulatedAccesses OBJECT-TYPE
1132       SYNTAX Gauge32
1133       MAX-ACCESS read-only
1134       STATUS current
1135       DESCRIPTION
1136         "The total number of accesses to the MS since MS initialization,
1137          per User and per Access method."
1138       ::= { msUserAccessEntry 9 }
1139
1140   msUserLastAccess OBJECT-TYPE
1141       SYNTAX TimeInterval
1142       MAX-ACCESS read-only
1143       STATUS current
1144       DESCRIPTION
1145         "Time since the last time that the MS was accessed,
1146          per User and per Access method."
1147       ::= { msUserAccessEntry 10 }
1148
1149   msUserAccumulatedAccessTime OBJECT-TYPE
1150       SYNTAX TimeInterval
1151       MAX-ACCESS read-only
1152       STATUS current
1153       DESCRIPTION
1154         "The total time this User was connected to the
1155          MS since MS initialization, per Access method."
1156       ::= { msUserAccessEntry 11 }
1157
1158   msUserRejectedAccesses OBJECT-TYPE
1159       SYNTAX Counter32
1160       MAX-ACCESS read-only
1161       STATUS current
1162       DESCRIPTION
1163         "The total number of accesses the MS has rejected since MS
1164          initialization, per User and per Access method."
1165       ::= { msUserAccessEntry 12 }
1166
1167   msUserAccessRejectedReason OBJECT-TYPE
1168       SYNTAX DisplayString
1169       MAX-ACCESS read-only
1170       STATUS current
1171       DESCRIPTION
1172         "The failure reason, if any, for the last access this
1173         MS refused for that User. An empty string indicates that
1174         the last attempt was successful.  If no access attempt
1175         has been made since the MS was initialized the value
1176         should be 'never'."
1177       ::= { msUserAccessEntry 13 }
1178
1179
1180
1181   -- The msUserTransferTable provide some statitics about the usage
1182   -- of the MS per User and per Transfer method.
1183   --
1184   -- When the MS application does not communicate with the MTA
1185   -- (like "Berkeley Mailboxes"), there will no entry in this table.
1186
1187   msUserTransferTable OBJECT-TYPE
1188       SYNTAX SEQUENCE OF MsUserTransferEntry
1189       MAX-ACCESS not-accessible
1190       STATUS current
1191       DESCRIPTION
1192         "The table holding statistics per User and per
1193          Transfer method."
1194       ::= { ms 8 }
1195
1196   msUserTransferEntry OBJECT-TYPE
1197       SYNTAX MsUserTransferEntry
1198       MAX-ACCESS not-accessible
1199       STATUS current
1200       DESCRIPTION
1201         "The entry associated per User and per Transfer method."
1202       INDEX { applIndex, msGroupIndex, msUserIndex, msUserTransferIndex }
1203       ::= { msUserTransferTable 1 }
1204
1205   MsUserTransferEntry ::= SEQUENCE {
1206       msUserTransferIndex,
1207         MsTransferMethod,
1208       msUserTransferSentMessages
1209         Counter32,
1210       msUserTransferReceivedMessages
1211         Counter32,
1212       msUserTransferSentVolume
1213         Counter32,
1214       msUserTransferReceivedVolume
1215         Counter32,
1216       msUserTransfers
1217         Gauge32,
1218       msUserAccumulatedTranfers,
1219         Counter32,
1220       msUserLastTransfer
1221         TimeInterval,
1222       msUserFailedTransfers
1223         Counter32,
1224       msUserTransferFailureReason
1225         DisplayString
1226   }
1227
1228   msUserTransferIndex OBJECT-TYPE
1229       SYNTAX MsTransferMethod
1230       MAX-ACCESS not-accessible
1231       STATUS current
1232       DESCRIPTION
1233         "The index used to group statistics per Transfer method."
1234       ::= { msUserTransferEntry 1 }
1235
1236   msUserTransferSentMessages OBJECT-TYPE
1237       SYNTAX Counter32
1238       MAX-ACCESS read-only
1239       STATUS current
1240       DESCRIPTION
1241         "The total number of messages sent since MS initialization,
1242          per User and per Transfer method."
1243       ::= { msUserTransferEntry 2 }
1244
1245   msUserTransferReceivedMessages OBJECT-TYPE
1246       SYNTAX Counter32
1247       MAX-ACCESS read-only
1248       STATUS current
1249       DESCRIPTION
1250         "The total number of messages received since MS initialization,
1251          per User and per Transfer method."
1252       ::= { msUserTransferEntry 3 }
1253
1254   msUserTransferSentVolume OBJECT-TYPE
1255       SYNTAX Counter32
1256       UNITS "K-octets"
1257       MAX-ACCESS read-only
1258       STATUS current
1259       DESCRIPTION
1260         "The total volume of messages sent since MS initialization,
1261          per User and per Transfer method, measured in kilo-octets."
1262       ::= { msUserTransferEntry 4 }
1263
1264   msUserTransferReceivedVolume OBJECT-TYPE
1265       SYNTAX Counter32
1266       UNITS "K-octets"
1267       MAX-ACCESS read-only
1268       STATUS current
1269       DESCRIPTION
1270         "The total volume of messages received since MS initialization,
1271          per User and per Transfer method, measured in kilo-octets."
1272       ::= { msUserTransferEntry 5 }
1273
1274   msUserTransfers OBJECT-TYPE
1275       SYNTAX Gauge32
1276       MAX-ACCESS read-only
1277       STATUS current
1278       DESCRIPTION
1279         "The number of current tranfers to/from the MS,
1280          per User and per Transfert method."
1281       ::= { msUserTransferEntry 6 }
1282
1283   msUserAccumulatedTransfers OBJECT-TYPE
1284       SYNTAX Gauge32
1285       MAX-ACCESS read-only
1286       STATUS current
1287       DESCRIPTION
1288         "The total number of transfers to/from the MS since MS initialization,
1289          per User and per Transfer method."
1290       ::= { msUserTransferEntry 7 }
1291
1292   msUserLastTransfer OBJECT-TYPE
1293       SYNTAX TimeInterval
1294       MAX-ACCESS read-only
1295       STATUS current
1296       DESCRIPTION
1297         "Time since the last time that a message was transferred to/from the MS,
1298          per User and per Transfer method."
1299       ::= { msUserTransferEntry 8 }
1300
1301   msUserRejectedTransfers OBJECT-TYPE
1302       SYNTAX Counter32
1303       MAX-ACCESS read-only
1304       STATUS current
1305       DESCRIPTION
1306         "The total number of Transfers that failed since MS
1307          initialization, per User and per Transfer method."
1308       ::= { msUserTransferEntry 9 }
1309
1310   msUserTransferFailureReason OBJECT-TYPE
1311       SYNTAX DisplayString
1312       MAX-ACCESS read-only
1313       STATUS current
1314       DESCRIPTION
1315         "The failure reason, if any, for the last Transfer that failed.
1316         An empty string indicates that
1317         the last Transfer was successful. If no Transfer attempt
1318         has been made since the MS was initialized the value
1319         should be 'never'."
1320       ::= { msUserTransferEntry 10 }
1321
1322
1323
1324   -- The msAssocTable is useful to correlate the associations listed
1325   -- in the assocTable (see RFC 1565) with a User, its Group
1326   -- and the Folder he is currently accessing.
1327   --
1328   -- If we do not know the Folder he is currently accessing,
1329   -- the value of the msAssocFolderIndex should be "-1".
1330
1331   msAssocTable OBJECT-TYPE
1332       SYNTAX SEQUENCE OF msAssocEntry
1333       MAX-ACCESS not-accessible
1334       STATUS current
1335       DESCRIPTION
1336         "The table holding information regarding the associations
1337          for each User."
1338       ::= { ms 9 }
1339
1340   msAssocEntry OBJECT-TYPE
1341       SYNTAX MsAssocEntry
1342       MAX-ACCESS not-accessible
1343       STATUS current
1344       DESCRIPTION
1345         "The entry holding information regarding the associations
1346          for each User."
1347       INDEX { applIndex, msGroupIndex, msUserIndex, msAssocIndex, msAssocFolderIndex }
1348       ::= { msAssocTable 1}
1349
1350   MsAssocEntry ::= SEQUENCE {
1351       msAssocIndex
1352           INTEGER,
1353       msAssocFolderIndex
1354           INTEGER
1355   }
1356
1357   msAssocIndex OBJECT-TYPE
1358       SYNTAX INTEGER
1359       MAX-ACCESS read-only
1360       STATUS current
1361       DESCRIPTION
1362         "The value of assocIndex."
1363       ::= { msAssocEntry 1 }
1364
1365   msAssocFolderIndex OBJECT-TYPE
1366       SYNTAX INTEGER
1367       MAX-ACCESS read-only
1368       STATUS current
1369       DESCRIPTION
1370         "The value of msFolderIndex."
1371       ::= { msAssocEntry 2 }
1372
1373
1374   END
1375
1376