N/A                                                            A. Deason
Internet-Draft                                               Sine Nomine
Intended status: Informational                          February 2, 2011
Expires: August 6, 2011


   Adding a Flexible GetSize RPC Variant to the AFS-3 Volume Service
                     draft-deason-afs3-getsizev2-00

Abstract

   This document describes an additional RX remote procedure call that
   may be used to obtain the size of an AFS-3 volume dump from an AFS-3
   Volume Server service with greater flexibility and granularity.

Internet Draft Comments

   Comments regarding this draft are solicited.  Please include the
   AFS-3 protocol standardization mailing list
   (afs3-standardization@openafs.org) as a recipient of any comments

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 6, 2011.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Deason                   Expires August 6, 2011                 [Page 1]


Internet-Draft        AFS-3 AFSVol Flexible GetSize        February 2011


   to this document.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  RPC Interface . . . . . . . . . . . . . . . . . . . . . . . . . 3
     3.1.  GetSizeV2 . . . . . . . . . . . . . . . . . . . . . . . . . 3
     3.2.  GetSizeV2 Flags . . . . . . . . . . . . . . . . . . . . . . 4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   6.  AFS-3 Registry Considerations . . . . . . . . . . . . . . . . . 5
   7.  Informative References  . . . . . . . . . . . . . . . . . . . . 5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 5




































Deason                   Expires August 6, 2011                 [Page 2]


Internet-Draft        AFS-3 AFSVol Flexible GetSize        February 2011


1.  Introduction

   AFS-3 provides a service (the "Volume Service") [AFS3-VVL] which
   allows administrators to examine and manage AFS-3 volumes via several
   RX remote procedure calls in the AFSVol package.  One of these RPCs,
   Dump, can be used to obtain a dump of an AFS-3 volume that can be
   stored on disk, usually for backup or archival purposes.  Another
   RPC, DumpV2, was later added to allow the caller to make slight
   modifications to what data is contained in the dump by way of
   specifying certain flags in an additional argument.

   Another RPC, GetSize, can be used to obtain what the size of a dump
   obtained with Dump would be without needing to actually retrieve the
   full dump.  However, no analogous RPC exists to determine what the
   size of a volume dump obtained via DumpV2 would be if any flags were
   specified in the DumpV2 call.


2.  Error Codes

   The existing VOLSERBAD_ACCESS, VOLSERTRELE_ERROR, and ENOENT error
   codes are used by the new RPC defined within this document.


3.  RPC Interface

   One new RPC is defined for the Volume Service: GetSizeV2.
   Additionally, a new namespace for GetSizeV2 flags is defined, and one
   flag in that namespace is defined.

3.1.  GetSizeV2

   This behaves exactly the same way as the existing GetSize RPC, except
   for the addition of the flags argument, which behaves similarly to
   the flags argument of the existing DumpV2 RPC.

       GetSizeV2(IN afs_int32 fromTrans, IN afs_int32 fromDate,
                 IN afs_int32 flags, OUT struct volintSize *size) = XXX;

   The fromTrans parameter is a transaction ID as returned by the RPC
   TransCreate.  The size calculated will be the size of an incremental
   dump containing volume changes made after the specified calendar time
   fromDate, specified as the number of seconds since the Unix Epoch.
   If the specified fromDate is 0, the size for a full volume dump will
   be reported.

   The flags parameter is zero or more flags combined via a bitwise OR
   operation.  The available flags are described below in Section 3.2.



Deason                   Expires August 6, 2011                 [Page 3]


Internet-Draft        AFS-3 AFSVol Flexible GetSize        February 2011


   The calculated dump size will be returned in the size parameter,
   represented in bytes.

   On success, the call returns 0.  If the calling user does not have
   sufficient permission, VOLSERBAD_ACCESS is returned.  If the
   specified transaction does not exist, ENOENT is returned.  If there
   is an error releasing the volume transaction, VOLSERTRELE_ERROR is
   returned.

3.2.  GetSizeV2 Flags

   The defined flags for GetSizeV2 are analogous to the flags in DumpV2,
   although all future flags defined for GetSizeV2 need not have
   equivalents in DumpV2 and vice versa.  As such, since there is only
   one flag currently defined for DumpV2 (VOLDUMPV2_OMITDIRS), there is
   only one flag defined for GetSizeV2:

   VOLGETSIZEV2_OMITDIRS = XXX

      This is the GetSizeV2 analogue of the DumpV2 flag
      VOLDUMPV2_OMITDIRS.  If this flag is set, the volume dump size
      will be calculated for a dump generated by a DumpV2 call where the
      flag VOLDUMPV2_OMITDIRS was set.  Such a dump does not include
      directory information for the parent directories of any modified
      directory entries, if the modification time for the parent
      directories are earlier than the specified fromDate.


4.  Security Considerations

   Current AFS-3 implementations only allow users listed in the server's
   AFS-3 Basic OverSeer's UserList to issue Dump, DumpV2, and GetSize
   RPCs successfully.  It is recommended that implementations also only
   allow such users to issue the GetSizeV2 RPC for consistency and to
   reduce potential Denial of Service attack vectors from
   unauthenticated clients.

   Additionally, while the size of a volume is not sensitive (and may be
   obtained from other RPCs from an unauthenticated user, such as
   XListVolumes), information on when a volume's contents have changed
   might be considered sensitive under some circumstances.  And since
   the GetSize and GetSizeV2 RPCs are generally only useful to members
   of the UserList, it makes little sense to allow any other users to
   call them.







Deason                   Expires August 6, 2011                 [Page 4]


Internet-Draft        AFS-3 AFSVol Flexible GetSize        February 2011


5.  IANA Considerations

   This document makes no request of the IANA.


6.  AFS-3 Registry Considerations

   This document requires the registration of one code point for the
   AFSVol GetSizeV2 RPC detailed above.

   This document also requests that the AFS-3 Registrar assumes control
   over the GetSizeV2 flags namespace.  This document requires the
   registration of one flag in this namespace, AFSVOLGETSIZEV2_OMITDIRS,
   detailed above.


7.  Informative References

   [AFS3-VVL]
              Zayas, E., "AFS-3 Programmer's Reference: Volume Server/
              Volume Location Server Interface", Transarc Corp. Tech.
              Rep. FS-00-D165, August 1991.


Author's Address

   Andrew Deason
   Sine Nomine Associates
   43596 Blacksmith Square
   Ashburn, Virginia  20147-4606
   USA

   Phone: +1 703 723 6673
   Email: adeason@sinenomine.net

















Deason                   Expires August 6, 2011                 [Page 5]