TRILL Working Group                                  Donald Eastlake 3rd
INTERNET-DRAFT                                                    Huawei
Expires: April 16, 2011                                 October 17, 2011


              RBridges: More Proposed TRILL Header Options
           <draft-eastlake-trill-rbridge-more-options-03.txt>


Abstract

   The TRILL base protocol standard, RFC 6325, specifies minimal hooks
   for options and draft-ietf-trill-rbridge-options specifies the format
   for options and a proposed initial set of options. This draft is a
   holding location for additional proposed options. It is not intended
   that this draft will ever progress to be an RFC.


Status of This Memo

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

   Distribution of this document is unlimited. Comments should be sent
   to the TRILL working group mailing list <rbridge@postel.org>.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html














D. Eastlake                                                     [Page 1]


INTERNET-DRAFT                             Proposed TRILL Header Options


Table of Contents

      1. Introduction............................................3
      1.1 Terminology............................................3

      2. Extended Flag Options...................................4

      3. TLV Options.............................................5
      3.1 Additional Flags TLV Option............................5
      3.2 Port ID TLV Option.....................................5
      3.3 Extended Options TLV...................................6
      3.3.1 Extended Options IANA Considerations.................7
      3.4 Vendor Options TLV.....................................8
      3.5 Authentication TLV Option..............................8
      3.5.1 Authentication Option Computations...................9
      3.5.2 Authentication Option Fields and Flags...............9

      4. Acknowledgement........................................10
      5. Security Considerations................................10
      6. IANA Considerations....................................10
      7. Normative References...................................11
      8. Informative References.................................11






























D. Eastlake                                                     [Page 2]


INTERNET-DRAFT                             Proposed TRILL Header Options


1. Introduction

   The IETF has standardized the TRILL protocol [RFC6325] a solution for
   transparent shortest-path frame routing in multi-hop Ethernet
   networks with arbitrary topologies, using an existing link-state
   routing protocol and encapsulation with a hop count. That standard
   specifies minimal hooks for options and [RFCopt] specifies the format
   for options and a proposed initial set of options.

   This draft is a holding location for other proposed TRILL header
   options. The options described here may or may not ever be adopted as
   extensions to the TRILL protocol specification. Most of the
   descriptions herein need at least some further work, may be missing
   IANA or Security Considerations, or have other problems. It is not
   intended that this draft will ever progress to be an RFC.



1.1 Terminology

   The terminology and acronyms of [RFC6325] are used in this document.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].



























D. Eastlake                                                     [Page 3]


INTERNET-DRAFT                             Proposed TRILL Header Options


2. Extended Flag Options

   Options that appear bit encoded in the TRILL Header options area
   (extended header flag options) are specified in Section 2.3.1 of
   [RFCopt] and a specific bit option is specified in Section 3 of
   [RFCopt].

   No additional extended flag options are specified in this version of
   this document.











































D. Eastlake                                                     [Page 4]


INTERNET-DRAFT                             Proposed TRILL Header Options


3. TLV Options

   Options that are Type, Length, Value (TLV) encoded in the TRILL
   Header options area (TLV options) are specified in Section 2.3.2 and
   2.3.3 of [RFCopt]. Two specific TLV options are specified in Section
   4 of [RFCopt].

   A number of potential additional TRILL Header TLV options are
   specified below.



3.1 Additional Flags TLV Option

   This option provides a means of adding a variety of additional flags
   to the TRILL Header beyond the extended header flag options available
   in the first four octets of the options area.

   The value of a flags option consists of additional flags, eight per
   octet, numbered from the high-order to the low-order bit. Thus flag 1
   is the 0x80 bit of the first octet, flag 8 is the 0x01 bit of that
   octet, flag 9 is the 0x80 bit of the second octet, etc. The number of
   additional flags that can be defined is bounded only by the options
   space that can be available. All flags not present, because they
   would be in value octets beyond those specified by the option Length,
   are considered zero.

   This option can appear once in a frame for each possible combination
   of the ingress-to-egress, hop-by-hop, non-critical, critical, mutable
   and immutable flags (all combinations except for mutable critical
   hop-by-hop, which is a meaningless). To simplify canonicalization for
   security, this option MUST NOT be included if all of the flag bits
   would be zero and the value MUST NOT have any trailing zero octets.
   Thus its Length MUST be at least 1 and at least the last octet of the
   value present MUST be non-zero.

   The option fields and flags are as follows:

      o  Type is 0xTBD.
      o  Length is variable with a minimum value of 1.
      o  IE, NC, MT can be any valid combination producing several
         variations of this option.



3.2 Port ID TLV Option

   The primary purpose of the Port ID option is to normally avoid the
   unicast Inner.MacDA address lookup at the egress RBridge to find the
   port on which to send a decapsulated native frame.


D. Eastlake                                                     [Page 5]


