draft-ietf-extra-quota-06.txt   draft-ietf-extra-quota-07.txt 
Network Working Group A. Melnikov Network Working Group A. Melnikov
Internet-Draft Isode Internet-Draft Isode
Obsoletes: 2087 (if approved) 27 August 2021 Obsoletes: 2087 (if approved) 24 September 2021
Intended status: Standards Track Intended status: Standards Track
Expires: 28 February 2022 Expires: 28 March 2022
IMAP QUOTA Extension IMAP QUOTA Extension
draft-ietf-extra-quota-06 draft-ietf-extra-quota-07
Abstract Abstract
The QUOTA extension of the Internet Message Access Protocol (RFC The QUOTA extension of the Internet Message Access Protocol (RFC
3501/RFC 9051) permits administrative limits on resource usage 3501/RFC 9051) permits administrative limits on resource usage
(quotas) to be manipulated through the IMAP protocol. (quotas) to be manipulated through the IMAP protocol.
This document obsoletes RFC 2087, but attempts to remain backwards This document obsoletes RFC 2087, but attempts to remain backwards
compatible whenever possible. compatible whenever possible.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 28 February 2022. This Internet-Draft will expire on 28 March 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 52 skipping to change at page 2, line 52
4.2.1. QUOTA . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2.1. QUOTA . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2.2. QUOTAROOT . . . . . . . . . . . . . . . . . . . . . . 10 4.2.2. QUOTAROOT . . . . . . . . . . . . . . . . . . . . . . 10
4.3. Response Codes . . . . . . . . . . . . . . . . . . . . . 10 4.3. Response Codes . . . . . . . . . . . . . . . . . . . . . 10
4.3.1. OVERQUOTA . . . . . . . . . . . . . . . . . . . . . . 10 4.3.1. OVERQUOTA . . . . . . . . . . . . . . . . . . . . . . 10
5. Resource Type Definitions . . . . . . . . . . . . . . . . . . 12 5. Resource Type Definitions . . . . . . . . . . . . . . . . . . 12
5.1. STORAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.1. STORAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2. MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.2. MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3. MAILBOX . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.3. MAILBOX . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.4. ANNOTATION-STORAGE . . . . . . . . . . . . . . . . . . . 13 5.4. ANNOTATION-STORAGE . . . . . . . . . . . . . . . . . . . 13
6. Interaction with IMAP ACL extension (RFC 4314) . . . . . . . 13 6. Interaction with IMAP ACL extension (RFC 4314) . . . . . . . 13
7. Formal syntax . . . . . . . . . . . . . . . . . . . . . . . . 13 7. Formal syntax . . . . . . . . . . . . . . . . . . . . . . . . 14
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
9.1. Changes/additions to the IMAP4 capabilities registry . . 16 9.1. Changes/additions to the IMAP4 capabilities registry . . 16
9.2. IMAP quota resource type registry . . . . . . . . . . . . 16 9.2. IMAP quota resource type registry . . . . . . . . . . . . 17
9.3. Registrations of IMAP Quota Resource Types . . . . . . . 17 9.3. Registrations of IMAP Quota Resource Types . . . . . . . 17
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 19
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19
12. Changes since RFC 2087 . . . . . . . . . . . . . . . . . . . 19 12. Changes since RFC 2087 . . . . . . . . . . . . . . . . . . . 19
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
13.1. Normative References . . . . . . . . . . . . . . . . . . 19 13.1. Normative References . . . . . . . . . . . . . . . . . . 19
13.2. Informative References . . . . . . . . . . . . . . . . . 20 13.2. Informative References . . . . . . . . . . . . . . . . . 20
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20
1. Document Conventions 1. Document Conventions
In protocol examples, this document uses a prefix of "C: " to denote In protocol examples, this document uses a prefix of "C: " to denote
lines sent by the client to the server, and "S: " for lines sent by lines sent by the client to the server, and "S: " for lines sent by
skipping to change at page 3, line 42 skipping to change at page 3, line 42
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
Other capitalised words are IMAP keywords [RFC3501][RFC9051] or Other capitalised words are IMAP keywords [RFC3501][RFC9051] or
keywords from this document. keywords from this document.
2. Introduction and Overview 2. Introduction and Overview
This document defines a couple of extension to the Internet Message This document defines a couple of extensions to the Internet Message
Access Protocol [RFC3501] for querying and manipulating Access Protocol [RFC3501] for querying and manipulating
administrative limits on resource usage (quotas). This extension is administrative limits on resource usage (quotas). This extension is
compatible with both IMAP4rev1 [RFC3501] and IMAP4rev2 [RFC9051]. compatible with both IMAP4rev1 [RFC3501] and IMAP4rev2 [RFC9051].
The capability "QUOTA", denotes a RFC2087 [RFC2087] compliant server. The capability "QUOTA", denotes a RFC2087 [RFC2087] compliant server.
Some responses and response codes defined in this document are not Some responses and response codes defined in this document are not
present in such servers (see Section 12 for more details), and present in such servers (see Section 12 for more details), and
clients MUST NOT rely on their presence in the absence of any clients MUST NOT rely on their presence in the absence of any
capability beginning with "QUOTA=". capability beginning with "QUOTA=".
skipping to change at page 12, line 10 skipping to change at page 12, line 10
Example 3: C: A003 COPY 2:4 MEETING Example 3: C: A003 COPY 2:4 MEETING
S: * NO [OVERQUOTA] Soft quota has been exceeded S: * NO [OVERQUOTA] Soft quota has been exceeded
S: A003 OK [COPYUID 38505 304,319:320 3956:3958] COPY S: A003 OK [COPYUID 38505 304,319:320 3956:3958] COPY
command completed command completed
5. Resource Type Definitions 5. Resource Type Definitions
The following resource types are defined in this memo. A server The following resource types are defined in this memo. A server
supporting a resource type MUST advertise this as a CAPABILITY with a supporting a resource type MUST advertise this as a CAPABILITY with a
name consisting of the resource name prefixed by "QUOTA=RES-". A name consisting of the resource name prefixed by "QUOTA=RES-". A
server MAY support mupltiple resource types, and MUST advertise all server MAY support multiple resource types, and MUST advertise all
resource types it supports. resource types it supports.
5.1. STORAGE 5.1. STORAGE
The physical space estimate, in units of 1024 octets, of the The physical space estimate, in units of 1024 octets, of the
mailboxes governed by the quota root. This MAY not be the same as mailboxes governed by the quota root. This MAY not be the same as
the sum of the RFC822.SIZE of the messages. Some implementations MAY the sum of the RFC822.SIZE of the messages. Some implementations MAY
include metadata sizes for the messages and mailboxes, other include metadata sizes for the messages and mailboxes, other
implementations MAY store messages in such a way that the physical implementations MAY store messages in such a way that the physical
space used is smaller, for example due to use of compression. space used is smaller, for example due to use of compression.
skipping to change at page 13, line 49 skipping to change at page 13, line 49
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+
| GETQUOTAROOT | |*| | | | | | | | | | * | | GETQUOTAROOT | |*| | | | | | | | | | * |
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+
| SETQUOTA | | | | | | | | | | + | | | | SETQUOTA | | | | | | | | | | + | | |
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+
Table 1 Table 1
See Section 4 of RFC 4314 for conventions used in this table. See Section 4 of RFC 4314 for conventions used in this table.
Legend:
+ - The right is required
* - Only one of the rights marked with * is required
"Any" - at least one of the "l", "r", "i", "k", "x", "a" rights is
required
"Non" - no rights required to perform the command
7. Formal syntax 7. Formal syntax
The following syntax specification uses the Augmented Backus-Naur The following syntax specification uses the Augmented Backus-Naur
Form (ABNF) notation as specified in [ABNF]. Form (ABNF) notation as specified in [ABNF].
Non-terminals referenced but not defined below are as defined by Non-terminals referenced but not defined below are as defined by
IMAP4 [RFC3501]. IMAP4 [RFC3501].
Except as noted otherwise, all alphabetic characters are case- Except as noted otherwise, all alphabetic characters are case-
insensitive. The use of upper or lower case characters to define insensitive. The use of upper or lower case characters to define
skipping to change at page 18, line 23 skipping to change at page 18, line 34
Change Controller: IESG <iesg@ietf.org> Change Controller: IESG <iesg@ietf.org>
Description: The number of mailboxes governed by the quota root. Description: The number of mailboxes governed by the quota root.
Extra required IMAP commands/responses: N/A Extra required IMAP commands/responses: N/A
Extra optional IMAP commands/responses: N/A Extra optional IMAP commands/responses: N/A
Reference: Section 5.3 of RFCXXXX Reference: Section 5.3 of RFCXXXX
Name of the quota resource type: Name of the quota resource type: ANNOTATION-STORAGE
Author: Alexey Melnikov <alexey.melnikov@isode.com> Author: Alexey Melnikov <alexey.melnikov@isode.com>
Change Controller: IESG <iesg@ietf.org> Change Controller: IESG <iesg@ietf.org>
Description: The maximum size of all annotations [RFC5257], in units Description: The maximum size of all annotations [RFC5257], in units
of 1024 octets, associated with all messages in the mailboxes of 1024 octets, associated with all messages in the mailboxes
governed by the quota root. governed by the quota root.
Extra required IMAP commands/responses: N/A Extra required IMAP commands/responses: N/A
skipping to change at page 18, line 46 skipping to change at page 19, line 12
Reference: Section 5.4 of RFCXXXX Reference: Section 5.4 of RFCXXXX
10. Contributors 10. Contributors
Dave Cridland wrote lots of text in an earlier draft that became the Dave Cridland wrote lots of text in an earlier draft that became the
basis for this document. basis for this document.
11. Acknowledgments 11. Acknowledgments
Editors of this document would like to thank the following people who Editor of this document would like to thank the following people who
provided useful comments or participated in discussions that lead to provided useful comments or participated in discussions that lead to
this update to RFC 2087: John Myers, Cyrus Daboo, Lyndon Nerenberg this update to RFC 2087: John Myers, Cyrus Daboo, Lyndon Nerenberg.
This document is a revision of RFC 2087. It borrows a lot of text This document is a revision of RFC 2087. It borrows a lot of text
from RFC 2087. Thus work of the RFC 2087 author John Myers is from RFC 2087. Thus work of the RFC 2087 author John Myers is
appreciated. appreciated.
12. Changes since RFC 2087 12. Changes since RFC 2087
This document is a revision of RFC 2087. It tries to clarify meaning This document is a revision of RFC 2087. It tries to clarify the
of different terms used by RFC 2087. It also provides more examples, meaning of different terms used by RFC 2087. It also provides more
gives guidance on allowed server behaviour, defines IANA registry for examples, gives guidance on allowed server behaviour, defines IANA
quota resource types and provides initial registrations for 3 of registry for quota resource types and provides initial registrations
them. for 4 of them.
When compared with RFC 2087, this document defines two more commonly When compared with RFC 2087, this document defines two more commonly
used resource type, adds optional OVERQUOTA response code and defines used resource type, adds optional OVERQUOTA response code and defines
two extra STATUS data items ("DELETED" and "DELETED-STORAGE") that two extra STATUS data items ("DELETED" and "DELETED-STORAGE") that
must be implemented. For extensibility quota usage and quota limits must be implemented. For extensibility quota usage and quota limits
are now 63 bit unsigned integers. are now 63 bit unsigned integers.
13. References 13. References
13.1. Normative References 13.1. Normative References
 End of changes. 14 change blocks. 
18 lines changed or deleted 28 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/