Internet DRAFT - draft-carpenter-anima-grasp-config

draft-carpenter-anima-grasp-config







ANIMA                                                     B.E. Carpenter
Internet-Draft                                         Univ. of Auckland
Intended status: Standards Track                       21 September 2021
Expires: 25 March 2022


                GRASP Configuration Management Objective
                 draft-carpenter-anima-grasp-config-00

Abstract

   This document specifies a technical objective for dynamic
   configuration of the GeneRic Autonomic Signaling Protocol (GRASP)
   defined by RFC 8990.

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 https://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 25 March 2022.

Copyright Notice

   Copyright (c) 2021 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 (https://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 to this document.  Code Components
   extracted from this document must include Simplified BSD License text
   as described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Simplified BSD License.






Carpenter                 Expires 25 March 2022                 [Page 1]

Internet-Draft             GRASP Configuration            September 2021


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  Format of the GRASP Objective . . . . . . . . . . . . . . . .   2
   4.  Validation  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   5.  Implementation Status [RFC Editor: please remove] . . . . . .   4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   4
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   4
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   5
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .   5
     A.1.  Draft-00  . . . . . . . . . . . . . . . . . . . . . . . .   5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   The GeneRic Autonomic Signaling Protocol (GRASP) is specified in
   [RFC8990].  It has a few parameters that might need configuration to
   non-standard values, but since any form of manual configuration is to
   be avoided in an autonomic network, this document describes how GRASP
   can configure itself within a given autonomic network.  For the
   general model of such a network, see [RFC8993].

   The method is for an authoritative source in the autonomic network,
   most likely associated with the Network Operations Center (NOC), to
   use GRASP's flooding mechanism to periodically distribute a GRASP
   objective (as defined in [RFC8990]) to all GRASP nodes in that
   network.  Each node will then validate the contents of the objective
   as much as possible, and then apply any relevant configuration
   changes locally.

2.  Terminology

   The key words "*MUST*", "*MUST NOT*", "*REQUIRED*", "*SHALL*",
   "*SHALL NOT*", "*SHOULD*", "*SHOULD NOT*", "*RECOMMENDED*", "*NOT
   RECOMMENDED*", "*MAY*", and "*OPTIONAL*" in this document are to be
   interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only
   when, they appear in all capitals, as shown here.

3.  Format of the GRASP Objective

   The formal definition of the GRASP objective is as follow, defined in
   fragmentary CDDL [RFC8610].





Carpenter                 Expires 25 March 2022                 [Page 2]

Internet-Draft             GRASP Configuration            September 2021


   objective = ["GraspConfig", objective-flags, loop-count, objective-value]

   loop-count = 0..255         ; as in the GRASP specification
   objective-flags /=          ; as in the GRASP specification

   objective-value  /= { 1*gc-element }

   gc-element  = ( gc-element-codepoint => gc-element-value )
   gc-element-codepoint = uint
   gc-element-value     = any

   Initially, the following codepoints are defined:

      gc-element-codepoint //= ( &(sender:0) => ipv6-address )
      ipv6-address = bytes .size 16

   This provides the address of the original sender of the flooded
   objective.

      gc-element-codepoint //= ( &(sender-loop-count:1) => 1..255 )

   This provides the original loop count at the sender, so that the
   receiver can compute how many hops the flood has taken.

      gc-element-codepoint //= ( &(grasp-version:2) => 1..255 )

   At the moment there is only one version of GRASP.  This element is
   reserved for possible future use.

      gc-element-codepoint //= ( &(max-multicast:3) => 1..65535 )
      gc-element-codepoint //= ( &(max-unicast:4)   => 1..65535 )

   These elements can be used to change the default maximum message
   sizes for multicast and unicast GRASP messages respectively.  The
   sizes *MUST NOT* be reduced below the default specified by [RFC8990].

4.  Validation

   Upon receipt of a changed configuration element, each GRASP node
   *MUST* validate it to the extent possible.  The sender and sender-
   loop-count elements may be used as part of the validation process.










Carpenter                 Expires 25 March 2022                 [Page 3]

Internet-Draft             GRASP Configuration            September 2021


5.  Implementation Status [RFC Editor: please remove]

   An experimental Autonomic Service Agent (ASA) supporting the
   "GraspConfig" objective has been added to the Python prototype
   implementation of GRASP.  This ASA periodically checks for the
   flooded objective and reconfigures GRASP's multicast and unicast
   maximum message sizes accordingly.  Another experimental ASA has been
   implemented to periodically flood the "GraspConfig" objective as
   would be done by a NOC, based on a JSON file expressing the required
   configuration.  No problems were observed while running these two
   ASAs at the same time as other GRASP operations.  Code is on Github
   (https://github.com/becarpenter/graspy).

6.  IANA Considerations

   This document defines a new GRASP Objective Option name,
   "GraspConfig".  The IANA is requested to add this to the GRASP
   Objective Names Table registry defined by [RFC8990] (if approved).

   Open issue: Should IANA also register the gc-element-codepoints?  (A
   similar registration is described in [I-D.eckert-anima-grasp-dnssd]
   for the proposed "SRV." group of GRASP objectives.  Another option
   would be to change "GraspConfig" to "SRV.GraspConfig".)

7.  Security Considerations

   The security considerations of [RFC8990] apply.

8.  Acknowledgements

   TBD

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.







Carpenter                 Expires 25 March 2022                 [Page 4]

Internet-Draft             GRASP Configuration            September 2021


   [RFC8610]  Birkholz, H., Vigano, C., and C. Bormann, "Concise Data
              Definition Language (CDDL): A Notational Convention to
              Express Concise Binary Object Representation (CBOR) and
              JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610,
              June 2019, <https://www.rfc-editor.org/info/rfc8610>.

   [RFC8990]  Bormann, C., Carpenter, B., Ed., and B. Liu, Ed., "GeneRic
              Autonomic Signaling Protocol (GRASP)", RFC 8990,
              DOI 10.17487/RFC8990, May 2021,
              <https://www.rfc-editor.org/info/rfc8990>.

9.2.  Informative References

   [I-D.eckert-anima-grasp-dnssd]
              Eckert, T., Boucadair, M., Jacquenet, C., and M. H.
              Behringer, "DNS-SD Compatible Service Discovery in GeneRic
              Autonomic Signaling Protocol (GRASP)", Work in Progress,
              Internet-Draft, draft-eckert-anima-grasp-dnssd-02, 12 July
              2021, <https://datatracker.ietf.org/doc/html/draft-eckert-
              anima-grasp-dnssd-02>.

   [RFC8993]  Behringer, M., Ed., Carpenter, B., Eckert, T., Ciavaglia,
              L., and J. Nobre, "A Reference Model for Autonomic
              Networking", RFC 8993, DOI 10.17487/RFC8993, May 2021,
              <https://www.rfc-editor.org/info/rfc8993>.

Appendix A.  Change Log

A.1.  Draft-00

   *  Original version

Author's Address

   Brian E. Carpenter
   The University of Auckland
   School of Computer Science
   PB 92019
   Auckland 1142
   New Zealand

   Email: brian.e.carpenter@gmail.com









Carpenter                 Expires 25 March 2022                 [Page 5]