RFC 2872

Application and Sub Application Identity Policy Element for Use with RSVP

๐Ÿ“… published June 2000, from ietf

RFC 2872: Application and Sub Application Identity Policy Element for Use with RSVP ๐Ÿ’–

Okay bestie, this is the RFC that explains how to tag RSVP reservation requests with which app is asking for the bandwidth. ๐ŸŽ€

RFC 2872 is a Standards Track document from June 2000, written by Y. Bernet and R. Pabbati at Microsoft ๐Ÿซถ. It doesn't list anything it obsoletes or updates. โœจ


Status of This Memo ๐Ÿ“‹

This document is an Internet standards track protocol spec for the Internet community. It's asking for discussion and suggestions for improvements. For the standardization state and status, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited. ๐ŸŒธ

Copyright (C) The Internet Society (2000). All Rights Reserved. ๐Ÿ’œ

Conventions 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]. ๐Ÿฆ‹

Abstract ๐ŸŒˆ

RSVP [RFC 2205] signaling messages usually carry policy data objects, and those hold policy elements. Policy elements can describe the user and/or the application, and RSVP-aware network elements can use that info to make policy decisions about a traffic flow. This memo is all about policy elements that carry application info. ๐Ÿ“

1. Overview ๐Ÿงš

Okay so RSVP-aware network elements can act as policy enforcement points (PEPs) ๐Ÿ’…. They team up with policy decision points (PDPs) to enforce QoS policy. The gist: PEPs pull policy info out of RSVP signaling requests and compare it with what a PDP has stored in a policy database or directory, which might be somewhere remote. Then a policy decision gets made based on that comparison. โœจ

One type of policy info says which application made the RSVP signaling request. When app policy info is available, network admins can manage QoS by application type. For example, an admin could set a policy that prioritizes known mission-critical apps over games. Main character energy for the important stuff ๐Ÿ‘‘๐ŸŽฎ

This memo describes a structure for a policy element that identifies application traffic flows. The policy element has a bunch of attributes, and one of them is a policy locator. That locator has these hierarchically ordered sub-elements, from top level down:

  1. identifier that uniquely identifies the application vendor
  2. identifier of the application
  3. version number of the application
  4. sub-application identifier

You can put any number of sub-application identifiers in the policy locator. An example is 'print transaction' ๐Ÿ–จ๏ธ

This memo lays out the structure of the application policy element and suggests keywords for the sub-elements at each level. It does not list specific values for those sub-elements, because enumerating them is beyond the scope of this memo. ๐Ÿ™ˆ

2. Simple Application Identity Policy Element Structure ๐ŸŽ€

General application identity policy elements are defined in [RFC2752]. These have a P-type of AUTH_APP. After the policy element header comes a list of authentication attributes. ๐Ÿซง

The first authentication attribute has the A-type POLICY_LOCATOR. Its sub-type is ASCII_DN [RFC1779] or UNICODE_DN. The actual attribute data is an X.500 distinguished name (DN), which stands in for a globally unique identifier, the application, the version number, and the sub-application, all in a hierarchy. The POLICY_LOCATOR attribute uses the keywords described in section 2. For more on the POLICY_LOCATOR format, see [RFC2752]. ๐Ÿ”‘

The second authentication attribute has the A-type CREDENTIAL. Its sub-type is ASCII_ID or UNICODE_ID, and the attribute data is an ASCII or Unicode string with the application name. Here's the diagram ๐Ÿ‘€

            0              1               2               3
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    PE Length (8)              |   P-type = AUTH_APP           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Attribute Length           |   A-type =    |  Sub-type =   |
   |                               | POLICY_LOCATOR|   ASCII_DN    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Application policy locator attribute data in X.500 DN format  |
   |                         (see below)                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Attribute Length           |   A-type =    |  Sub-type =   |
   |                               |   CREDENTIAL  |   ASCII_ID    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Application name as ASCII string              |
   |                         (e.g. SAP.EXE)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

These keywords are recommended, though you're allowed to use others (MAY):

Key  Attribute
--------------
GUID Globally Unique Identifier (optional)
APP  Application Name
VER  Application Version Number
SAPP Sub Application (optional)

Here are some examples of conformant policy locators ๐Ÿ’–

"APP=SAP, VER=1.1, SAPP=Print"

"GUID=http://www.microsoft.com/apps, APP=MyApplication, VER=1.2.3"

Real talk about the rules: the APP, VER and SAPP attributes SHOULD describe the app to a human reader in the most unique and unambiguous way possible. โœจ The GUID attribute MAY be used when you need absolute uniqueness, and its contents MUST be an identifier from a globally-unique source (like domain names assigned by the right registration authorities). Also, publishing the chosen identifiers in a suitable format is strongly encouraged ๐Ÿ“ฃ

3. Security Considerations ๐Ÿ”

โš ๏ธ Big warning, bestie: the simple policy element doesn't guarantee that it's actually linked to the application it claims. To get that kind of guarantee, applications would need to be signed. Signed application policy elements might be proposed later. Also, the application policy element usually rides in an RSVP message alongside an encrypted and authenticated user policy element. So the app element only gets trusted if the user policy element is trusted. Security is only as strong as that trust chain ๐Ÿฅบ

All RSVP integrity considerations apply to the message that carries the application policy element. ๐Ÿ›ก๏ธ

4. References ๐Ÿ“š

[RFC2205] Braden, R., Zhang, L., Berson, L., Herzog, S. and S. Jamin, "Resource Reservation Protocol (RSVP) - Version 1 Functional Specification", RFC 2205, September 1997.

[RFC1779] Kille, S., "A String Representation of Distinguished Names", RFC 1779, March 1995.

[RFC2752] Yadav, S., Yavatkar, R., Pabbati, R,. Ford, P., Moore, T. and S. Herzog, "Identity Representation for RSVP", RFC 2752, January 2000.

[ASCII] Coded Character Set -- 7-Bit American Standard Code for Information Interchange, ANSI X3.4-1986.

[UNICODE] The Unicode Consortium, "The Unicode Standard, Version 2.0", Addison-Wesley, Reading, MA, 1996.

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

5. Acknowledgments ๐Ÿซถ

Thanks to Tim Moore, Shai Mohaban, Andrew Smith, Ulrich Homann and other contributors to the IETF's RAP WG for their input. You all ate ๐Ÿฐ

6. Authors' Addresses ๐Ÿก

Yoram Bernet Microsoft One Microsoft Way Redmond, WA 98052

Phone: (425) 936-9568 EMail: yoramb@microsoft.com

Ramesh Pabbati One Microsoft Way Redmond, WA 98052

EMail: rameshpa@microsoft.com

Copyright (C) The Internet Society (2000). All Rights Reserved.

Here's the fine print, and it matters ๐Ÿ“œ You can copy and share this document and translations of it, and you can make derivative works that comment on or explain it or help implement it. You can publish and distribute those in whole or in part, with no restriction, as long as the copyright notice and this paragraph stay on all copies and derivative works. But the document itself can't be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organizations. The exception is when you're developing Internet standards, in which case the Internet Standards process copyright procedures must be followed, or when you're translating it into a language other than English. These permissions are perpetual and won't be revoked by the Internet Society or its successors or assigns.

This document and the information in it is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement ๐Ÿ’œ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐ŸŒท


That's the whole spec, bestie! ๐ŸŒˆโœจ๐Ÿ’…

๐Ÿ“ฆ where this page comes from