RFC 6662

Pre-Congestion Notification (PCN) Boundary-Node Behavior for the Single Marking (SM) Mode of Operation

๐Ÿ“… published July 2012, from ietf

RFC 6662 ๐ŸŽ€ Pre-Congestion Notification (PCN) Boundary-Node Behavior for the Single Marking (SM) Mode of Operation

  • RFC number: 6662
  • Stream: IETF (Internet Engineering Task Force)
  • Authors: A. Charny; J. Zhang (Cisco Systems); G. Karagiannis (University of Twente); M. Menth (University of Tuebingen); T. Taylor, Ed. (Huawei Technologies)
  • Category: Experimental
  • ISSN: 2070-1721
  • Date: July 2012
  • Obsoletes / Updates: Neither is listed in the header, so this one doesn't obsolete or update anything listed there ๐Ÿ“

Abstract ๐ŸŒธ

PCN is a way of protecting quality of service for inelastic traffic that's been admitted into a Diffserv domain ๐Ÿ’…. The big-picture architecture lives in RFC 5559. This memo is one of a series that describes possible boundary-node behaviors for a PCN-domain โœจ. The behavior here is a form of measurement-based load control that uses two PCN marking states: not-marked and excess-traffic-marked. People informally call it the Single Marking (SM) PCN-boundary-node behavior ๐Ÿฆ‹.

Status of This Memo ๐Ÿ“œ

This document is not an Internet Standards Track specification. It's published for examination, experimental implementation, and evaluation ๐Ÿงช.

This document defines an Experimental Protocol for the Internet community. It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It has had public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every document the IESG approves is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 for the details ๐Ÿค“.

For the latest on this document's status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc6662 ๐Ÿ’œ.

Copyright (c) 2012 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) as in effect on the date of publication. Please read these carefully, bestie, because they spell out your rights and restrictions for 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. They're provided without warranty, as described in the Simplified BSD License ๐Ÿซถ.

Table of Contents ๐Ÿงš

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  5
   2.  [SM-Specific] Assumed Core Network Behavior for SM . . . . . .  8
   3.  Node Behaviors . . . . . . . . . . . . . . . . . . . . . . . .  9
     3.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  9
     3.2.  Behavior of the PCN-Egress-Node  . . . . . . . . . . . . .  9
       3.2.1.  Data Collection  . . . . . . . . . . . . . . . . . . .  9
       3.2.2.  Reporting the PCN Data . . . . . . . . . . . . . . . . 10
       3.2.3.  Optional Report Suppression  . . . . . . . . . . . . . 10
     3.3.  Behavior at the Decision Point . . . . . . . . . . . . . . 11
       3.3.1.  Flow Admission . . . . . . . . . . . . . . . . . . . . 11
       3.3.2.  Flow Termination . . . . . . . . . . . . . . . . . . . 12
       3.3.3.  Decision Point Action for Missing
               PCN-Boundary-Node Reports  . . . . . . . . . . . . . . 14
     3.4.  Behavior of the Ingress Node . . . . . . . . . . . . . . . 15
     3.5.  Summary of Timers and Associated Configurable Durations  . 15
       3.5.1.  Recommended Values for the Configurable Durations  . . 17
   4.  Specification of Diffserv Per-Domain Behavior  . . . . . . . . 17
     4.1.  Applicability  . . . . . . . . . . . . . . . . . . . . . . 17
     4.2.  Technical Specification  . . . . . . . . . . . . . . . . . 18
       4.2.1.  Classification and Traffic Conditioning  . . . . . . . 18
       4.2.2.  PHB Configuration  . . . . . . . . . . . . . . . . . . 18
     4.3.  Attributes . . . . . . . . . . . . . . . . . . . . . . . . 18
     4.4.  Parameters . . . . . . . . . . . . . . . . . . . . . . . . 18
     4.5.  Assumptions  . . . . . . . . . . . . . . . . . . . . . . . 19
     4.6.  Example Uses . . . . . . . . . . . . . . . . . . . . . . . 19
     4.7.  Environmental Concerns . . . . . . . . . . . . . . . . . . 19
     4.8.  Security Considerations  . . . . . . . . . . . . . . . . . 19
   5.  Operational and Management Considerations  . . . . . . . . . . 19
     5.1.  Deployment of the SM Edge Behavior . . . . . . . . . . . . 19
       5.1.1.  Selection of Deployment Options and Global
               Parameters . . . . . . . . . . . . . . . . . . . . . . 19
       5.1.2.  Specification of Node- and Link-Specific Parameters  . 21
       5.1.3.  Installation of Parameters and Policies  . . . . . . . 22
       5.1.4.  Activation and Verification of All Behaviors . . . . . 23
     5.2.  Management Considerations  . . . . . . . . . . . . . . . . 24
       5.2.1.  Event Logging in the PCN-Domain  . . . . . . . . . . . 24
         5.2.1.1.  Logging Loss and Restoration of Contact  . . . . . 24
         5.2.1.2.  Logging Flow Termination Events  . . . . . . . . . 26
       5.2.2.  Provision and Use of Counters  . . . . . . . . . . . . 27
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 28
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
     8.1.  Normative References . . . . . . . . . . . . . . . . . . . 29
     8.2.  Informative References . . . . . . . . . . . . . . . . . . 30

1. Introduction ๐Ÿฆ‹

Okay so the whole point of Pre-Congestion Notification (PCN) is to protect quality of service (QoS) for inelastic flows inside a Diffserv domain ๐Ÿ’…, and it does that in a way that's simple, scalable, and robust โœจ. Two mechanisms do the work. Admission control decides whether a new flow request gets in or gets blocked. In abnormal circumstances, flow termination decides whether some of the existing flows need to be kicked out ๐Ÿ˜ญ. The overall PCN-traffic rate gets metered on every link in the PCN-domain, and PCN-packets get marked whenever certain configured rates are exceeded. Those configured rates sit below the link rate, so PCN-boundary-nodes get a heads-up about incipient overloads before any congestion actually happens. That's the "pre" in "pre-congestion notification" ๐ŸŒˆ. The marking level is what lets the network decide whether to admit or terminate PCN-flows. For more details, see [RFC5559] ๐Ÿซถ.