INTERNET-DRAFT                             Proposed TRILL Header Options


   This option provides a 2-octet logical destination port and a 2-octet
   logical source port that, in some ways, could be considered
   extensions to the 6-octet inner destination and source MAC addresses
   in a frame.  These logical port designators are local to the
   destination and source RBridges respectively. They may be any values
   that those RBridges find convenient to efficiently map to their
   physical ports except that the value 0x0000 is used to indicate that
   a logical port designator is unknown and the value 0xFFFF is reserved
   and MUST NOT appear in a port ID option. Should an RBridge
   implementing this option receive a frame with a destination port ID
   of 0xFFFF it handles it as if the destination port ID was 0x0000.

   RBridges that implement this option learn the Port ID for a remote
   MAC address from the source Port ID field in the Port ID option, if
   present, in frames they decapsulate in the same way they can learn
   the ingress RBridge and VLAN. This information is timed out or
   replaced in the same manner as remote MAC address information learned
   from the data plane. Such RBridges include their local Port ID in the
   source field of a Port ID option when encapsulating a frame when
   inclusion of this option is indicated by their local policy.

   For known unicast TRILL data frames, one would expect ingress
   RBridges implementing this option to include the option if they are
   sending to egress RBridges that also implement the option. For multi-
   destination TRILL data frames, inclusion of a Port ID option with a
   source port ID may make sense but the destination port ID is
   meaningless and ignored by egress RBridges.

   The option fields and flags are as follows:

      o  Type is 0xTBD.
      o  Length MUST be 6. The data is the 2-octet destination port ID
         followed by the 2-octet source port IS followed by two reserved
         octets. The reserved octets MUST be set to zero when this
         option is inserted by an ingress RBridge, be copied without
         change but otherwise ignored by transit RBridges, and be
         ignored by egress RBridges.
      o  IE and NC MUST be one. This is an ingress-to-egress non-
         critical option.
      o  MT MUST be zero. This is an immutable option.



3.3 Extended Options TLV

   This option provides an extension mechanism for shorter options to
   avoid using up top-level Types in TLV option encoding. These extended
   options could be referred to as sub-TLV encoded.

   The value part of an Extended Options TLV consists of extended


D. Eastlake                                                     [Page 6]


INTERNET-DRAFT                             Proposed TRILL Header Options


   options each of which is sub-TLV encoded as follows:

   | 0  1  2  3  4  5  6  7  8| 9 10 11 12 13 14 15|
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---
   |          Extended Type            |  Length   | Value...
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---
   |                          |                    |

   The Extended Type is an unsigned 12-bit number whose high order part
   is the first octet and whose low order part is the high order four
   bits of the second octet.

   The Length field is the low order four bits of the second octet. It
   gives the length of the extended option value, that is, the number of
   additional octets after the extended type and length.

   There is no need for IE, NC, or MT flags in an extended option sub-
   TLV because each particular extended option inherits its IE, NC, and
   MT status from the enclosing Extended Options TLV.

   The length specified in an Extended Options TLV MUST be exactly the
   sum of the total lengths of the Extended Options that its value area
   contains, that is, the sum of the enclosed Extended Option sub-TLV
   lengths plus two times the number of Extended Option sub-TLVs for
   their initial two octets.

   If multiple Extended Options are present in an Extended Options TLV,
   there is no space between them. Thus, while an Extended Option is an
   integer number of octets, it has no other special alignment. Transit
   RBridges MUST NOT re-order the extended options within an ingress-to-
   egress Extended Options TLV.

   The option fields and flags are as follows:

      o  Type is 0xTBD.
      o  Length minimum 2.
      o  IE, NC, and MT can be any valid combination producing several
         variations of this option.



3.3.1 Extended Options IANA Considerations

   The Extended Types 0x000 and 0xFFF are reserved and require IETF
   standards action for allocation. The values 0x001 through 0xFFE are
   available for assignment based on RFC publication. The assigning RFC
   MUST specify, for each extended option type, the allowed values of
   the IE, NC, and MT bits in the Extended Options TLV that will enclose
   occurrences of that specific Extended Option.



D. Eastlake                                                     [Page 7]


INTERNET-DRAFT                             Proposed TRILL Header Options


3.4 Vendor Options TLV

   This option is provided to supply a standard method for the
   specification of vendor specific options in a TRILL Header. Vendor
   identity and specific options are encoded into the value associated
   with the option.  Since vendor specific options could require any
   valid combination of the IE, NC, and MT bits, they inherit they
   inherit these from enclosing Vendor Options TLV.

   Each vendor specific option starts with three bytes of OUI followed
   by a forth byte that has, in the bottom four bits, the length of the
   additional value of the vendor specific option in bytes. The top four
   bits of this fourth byte are available for vendor use, for example,
   to distinguish different options.

   Transit RBridges MUST NOT re-order the vendor specific options within
   an ingress-to-egress Vendor Options TLV. The Vendor Options fields
   and flags are as follows:

   o  Type is 0xTBD.
   o  Length is variable with a minimum of 4.
   o  IE, NC, and MT can be any valid combination producing several
      variations of this option.