This document describes an experimental edge-node behavior for implementing PCN in a network ๐Ÿงช. The experiment may run in a network where a big chunk of the traffic is inelastic flows and admission control of micro-flows happens at the edge. For the effects of PCN to be observable, the committed bandwidth (that's the level of non-best-effort traffic) on at least some links of the network should be near or at link capacity. The effort needed to prepare the network for the experiment (see Section 5.1) may limit how big a network can be used ๐Ÿ“. The purposes of the experiment are:

  • to validate the specification of the SM edge behavior;
  • to evaluate how effective the SM edge behavior is at preserving quality of service for admitted flows; and
  • to evaluate PCN's potential for reducing capital and operational costs compared with other ways of assuring quality of service ๐Ÿ’ฐ.

For the first two objectives, the experiment should run long enough for the network to see sharp peaks of traffic in at least some directions. It would also be nice to observe PCN performance when the network hits failures ๐Ÿ™ˆ. A period on the order of a month or two in busy season may be enough. The third objective is trickier. It could need observation over a long enough period for traffic demand to grow to the point where extra capacity has to be provisioned at some points in the network ๐Ÿ‘‘.

Section 3 of this document specifies a detailed set of algorithms and procedures for implementing the PCN mechanisms in the SM mode of operation โญ. Because those algorithms depend on specific metering and marking behavior at the interior nodes, the assumptions made about PCN-interior-node behavior also need to be spelled out (Section 2) ๐Ÿ”ฅ. Finally, PCN uses Diffserv codepoint (DSCP) values to carry its markings, so a PCN-boundary-node behavior specification has to include the per-domain behavior (PDB) template specified in [RFC3086], filled out with the right content (Section 4) ๐Ÿ’œ.

Note that the terms "block" or "terminate" actually translate to one or more of several possible courses of action, as discussed in Section 3.6 of [RFC5559]. Which action to take for blocked or terminated flows is a matter of local policy ๐ŸŽ€.

A companion document, [RFC6661], specifies the Controlled Load (CL) PCN-boundary-node behavior. The two documents have a great deal of text in common ๐Ÿ‘ฏ. To make life easier for the reader, text in this document that's specific to the SM PCN-boundary-node behavior is preceded by the phrase [SM-specific]. A similar distinction for CL-specific text is made in [RFC6661] ๐Ÿงš.

(Part 1 of 6 done! Part 2 is next, so stay tuned, bestie ๐Ÿ’–)

1.1. Terminology ๐Ÿ’…

okay so the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document mean what [RFC2119] says they mean ๐Ÿซถ

this doc also borrows a bunch of terms from Section 2 of [RFC5559] ๐Ÿ“š the PCN-domain, PCN-ingress-node, PCN-egress-node, PCN-interior-node, PCN-boundary-node, PCN-flow, ingress-egress-aggregate, PCN-excess-rate, PCN-admissible-rate, PCN-supportable-rate, PCN-marked, and excess-traffic-marked ๐Ÿฆ‹

  • PCN-domain
  • PCN-ingress-node
  • PCN-egress-node
  • PCN-interior-node
  • PCN-boundary-node
  • PCN-flow
  • ingress-egress-aggregate
  • PCN-excess-rate
  • PCN-admissible-rate
  • PCN-supportable-rate
  • PCN-marked
  • excess-traffic-marked

it also uses PCN-traffic and PCN-packet, and we're repeating the definition from [RFC5559] because they're SO important for everything after this ๐Ÿ”ฅ

PCN-traffic, PCN-packets, PCN-BA A PCN-domain carries traffic of different Diffserv behavior aggregates (BAs) [RFC2474]. The PCN-BA uses the PCN mechanisms to carry PCN-traffic, and the corresponding packets are PCN-packets. The same network will carry traffic of other Diffserv BAs. The PCN-BA is distinguished by a combination of the Diffserv codepoint and the ECN field. ๐ŸŒธ

this doc also uses the term from [RFC5670]:

  • excess-traffic-meter.

and to finish off the borrowed list, we're reusing these terms and abbreviations from Section 2 of [RFC6660] ๐Ÿงš

  • not-PCN codepoint;
  • not-marked (NM) codepoint;
  • excess-traffic-marked (ETM) codepoint.

and now the terms this document defines itself ๐Ÿ‘‘

Decision Point The node that makes the decision about which flows to admit and to terminate. In a given network deployment, this can be the PCN-ingress-node or a centralized control node. In either case, the PCN-ingress-node is the point where the decisions are enforced. ๐Ÿ’–

NM-rate The rate of not-marked PCN-traffic received at a PCN-egress-node for a given ingress-egress-aggregate in octets per second. For further details, see Section 3.2.1. โœจ

ETM-rate The rate of excess-traffic-marked PCN-traffic received at a PCN-egress-node for a given ingress-egress-aggregate in octets per second. For further details, see Section 3.2.1. โœจ

PCN-sent-rate The rate of PCN-traffic received at a PCN-ingress-node and destined for a given ingress-egress-aggregate in octets per second. For further details, see Section 3.4. ๐ŸŽ€

Congestion level estimate (CLE) The ratio of PCN-marked to total PCN-traffic (measured in octets) received for a given ingress-egress-aggregate during a given measurement period. The CLE is used to derive the PCN-admission-state (Section 3.3.1) and is also used by the report suppression procedure (Section 3.2.3) if report suppression is activated. ๐Ÿฆ‹

PCN-admission-state The state ("admit" or "block") derived by the Decision Point for a given ingress-egress-aggregate based on statistics about PCN-packet marking. The Decision Point decides to admit or block new flows offered to the aggregate based on the current value of the PCN-admission-state. For further details, see Section 3.3.1. ๐ŸŒˆ

Sustainable aggregate rate (SAR) The estimated maximum rate of PCN-traffic that can be carried in a given ingress-egress-aggregate at a given moment without risking degradation of quality of service for the admitted flows. The intention is that if the PCN-sent-rate of every ingress-egress-aggregate passing through a given link is limited to its sustainable aggregate rate, the total rate of PCN-traffic flowing through the link will be limited to the PCN-supportable-rate for that link. An estimate of the sustainable aggregate rate for a given ingress-egress-aggregate is derived as part of the flow termination procedure and is used to determine how much PCN-traffic needs to be terminated. For further details, see Section 3.3.2. ๐Ÿ’…

CLE-reporting-threshold A configurable value against which the CLE is compared as part of the report suppression procedure. For further details, see Section 3.2.3. โญ

CLE-limit A configurable value against which the CLE is compared to determine the PCN-admission-state for a given ingress-egress-aggregate. For further details, see Section 3.3.1. โญ

T_meas A configurable time interval that defines the measurement period over which the PCN-egress-node collects statistics relating to PCN-traffic marking. At the end of the interval, the PCN-egress-node calculates the values NM-rate and ETM-rate as defined above and sends a report to the Decision Point, subject to the operation of the report suppression feature. For further details, see Section 3.2. ๐Ÿ“

T_maxsuppress A configurable time interval after which the PCN-egress-node MUST send a report to the Decision Point for a given ingress-egress-aggregate regardless of the most recent values of the CLE. This mechanism provides the Decision Point with a periodic confirmation of liveness when report suppression is activated. For further details, see Section 3.2.3. ๐Ÿ™ˆ

T_fail An interval after which the Decision Point concludes that communication from a given PCN-egress-node has failed if it has received no reports from the PCN-egress-node during that interval. For further details, see Section 3.3.3. ๐Ÿ’€

T_crit A configurable interval used in the calculation of T_fail. For further details, see Section 3.3.3. ๐ŸŒธ


2. [SM-Specific] Assumed Core Network Behavior for SM ๐Ÿงš

okay so this section is about the behavior we ASSUME the PCN-interior-nodes in the PCN-domain are doing. the SM mode of operation assumes that:

  • PCN-interior-nodes perform excess-traffic-marking of PCN-packets according to the rules specified in [RFC5670].
  • For IP transport, excess-traffic-marking of PCN-packets uses the excess-traffic-marked (ETM) codepoint defined in [RFC6660]; for MPLS transport, an equivalent marking is used as discussed in Appendix C of [RFC6660].
  • On each link, the reference rate for the excess-traffic-meter is configured to be equal to the PCN-admissible-rate for the link.
  • The set of valid codepoint transitions is as shown in Sections 5.2.1 and 5.2.3.1 of [RFC6660].

3. Node Behaviors ๐Ÿ‘‘

3.1. Overview ๐Ÿฆ‹

this section describes how the PCN-ingress-node, PCN-egress-node, and the Decision Point behave. the Decision Point (which MAY be collocated with the PCN-ingress-node) is allowed to live on the same box as the ingress node, so no stress there ๐Ÿ’–

the PCN-egress-node collects the rates of not-marked and excess-traffic-marked PCN-traffic for each ingress-egress-aggregate and reports them to the Decision Point. for the full tea, check Section 3.2. โ˜•

the PCN-ingress-node enforces flow admission and termination decisions. it also reports the rate of PCN-traffic sent to a given ingress-egress-aggregate when the Decision Point asks for it. details are in Section 3.4. ๐ŸŽ€

and finally, the Decision Point makes flow admission decisions and picks which flows to terminate, using the info from the PCN-ingress-node and PCN-egress-node for a given ingress-egress-aggregate. details in Section 3.3. ๐Ÿ‘‘

a signaling protocol for reporting rates to the Decision Point is OUT OF SCOPE for this document ๐Ÿ™…โ€โ™€๏ธ if the PCN-ingress-node is picked as the Decision Point, [RSVP-PCN] is the one that specifies an appropriate signaling protocol. ๐ŸŒˆ

Section 5.1.2 explains how to derive the filters that let PCN-ingress-nodes and PCN-egress-nodes sort incoming packets into ingress-egress-aggregates. ๐Ÿงš

3.2. Behavior of the PCN-Egress-Node ๐ŸŽ€

3.2.1. Data Collection โœจ

the PCN-egress-node needs to meter the PCN-traffic it receives so it can calculate these rates for each ingress-egress-aggregate passing through it. these rates SHOULD be calculated at the end of each measurement period, based on the PCN-traffic seen during that measurement period. the length of a measurement period is equal to the configurable value T_meas. more info is in Section 3.5. ๐Ÿ’…

  • NM-rate: octets per second of PCN-traffic in PCN-packets that are not-marked (i.e., marked with the NM codepoint);
  • ETM-rate: octets per second of PCN-traffic in PCN-packets that are excess-traffic-marked (i.e., marked with the ETM codepoint).

Note: metering the PCN-traffic continuously and using equal-length measurement intervals minimizes the statistical variance introduced by the measurement process itself. On the other hand, the operation of PCN is not affected if the starting and ending times of the measurement intervals for different ingress-egress-aggregates are different. ๐ŸŒธ

3.2.2. Reporting the PCN Data ๐Ÿฆ‹

unless the report suppression option from Section 3.2.3 is turned on, the PCN-egress-node MUST report the latest values of NM-rate and ETM-rate to the Decision Point every single time it calculates them. no skipping ๐Ÿ™…โ€โ™€๏ธ๐Ÿ’–

3.2.3. Optional Report Suppression ๐ŸŒˆ

report suppression MUST be provided as a configurable option. it comes with two configurable parameters, the CLE-reporting-threshold and the maximum report suppression interval T_maxsuppress. the default value of the CLE-reporting-threshold is zero. the CLE-reporting-threshold MUST NOT exceed the CLE-limit configured at the Decision Point. for more on T_maxsuppress, see Section 3.5. ๐Ÿ“

if the report suppression option is enabled, the PCN-egress-node MUST follow this procedure to decide whether to send a report to the Decision Point, instead of automatically sending one at the end of each measurement interval. ๐Ÿงš

  1. As well as the quantities NM-rate and ETM-rate, the PCN-egress-node MUST calculate the congestion level estimate (CLE) for each measurement interval. The CLE is computed as:
[SM-specific]
CLE = ETM-rate / (NM-rate + ETM-rate)

if any PCN-traffic was observed, or CLE = 0 if all the rates are zero. ๐Ÿ”ฅ

  1. If the CLE calculated for the latest measurement interval is greater than the CLE-reporting-threshold and/or the CLE calculated for the immediately previous interval was greater than the CLE-reporting-threshold, then the PCN-egress-node MUST send a report to the Decision Point. the contents of the report are described below.

the reason we look at the CLE of the previous interval too is so the Decision Point gets immediate feedback if the CLE has dropped below the CLE-reporting-threshold. this is essential if the Decision Point is running the flow termination procedure and checking whether (further) flow termination is needed. see Section 3.3.2. ๐Ÿ‘‘

  1. If an interval T_maxsuppress has elapsed since the last report was sent to the Decision Point, then the PCN-egress-node MUST send a report to the Decision Point regardless of the CLE value. โฐ
  2. If neither of the preceding conditions holds, the PCN-egress-node MUST NOT send a report for the latest measurement interval. ๐Ÿ™ˆ

each report sent to the Decision Point when report suppression has been activated MUST contain the values of NM-rate, ETM-rate, and CLE that were calculated for the most recent measurement interval. ๐Ÿ’œ

the procedure above makes sure at least one report goes out per interval (T_maxsuppress + T_meas). that's how the Decision Point knows both the PCN-egress-node and the communication path between that node and the Decision Point are still working. literally the heartbeat of the system ๐Ÿ’“โœจ

3.3. Behavior at the Decision Point ๐Ÿ’…

okay so operators get to pick how they use PCN ๐Ÿ’–. They can use it just for flow admission, just for flow termination, or for both. Decision Points MUST implement both mechanisms, but they also MUST provide configurable options so PCN-based flow admission and flow termination can be turned on or off independently of each other at a given Decision Point ๐ŸŽ€.

If PCN-based flow termination is turned on but PCN-based flow admission is not, flow termination works exactly as specified in this document โœจ.

Logically, some other system of flow admission control is running in this case. But the details of that system are out of scope for this document and depend on local arrangements ๐ŸŒธ.

3.3.1. Flow Admission

The Decision Point works out the PCN-admission-state for a given ingress-egress-aggregate every time it gets a report from the egress node ๐Ÿฆ‹. It bases this on the congestion level estimate (CLE). If the egress-node report includes the CLE, the Decision Point SHOULD use that reported value. If the CLE is NOT in the report, the Decision Point MUST calculate it from the other values in the report, using this formula:

[SM-specific]
CLE = ETM-rate / (NM-rate + ETM-rate)

...but only if some PCN-traffic was observed. If all the rates are zero, then CLE = 0 ๐Ÿงš.

The Decision Point MUST compare the reported or calculated CLE to a configurable value called the CLE-limit. If the CLE is less than the CLE-limit, the PCN-admission-state for that aggregate MUST be set to "admit". Otherwise, it MUST be set to "block" ๐Ÿ”ฅ.

If the PCN-admission-state for a given ingress-egress-aggregate is "admit", the Decision Point SHOULD allow new flows to be admitted to that aggregate. If it's "block", the Decision Point SHOULD NOT allow new flows to be admitted to that aggregate ๐Ÿ™ˆ. Policy MAY modify these actions in specific cases, but honestly, that kind of policy intervention risks defeating the whole purpose of using PCN ๐Ÿ’€.

A performance study of this admission control method is presented in [MeLe12] ๐Ÿ“š.

3.3.2. Flow Termination

[SM-specific] When the PCN-admission-state computed from the CLE is "block" for the given ingress-egress-aggregate, the Decision Point MUST ask the PCN-ingress-node for an estimate of the rate (PCN-sent-rate) at which that node is receiving PCN-traffic destined for the given ingress-egress-aggregate ๐Ÿ‘‘.

If the Decision Point is collocated with the PCN-ingress-node, the request and response are internal operations.

Then the Decision Point MUST wait for two things: the requested rate from the PCN-ingress-node, and the next report from the PCN-egress-node for that ingress-egress-aggregate. If that next egress-node report ALSO includes a non-zero value for the ETM-rate, the Decision Point MUST figure out how much PCN-traffic to terminate using these steps ๐ŸŒˆ:

  1. [SM-specific] The sustainable aggregate rate (SAR) for the given ingress-egress-aggregate is estimated with this formula, for the latest reported interval:
SAR = U * NM-Rate

Here U is a configurable factor greater than one, and it's the same for all ingress-egress-aggregates ๐Ÿง . Basically, the value of the PCN-supportable-rate for each link gets approximated by this expression, instead of being calculated explicitly:

U * PCN-admissible-rate
  1. The amount of traffic to be terminated is the difference:
PCN-sent-rate - SAR,

where PCN-sent-rate is the value the PCN-ingress-node gave us ๐Ÿ’–.

See Section 3.3.3 for what to do if the Decision Point doesn't get a timely response to its PCN-sent-rate request ๐Ÿซถ.

If the difference from the second step is positive (meaning there's traffic rate to be terminated), the Decision Point SHOULD select PCN-flows for termination โœจ. It MAY use upper rate limits for individual PCN-flows (which might be known from resource signaling used to set up the PCN-flows) and pick a set of PCN-flows whose sum of upper rate limits is up to the traffic rate to be terminated. Then those PCN-flows get terminated. Using upper limits on PCN-flow rates helps avoid over-termination ๐Ÿ™Œ.

Termination might be needed again and again over consecutive measurement intervals, for various reasons. For example, the upper rate limits might overestimate the actual flow rates. In cases like this, it is RECOMMENDED that enough time passes between successive termination events, so the effects of earlier termination events can show up in the measurements the termination decisions are based on. Otherwise, over-termination may happen ๐Ÿ˜ญ. See [Satoh10] and Sections 4.2 and 4.3 of [MeLe10] ๐Ÿ“–.

In general, the selection of flows for termination MAY be guided by policy ๐ŸŽ€.

The Decision Point SHOULD log each round of termination, as described in Section 5.2.1.2 ๐Ÿ“.

3.3.3. Decision Point Action for Missing PCN-Boundary-Node Reports

The Decision Point SHOULD start a timer, t_recvFail, when it receives a report from the PCN-egress-node. t_recvFail gets reset each time a new report arrives from the PCN-egress-node. t_recvFail expires if it reaches the value T_fail. T_fail is worked out with this logic ๐Ÿงšโ€โ™€๏ธ:

a. T_fail = the configurable duration T_crit, if report suppression is NOT deployed;

b. T_fail = T_crit ALSO if report suppression IS deployed and the last report received from the PCN-egress-node contained a CLE value greater than CLE-reporting-threshold (Section 3.2.3);

c. T_fail = 3 * T_maxsuppress (Section 3.2.3) if report suppression is deployed and the last report received from the PCN-egress-node contained a CLE value less than or equal to CLE-reporting-threshold.

If t_recvFail expires for a given PCN-egress-node, the Decision Point SHOULD notify management ๐Ÿ“ฃ. A log format for that purpose is defined in Section 5.2.1.1. Other actions depend on local policy, and they MAY include blocking new flows destined for the PCN-egress-node concerned until another report comes in from it ๐Ÿšซ. Termination of flows that are already admitted is also possible, but it could be triggered by "Destination unreachable" messages received at the PCN-ingress-node ๐Ÿ’ฅ.

If a centralized Decision Point sends a request for the estimated value of PCN-sent-rate to a given PCN-ingress-node and doesn't get a response in a reasonable amount of time, the Decision Point SHOULD repeat the request once. [SM-specific] If the second request to the PCN-ingress-node also fails, the Decision Point SHOULD notify management. The log format defined in Section 5.2.1.1 works for this case too ๐Ÿ“.

The response timer t_sndFail, with upper bound T_crit, is specified in Section 3.5. Using T_crit is an approximation. A more precise limit would be on the order of two round-trip times, plus an allowance for processing at each end, plus an allowance for variance in these values.

See Section 3.5 for suggested values of the configurable durations T_crit and T_maxsuppress ๐ŸŒธ.

3.4. Behavior of the Ingress Node ๐Ÿงš

The PCN-ingress-node MUST provide the estimated current rate of PCN-traffic it receives and that is destined for a given ingress-egress-aggregate, in octets per second (the PCN-sent-rate), whenever the Decision Point asks for it ๐Ÿซถ. How that rate estimate gets derived is up to the implementation ๐Ÿคทโ€โ™€๏ธ.

For example, the rate the PCN-ingress-node supplies can be based on a quick sample taken at the moment the info is needed.

3.5. Summary of Timers and Associated Configurable Durations โฐ

Here's a quick summary of the timers used in the procedures we just went through ๐Ÿ’…:

  • t_meas
    • Where used: PCN-egress-node.
    • Used in procedure: data collection (Section 3.2.1).
    • Incidence: one per ingress-egress-aggregate.
    • Reset: immediately on expiry.
    • Expiry: when it reaches the configurable duration T_meas.
    • Action on expiry: calculate NM-rate and ETM-rate and proceed to the applicable reporting procedure (Section 3.2.2 or Section 3.2.3).
  • t_maxsuppress
    • Where used: PCN-egress-node.
    • Used in procedure: report suppression (Section 3.2.3).
    • Incidence: one per ingress-egress-aggregate.
    • Reset: when the next report is sent, either after expiry or because the CLE has exceeded the reporting threshold.
    • Expiry: when it reaches the configurable duration T_maxsuppress.
    • Action on expiry: send a report to the Decision Point the next time the reporting procedure (Section 3.2.3) is invoked, regardless of the value of CLE.
  • t_recvFail
    • Where used: Decision Point.
    • Used in procedure: failure detection (Section 3.3.3).
    • Incidence: one per ingress-egress-aggregate.
    • Reset: when a report is received for the ingress-egress-aggregate.
    • Expiry: when it reaches the calculated duration T_fail. As described in Section 3.3.3, T_fail is equal either to the configured duration T_crit or to the calculated value 3 * T_maxsuppress, where T_maxsuppress is a configured duration.
    • Action on expiry: notify management, and possibly other actions.
  • t_sndFail
    • Where used: centralized Decision Point.
    • Used in procedure: failure detection (Section 3.3.3).
    • Incidence: only as required, one per outstanding request to a PCN-ingress-node.
    • Started: when a request for the value of PCN-sent-traffic for a given ingress-egress-aggregate is sent to the PCN-ingress-node.
    • Terminated without action: when a response is received before expiry.
    • Expiry: when it reaches the configured duration T_crit.
    • Action on expiry: as described in Section 3.3.3.

The timers we just covered depend on three configurable durations: T_meas, T_maxsuppress, and T_crit. The recommendations below for these durations all relate to the intended PCN reaction time of 1 to 3 seconds. Honestly though, they're based on judgement rather than operational experience or mathematical derivation ๐Ÿค“.

The value of T_meas is RECOMMENDED to be on the order of 100 to 500 ms, which gives a reasonable trade-off between demands on network resources (PCN-egress-node and Decision Point processing, network bandwidth) and how long it takes to react to impending congestion ๐Ÿš€.

The value of T_maxsuppress is RECOMMENDED to be on the order of 3 to 6 seconds, for similar reasons to the ones behind the choice of T_meas ๐Ÿ’œ.

The value of T_crit SHOULD NOT be less than 3 * T_meas. Otherwise, it could cause too many management notifications due to transient conditions in the PCN-egress-node or along the signaling path ๐Ÿ˜ต. A reasonable upper bound on T_crit is on the order of 3 seconds โญ.

4. Specification of Diffserv Per-Domain Behavior ๐Ÿฆ‹

This section provides the specification required by [RFC3086] for a per-domain behavior ๐Ÿซถ.

4.1. Applicability

okay so this section is quoting [RFC5559] ๐Ÿ“–โœจ. The PCN SM boundary-node behavior is for inelastic traffic, like video and voice ๐ŸŽฅ๐ŸŽค, where the quality of admitted flows is mostly protected by admission control at the ingress to the domain ๐Ÿ’….

In exceptional situations, like rerouting after network failures ๐Ÿ’€, already admitted flows might get terminated so the rest of the flows keep their quality ๐Ÿซถ. [SM-specific] The performance results in, for example, [MeLe10] show that the SM boundary-node behavior is more likely to terminate too many flows in those moments than the CL boundary-node behavior described in [RFC6661] ๐Ÿ˜ญ.

Wait, that heading is wrong for this section, so here's the correct one ๐Ÿ™ˆ:

4.2. Technical Specification

4.2.1. Classification and Traffic Conditioning

Packet classification and treatment at the PCN-ingress-node is covered in Section 5.1 of [RFC6660] ๐Ÿงš.

PCN packets are then sorted into two groups: ones that belong to an admitted flow and ones that don't ๐ŸŽ€. PCN packets that don't belong to an admitted flow are "blocked". (See Section 1 for how this term is meant to be understood ๐Ÿฆ‹.) Packets that do belong to an admitted flow get policed, so they stick to the rate or flowspec that was negotiated during flow admission ๐Ÿ’–.

4.2.2. PHB Configuration

The PCN SM boundary-node behavior is a metering and marking behavior, not a scheduling behavior ๐Ÿ“. So even though the encoding uses a single DSCP value, that value can be different from one deployment to another โœจ. The PCN working group suggests using admission control for these service classes (defined in [RFC4594]) ๐Ÿ‘‘:

  • Telephony (EF)
  • Real-time interactive (CS4)
  • Broadcast Video (CS3)
  • Multimedia Conferencing (AF4)

For a fuller discussion, see Appendix A of [RFC6660] ๐Ÿ“š.

4.3. Attributes

Hold up, the original numbering is "4.3.", so here it is in the proper style ๐Ÿ’…:

4.3. Attributes

The whole point of this per-domain behavior is to get low loss and jitter for the target class of traffic ๐ŸŒธ. The PCN design requirement was that recovering from overloads through flow termination should happen within 1-3 seconds โฑ๏ธ. PCN probably does even better than that ๐Ÿ”ฅ.

4.4. Parameters

The set of parameters that has to be configured at each PCN-node and at the Decision Point is described in Section 5.1 ๐Ÿงš.

4.5. Assumptions

It's assumed that a specific portion of link capacity has been reserved for PCN-traffic ๐Ÿฉต.

4.6. Example Uses

The PCN SM behavior may be used to carry real-time traffic, especially voice and video ๐ŸŽค๐ŸŽฅ๐Ÿ’œ.

4.7. Environmental Concerns

The PCN SM per-domain behavior could theoretically interfere with end-to-end ECN, because the ECN bits get reused for PCN marking ๐Ÿ˜ณ. Section 5.1 of [RFC6660] describes the actions that can be taken to protect ECN signaling ๐Ÿ›ก๏ธ. Appendix B of that document has more discussion on how ECN and PCN can coexist ๐Ÿซถ.

4.8. Security Considerations

Security is serious, bestie ๐Ÿšจ. Please see the security considerations in [RFC5559], as well as those in [RFC2474] and [RFC2475] ๐Ÿ”.

5. Operational and Management Considerations โœจ

5.1. Deployment of the SM Edge Behavior

Deploying the PCN Single Marking edge behavior takes these steps ๐Ÿ—บ๏ธ:

  • selection of deployment options and global parameter values;
  • derivation of per-node and per-link information;
  • installation, but not activation, of parameters and policies at all of the nodes in the PCN-domain;
  • activation and verification of all behaviors.

5.1.1. Selection of Deployment Options and Global Parameters

The first batch of decisions affects the network as a whole ๐ŸŒ. To start, the operator has to make basic design calls, like whether the Decision Point is centralized or collocated with the PCN-ingress-nodes, and whether the per-flow and aggregate resource signaling described in [RSVP-PCN] is deployed in the network ๐Ÿ’ผ. After that, the operator needs to decide:

  • whether PCN packets will be forwarded unencapsulated or in tunnels between the PCN-ingress-node and the PCN-egress-node. Encapsulation preserves incoming ECN settings and makes the PCN-egress-node's job easier when it comes to relating incoming packets to specific ingress-egress-aggregates ๐ŸŽ, but it lowers the path MTU and adds the extra work of encapsulation and decapsulation on the PCN-edge-nodes ๐Ÿ˜ฉ.
  • which service classes will be subject to PCN control and what DSCP will be used for each. (See Appendix A of [RFC6660] for advice on this topic ๐Ÿ“–.)
  • the markings to be used at all nodes in the PCN-domain to indicate not-marked (NM) and excess-traffic-marked (ETM) PCN packets ๐Ÿท๏ธ;
  • the marking rules for re-marking PCN-traffic leaving the PCN-domain ๐Ÿ”;
  • whether PCN-based flow admission is enabled ๐Ÿšช;
  • whether PCN-based flow termination is enabled ๐Ÿ›‘.

The following parameters affect how PCN itself operates. The operator needs to choose:

  • the value of CLE-limit if PCN-based flow admission is enabled. [SM-specific] It is RECOMMENDED that the CLE-limit for SM be set fairly low, on the order of 5% ๐ŸŽฏ.
  • the value of the collection interval T_meas. For a recommended range of values, see Section 3.5.1 above โฒ๏ธ.
  • whether report suppression is to be enabled at the PCN-egress-nodes and, if so, the values of CLE-reporting-threshold and T_maxsuppress. It is reasonable to leave CLE-reporting-threshold at its default value (zero, as specified in Section 3.2.3) 0๏ธโƒฃ. For a recommended range of values of T_maxsuppress, see Section 3.5.1 above ๐Ÿ“‰.
  • the value of the duration T_crit, which the Decision Point uses to decide whether communications with a given PCN-edge-node have failed ๐Ÿšจ. For a recommended range of values of T_crit, see Section 3.5.1 above ๐Ÿ”.
  • [SM-specific] The factor U used in the flow termination procedure (Section 3.3.2) ๐Ÿงฎ. An operational definition for U is given in that section, but you can think of it as a contingency factor that gives a buffer for flow peaks above the aggregate levels expected when flows are admitted ๐Ÿงฑ. A reasonable value for U is between 1.2 and 2 โœ…. Larger values of U tend to cause more over-termination of traffic during peaks, but they raise the average link utilization level ๐Ÿ“ˆ.

Filters are required at both the PCN-ingress-node and the PCN-egress-node to classify incoming PCN packets by ingress-egress-aggregate ๐Ÿ”. Because multipath routing might be used in domains upstream of the PCN-domain ๐Ÿ›ค๏ธ, it's impossible to classify reliably at the PCN-egress-node based on the packet header contents as originally received at the PCN-ingress-node. (Packets with the same header contents could enter the PCN-domain at multiple PCN-ingress-nodes ๐ŸŒ€.) So the only reliable way to build those filters is to tunnel the packets from the PCN-ingress-node to the PCN-egress-node ๐Ÿš‡.

The PCN-ingress-node needs filters to put PCN packets into the right tunnel in the first place ๐Ÿ“ฆ, and also to satisfy requests from the Decision Point for admission rates into specific ingress-egress-aggregates ๐Ÿ“ฌ. These filters select the PCN-egress-node, but not necessarily a specific path through the network to that node ๐Ÿ—บ๏ธ. As a result, they're likely to stay stable even when the network has failures, except when the PCN-egress-node itself becomes unreachable ๐Ÿ’ช. If all PCN packets will be tunneled, the PCN-ingress-node also needs to know the address of the peer PCN-egress-node associated with each filter ๐Ÿ“.

Operators may want to think about provisioning alternate egress points for some or all ingress-egress-aggregates, in case the PCN-egress-node fails ๐Ÿ†˜. This could mean setting up standby tunnels to those alternate egress points ๐Ÿšง.

Each PCN-egress-node needs filters to classify incoming PCN packets by ingress-egress-aggregate, so it can gather measurements on a per-aggregate basis ๐Ÿ“Š. If tunneling is used, these filters are built on the identifier of the tunnel the incoming packet came out of (for example, the source address in the outer header if IP encapsulation is used) ๐Ÿงพ. The PCN-egress-node also needs to know the address of the Decision Point it sends reports to for each ingress-egress-aggregate ๐Ÿ“ฎ.

A centralized Decision Point needs to have the address of the PCN-ingress-node corresponding to each ingress-egress-aggregate ๐Ÿ . Security considerations require that information also be prepared for a centralized Decision Point and each PCN-edge-node, so they can authenticate each other ๐Ÿ”๐Ÿซถ.

For link-specific parameters, the operator needs to derive a value for the PCN-admissible-rate on each link in the network ๐Ÿ”—. The first two paragraphs of Section 5.2.2 of [RFC5559] discuss how these values may be derived ๐Ÿ“˜. ([SM-specific] Confusingly, "PCN-admissible-rate" in this context corresponds to "PCN-threshold-rate" in the cited paragraphs ๐Ÿ™ƒ.)

5.1.3. Installation of Parameters and Policies โœจ

Okay so every PCN node needs to be provisioned with a bunch of parameters and policies for how it handles incoming packets ๐Ÿ’…. The Diffserv MIB [RFC3289] is super useful for this, although it needs to be extended in some cases ๐ŸŽ€. It covers packet classification, metering, counting, policing, dropping, and marking. The required extensions specifically include an encapsulation action following reclassification by ingress-egress-aggregate. The MIB also has to be extended to include objects for marking the ECN field in the outer header at the PCN-ingress-node, plus an extension to the classifiers to include the ECN field at PCN-interior and PCN-egress-nodes. Finally, a new object may need to be defined at the PCN-interior-nodes to represent the packet-size-independent excess-traffic-marking metering algorithm ๐Ÿฆ‹.

The value for the PCN-admissible-rate on each link on a node shows up as a metering parameter. Operators should take note of the need to deploy excess-traffic meters either on the ingress or the egress side of each interior link, but not both (Appendix B.2 of [RFC5670]. Major reminder ๐Ÿ™ˆ.

The following additional info has to be configured by other means (e.g., additional MIBs, NETCONF models) ๐Ÿงš.

At the PCN-egress-node:

  • the measurement interval T_meas (units of ms, range 50 to 1000);
  • whether report suppression is to be applied;
  • if so, the interval T_maxsuppress (units of 100 ms, range 1 to 100) and the CLE-reporting-threshold (units of tenths of one percent, range 0 to 1000, default value 0);
  • the address of the PCN-ingress-node for each ingress-egress-aggregate, if the Decision Point is collocated with the PCN-ingress-node and [RSVP-PCN] is not deployed;
  • the address of the centralized Decision Point to which it sends its reports, if there is one.

At the Decision Point:

  • whether PCN-based flow admission is enabled;
  • whether PCN-based flow termination is enabled;
  • the value of CLE-limit (units of tenths of one percent, range 0 to 1000);
  • [SM-specific] the value of the factor U used in the flow termination procedure;
  • the value of the interval T_crit (units of 100 ms, range 1 to 100);
  • whether report suppression is to be applied;
  • if so, the interval T_maxsuppress (units of 100 ms, range 1 to 100) and the CLE-reporting-threshold (units of tenths of one percent, range 0 to 1000, default value 0). These MUST be the same values that are provisioned in the PCN-egress-nodes;
  • if the Decision Point is centralized, the address of the PCN-ingress-node (and any other information needed to establish a security association) for each ingress-egress-aggregate.

Depending on the testing strategy, it may be necessary to install the new configuration data in stages. This is discussed further below ๐ŸŒธ.


5.1.4. Activation and Verification of All Behaviors ๐Ÿ“

It is certainly not within the scope of this document to advise on testing strategy, which operators undoubtedly have well in hand ๐Ÿ’…. Quite possibly an operator will prefer an incremental approach to activation and testing. Implementing the PCN marking scheme at PCN-ingress-nodes, corresponding scheduling behavior in downstream nodes, and re-marking at the PCN-egress-nodes is a big enough step in itself to need thorough testing before going further ๐Ÿ˜ญ.

Testing will probably involve injecting packets at individual nodes and tracking how each node processes them. This work can make use of the counter capabilities included in the Diffserv MIB. The application of these capabilities to the management of PCN is discussed in the next section ๐Ÿฆ‹.


5.2. Management Considerations ๐Ÿ‘‘

This section focuses on the use of event logging and the use of counters supported by the Diffserv MIB [RFC3289] for the various monitoring tasks involved in managing a PCN network ๐Ÿงš.

5.2.1. Event Logging in the PCN-Domain ๐Ÿ”ฅ

It is anticipated that event logging using SYSLOG [RFC5424] will be needed for fault management and potentially for capacity management. Implementations MUST be capable of generating logs for the following events:

  • detection of loss of contact between a Decision Point and a PCN-edge-node, as described in Section 3.3.3;
  • successful receipt of a report from a PCN-egress-node, following detection of loss of contact with that node;
  • flow termination events.

All of these logs are generated by the Decision Point. There is a strong likelihood in the first and third cases that the events are correlated with network failures at a lower level. This has implications for how often specific event types should be reported, so as not to contribute unnecessarily to log buffer overflow. Recommendations on this topic follow for each event report type ๐Ÿ’–.

The field names (e.g., HOSTNAME, STRUCTURED-DATA) used in the following subsections are defined in [RFC5424] ๐ŸŽ€.

5.2.1.1. Logging Loss and Restoration of Contact ๐Ÿ’€

Section 3.3.3 describes the circumstances under which the Decision Point may determine that it has lost contact, either with a PCN-ingress-node or a PCN-egress-node, due to failure to receive an expected report. Loss of contact with a PCN-ingress-node is a case primarily applicable when the Decision Point is in a separate node. However, implementations MAY implement logging in the collocated case if the implementation is such that non-response to a request from the Decision Point function can occasionally occur due to processor load or other reasons ๐Ÿ™ˆ.

The log reporting the loss of contact with a PCN-ingress-node or PCN-egress-node MUST include the following content:

  • The HOSTNAME field MUST identify the Decision Point issuing the log.
  • A STRUCTURED-DATA element MUST be present, containing parameters identifying the node for which an expected report has not been received and the type of report lost (ingress or egress). It is RECOMMENDED that the SD-ID for the STRUCTURED-DATA element have the form PCNNode (without the quotes), which has been registered with IANA (see [RFC6661] for more information). The node identifier PARAM-NAME is RECOMMENDED to be ID (without the quotes). The identifier itself is subject to the preferences expressed in Section 6.2.4 of [RFC5424] for the HOSTNAME field. The report type PARAM-NAME is RECOMMENDED to be RTyp (without the quotes). The PARAM-VALUE for the RTyp field MUST be either ingr or egr.

The following values are also RECOMMENDED for the indicated fields in this log, subject to local practice:

  • PRI initially set to 115, representing a Facility value of (14) "log alert" and a Severity level of (3) "Error Condition". Note that loss of contact with a PCN-egress-node implies that no new flows will be admitted to one or more ingress-egress-aggregates until contact is restored. The reason a higher severity level (lower value) is not proposed for the initial log is because any corrective action would probably be based on alerts at a lower subsystem level ๐Ÿง.
  • APPNAME set to PCN (without the quotes).
  • MSGID set to LOST (without the quotes).

If contact is not regained with a PCN-egress-node in a reasonable period of time (say, one minute), the log SHOULD be repeated, this time with a PRI value of 113, implying a Facility value of (14) "log alert" and a Severity value of (1) "Alert: action must be taken immediately". The reasoning is that by this time, any more general conditions should have been cleared, and the problem lies specifically with the PCN-egress-node concerned and the PCN application in particular ๐Ÿ”ฅ.

Whenever a loss-of-contact log is generated for a PCN-egress-node, a log indicating recovery SHOULD be generated when the Decision Point next receives a report from the node concerned. The log SHOULD have the same content as just described for the loss-of-contact log, with the following differences:

  • PRI changes to 117, indicating a Facility value of (14) "log alert" and a Severity of (5) "Notice: normal but significant condition". โœจ
  • MSGID changes to RECVD (without the quotes).

5.2.1.2. Logging Flow Termination Events ๐Ÿฆ‹

Section 3.3.2 describes the process whereby the Decision Point decides that flow termination is required for a given ingress-egress-aggregate, calculates how much flow to terminate, and selects flows for termination. This section describes a log that SHOULD be generated each time such an event occurs. (In the case where termination occurs in multiple rounds, one log SHOULD be generated per round.) The log may be useful in fault management, to indicate the service impact of a fault occurring in a lower-level subsystem. In the absence of network failures, it may also be used as an indication of an urgent need to review capacity utilization along the path of the ingress-egress-aggregate concerned ๐ŸŒˆ.

The log reporting a flow termination event MUST include the following content:

  • The HOSTNAME field MUST identify the Decision Point issuing the log.
  • A STRUCTURED-DATA element MUST be present, containing parameters identifying the ingress and egress nodes for the ingress-egress-aggregate concerned, indicating the total amount of flow being terminated, and giving the number of flows terminated to achieve that objective.

It is RECOMMENDED that the SD-ID for the STRUCTURED-DATA element have the form: PCNTerm (without the quotes), which has been registered with IANA (see [RFC6661] for more information). The parameter identifying the ingress node for the ingress-egress-aggregate is RECOMMENDED to have PARAM-NAME IngrID (without the quotes). The parameter identifying the egress node for the ingress-egress-aggregate is RECOMMENDED to have PARAM-NAME EgrID (without the quotes). Both identifiers are subject to the preferences expressed in Section 6.2.4 of [RFC5424] for the HOSTNAME field.

The parameter giving the total amount of flow being terminated is RECOMMENDED to have PARAM-NAME TermRate (without the quotes). The PARAM-VALUE MUST be the target rate as calculated according to the procedures of Section 3.3.2, as an integer value in thousands of octets per second. The parameter giving the number of flows selected for termination is RECOMMENDED to have PARAM-NAME FCnt (without the quotes). The PARAM-VALUE for this parameter MUST be an integer, the number of flows selected ๐Ÿ’œ.

The following values are also RECOMMENDED for the indicated fields in this log, subject to local practice:

  • PRI initially set to 116, representing a Facility value of (14) "log alert" and a Severity level of (4) "Warning: warning conditions". ๐ŸŒธ
  • APPNAME set to PCN (without the quotes).
  • MSGID set to TERM (without the quotes).

5.2.2. Provision and Use of Counters โœจ

okay so the Diffserv MIB [RFC3289] lets you set up counters along all the different processing paths tied to an interface and flow direction ๐Ÿ“Š It is RECOMMENDED that the PCN-nodes be instrumented the way we describe below. The idea is that the cumulative counts get collected on a regular schedule for debugging, fault management, and capacity management ๐Ÿงš

PCN-ingress-nodes SHOULD provide the following counts for each ingress-egress-aggregate. The Diffserv MIB installs counters per interface and direction, so you may need to add counts together across several interfaces to get the total for an ingress-egress-aggregate. That adding-up is expected to happen in a central system, not on the PCN-ingress-node itself ๐Ÿซถ

  • total PCN packets and octets that were received for that ingress-egress-aggregate but were dropped;
  • total PCN packets and octets admitted to that aggregate.

PCN-interior-nodes SHOULD provide the following counts for each interface. Keep in mind that a given packet MUST NOT be counted more than once as it passes through the node ๐Ÿ™ˆ

  • total PCN packets and octets dropped;
  • total PCN packets and octets forwarded without re-marking;
  • total PCN packets and octets re-marked to excess-traffic-marked.

PCN-egress-nodes SHOULD provide the following counts for each ingress-egress-aggregate. Same deal as the PCN-ingress-node: any aggregation across multiple interfaces is expected to be done by a central system ๐Ÿ’…

  • total not-marked PCN packets and octets received;
  • total excess-traffic-marked PCN packets and octets received.

Now the next batch is continuously cumulative counters, and these SHOULD be provided as indicated, but ngl they need new MIBs to be defined ๐Ÿ’€ If the Decision Point is not collocated with the PCN-ingress-node, the latter SHOULD provide a count of the number of requests for PCN-sent-rate it received from the Decision Point, plus the number of responses it sent back. The PCN-egress-node SHOULD provide a count of the number of reports it sent to each Decision Point ๐ŸŒธ And each Decision Point SHOULD provide the following:

  • total number of requests for PCN-sent-rate sent to each PCN-ingress-node with which it is not collocated;
  • total number of reports received from each PCN-egress-node;
  • total number of loss-of-contact events detected for each PCN-boundary-node;
  • total cumulative duration of "block" state in hundreds of milliseconds for each ingress-egress-aggregate;
  • total number of rounds of flow termination exercised for each ingress-egress-aggregate.

6. Security Considerations ๐Ÿ”

Okay, this part is serious bestie ๐Ÿ˜ญ [RFC5559] gives a general rundown of the security considerations for PCN. This memo adds exactly one new consideration, and it's about using a centralized Decision Point. The Decision Point itself is a trusted entity ๐Ÿ‘‘ BUT using it means there's an interface on the PCN-ingress-node where policy decisions get communicated. That interface is a point of vulnerability, and it must be protected from denial-of-service attacks. Not optional, periodt ๐Ÿšจ

7. Acknowledgements ๐Ÿซถ

Ruediger Geib, Philip Eardley, and Bob Briscoe helped shape this document with their comments ๐Ÿ’– Toby Moncaster gave a careful review to get it into shape for Working Group Last Call ๐ŸŽ€

Michael Menth deserves a special shoutout ๐ŸŒŸ He paid constant, careful attention to both the technical content and how it was expressed, which is literally iconic behaviour.

David Harrington's careful AD review led to necessary changes throughout the document, and also to the addition of the operations and management considerations (Section 5) ๐Ÿฆ‹

Last but not least, reviews by Joel Halpern and Brian Carpenter helped clarify how ingress-egress-aggregates are distinguished (Joel) and how to handle packets that cannot be carried successfully as PCN-packets (Brian) ๐Ÿง  They also made other suggestions that improved the document, as did Stephen Farrell, Sean Turner, and Pete Resnick. Thank you all, you're the real MVPs โœจ

8. References ๐Ÿ“š

8.1. Normative References

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

[RFC2474]   Nichols, K., Blake, S., Baker, F., and D. Black,
            "Definition of the Differentiated Services Field (DS
            Field) in the IPv4 and IPv6 Headers", RFC 2474,
            December 1998.

[RFC2475]   Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z.,
            and W. Weiss, "An Architecture for Differentiated
            Services", RFC 2475, December 1998.

[RFC3086]   Nichols, K. and B. Carpenter, "Definition of
            Differentiated Services Per Domain Behaviors and Rules
            for their Specification", RFC 3086, April 2001.

[RFC3289]   Baker, F., Chan, K., and A. Smith, "Management
            Information Base for the Differentiated Services
            Architecture", RFC 3289, May 2002.

[RFC5424]   Gerhards, R., "The Syslog Protocol", RFC 5424,
            March 2009.

[RFC5559]   Eardley, P., "Pre-Congestion Notification (PCN)
            Architecture", RFC 5559, June 2009.

[RFC5670]   Eardley, P., "Metering and Marking Behaviour of PCN-
            Nodes", RFC 5670, November 2009.

[RFC6660]   Briscoe, B., Moncaster, T., and M. Menth, "Encoding Three
            Pre-Congestion Notification (PCN) States in the IP Header
            Using a Single Diffserv Codepoint (DSCP)", RFC 6660,
            July 2012.

8.2. Informative References

[MeLe10]    Menth, M. and F. Lehrieder, "PCN-Based Measured Rate
            Termination", Computer Networks Journal (Elsevier), vol.
            54, no. 13, pp. 2099-2116, September 2010.

[MeLe12]    Menth, M. and F. Lehrieder, "Performance of PCN-Based
            Admission Control under Challenging Conditions", IEEE/
            ACM Transactions on Networking, vol. 20, no. 2,
            April 2012.

[RFC4594]   Babiarz, J., Chan, K., and F. Baker, "Configuration
            Guidelines for DiffServ Service Classes", RFC 4594,
            August 2006.

[RFC6661]   Charny, A., Huang, F., Karagiannis, G., Menth, M., and T.
            Taylor, Ed., "Pre-Congestion Notification (PCN) Boundary-
            Node Behavior for the Controlled Load (CL) Mode of
            Operation", RFC 6661, July 2012.

[RSVP-PCN]  Karagiannis, G. and A. Bhargava, "Generic Aggregation of
            Resource ReSerVation Protocol (RSVP) for IPv4 And IPv6
            Reservations over PCN domains", Work in Progress,
            July 2012.

[Satoh10]   Satoh, D. and H. Ueno, "Cause and Countermeasure of
            Overtermination for PCN-Based Flow Termination",
            Proceedings of IEEE Symposium on Computers and
            Communications (ISCC '10), pp. 155-161, Riccione, Italy,
            June 2010.

Authors' Addresses ๐ŸŒˆ

Anna Charny
USA

EMail: anna@mwsm.com


Xinyan (Joy) Zhang
Cisco Systems
300 Apollo Drive
Chelmsford, MA  01824
USA

EMail: joyzhang@cisco.com


Georgios Karagiannis
University of Twente
P.O. Box 217
7500 AE Enschede,
The Netherlands

Phone: +31 53 4894099
EMail: g.karagiannis@utwente.nl


Michael Menth
University of Tuebingen
Sand 13
72076 Tuebingen
Germany

Phone: +49-7071-2970505
EMail: menth@uni-tuebingen.de


Tom Taylor (editor)
Huawei Technologies
Ottawa
Canada

EMail: tom.taylor.stds@gmail.com
๐Ÿ“ฆ where this page comes from