3.5 Authentication TLV Option

   [The write-up of this option is not complete.]

   TRILL provides an authentication option that builds on the IS-IS
   security keying [RFC5304] [RFC5310] and can be applied to frames with
   a TRILL Header.

   The first octet of the option value is the same algorithm selection
   code as for the IS-IS Authentication TLV (IS-IS TLV #). The value
   length for the option is variable and depends on the algorithm in the
   same way as the value in the IS-IS security TLV. Algorithm zero
   indicates a plain text password which must be configured in code
   which generates and checks this TLV and is NOT RECOMMENDED. Thus far,
   other algorithms have indicated HMAC signing of a canonical form of
   the message using a shared secret that must likewise be configured.

   This option can appear up to twice in a frame, once for ingress-to-
   egress authentication and once for hop-by-hop authentication.







D. Eastlake                                                     [Page 8]


INTERNET-DRAFT                             Proposed TRILL Header Options


3.5.1 Authentication Option Computations

   For algorithms which depend on the value of the frame (i.e., all
   strong authentication algorithms), the frame must be canonicalized
   before the authentication code is computed or verified. This
   canonicalization is logically done by copying the frame starting with
   the TRILL Header and modifying the copy as follows:

   1. Set the TRILL Header Hop Count to zero.

   2. Clear the octets of the Security Option after the algorithm
      selection code.

   3. For all mutable options, setting the option Length to zero and
      remove any value octets.

   4. If an ingress-to-egress authentication code is being computed,
      since hop-by-hop options can be added or deleted in transit, all
      hop-by-hop options must be removed from the frame copy. When a
      critical hop-by-hop option is removed, any required adjustments
      must be made in the remainder of the frame, as if it was about to
      be forwarded to an RBridge that did not support that hop-by-hop
      critical option.

   5. Adjust the TRILL Header Op-Length downward as necessary to make it
      correct for the other adjustments made in the frame copy.

   The authentication code is then calculated using this copy and either
   inserted into the authentication option in the real frame for
   transmission or compared against the authentication code in the real
   frame for verification.



3.5.2 Authentication Option Fields and Flags

   The security option fields and flags are as follows:

      o  Type is 0xTBD.
      o  Length MUST be at least 1.
      o  IE is variable. There may be an ingress-to-egress or hop-by-hop
         security option in a frame or both.
      o  NC and MT MUST be zero. This is a critical, immutable option.









D. Eastlake                                                     [Page 9]


INTERNET-DRAFT                             Proposed TRILL Header Options


4. Acknowledgement

   The Port ID option was suggested as part of the TRILL Header by
   Silvano Gai.



5. Security Considerations

   -- TBD --



6. IANA Considerations

   -- See IANA Considerations sub-sections above. --




































D. Eastlake                                                    [Page 10]


INTERNET-DRAFT                             Proposed TRILL Header Options


7. Normative References

   [RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate
         Requirement Levels", BCP 14, RFC 2119, March 1997

   [RFC6325] - Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S., and A.
         Ghanwani, "Routing Bridges (RBridges): Base Protocol
         Specification", RFC 6325, July 2011.

   [RFCopt] - D. Eastlake, A. Ghanwani, V. Manral, and C. Bestler,
         "RBridges: TRILL Header Options", draft-ietf-trill-rbridge-
         options, work in progress, June 2010.



8. Informative References

   [RFC5304] - Li, T. and R. Atkinson, "Intermediate System to
         Intermediate System (IS-IS) Cryptographic Authentication", RFC
         5304, October 2008.

   [RFC5310] - Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
         and M. Fanto, "IS-IS Generic Cryptographic Authentication", RFC
         5310, February 2009.




























D. Eastlake                                                    [Page 11]


INTERNET-DRAFT                             Proposed TRILL Header Options


Authors' Addresses

   Donald E. Eastlake 3rd
   Huawei Technologies
   155 Beaver Street
   Milford, MA 01757

   tel: +1-508-333-2270
   email: d3e3e3@gmail.com











































D. Eastlake                                                    [Page 12]


INTERNET-DRAFT                             Proposed TRILL Header Options


Copyright and IPR Provisions

   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
   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.  The definitive version of
   an IETF Document is that published by, or under the auspices of, the
   IETF. Versions of IETF Documents that are published by third parties,
   including those that are translated into other languages, should not
   be considered to be definitive versions of IETF Documents. The
   definitive version of these Legal Provisions is that published by, or
   under the auspices of, the IETF. Versions of these Legal Provisions
   that are published by third parties, including those that are
   translated into other languages, should not be considered to be
   definitive versions of these Legal Provisions.  For the avoidance of
   doubt, each Contributor to the IETF Standards Process licenses each
   Contribution that he or she makes as part of the IETF Standards
   Process to the IETF Trust pursuant to the provisions of RFC 5378. No
   language to the contrary, or terms, conditions or rights that differ
   from or are inconsistent with the rights and licenses granted under
   RFC 5378, shall have any effect and shall be null and void, whether
   published or posted by such Contributor, or included with or in such
   Contribution.





















D. Eastlake                                                    [Page 13]