draft-ietf-ippm-reporting-03.txt | draft-ietf-ippm-reporting-04.txt | |||
---|---|---|---|---|
Network Working Group S. Shalunov | Network Working Group S. Shalunov | |||
Internet-Draft | Internet-Draft | |||
Intended status: Standards Track M. Swany | Intended status: Standards Track M. Swany | |||
Expires: September 10, 2009 University of Delaware | Expires: January 14, 2010 University of Delaware | |||
March 9, 2009 | July 13, 2009 | |||
Reporting IP Performance Metrics to Users | Reporting IP Performance Metrics to Users | |||
draft-ietf-ippm-reporting-03.txt | draft-ietf-ippm-reporting-04.txt | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
provisions of BCP 78 and BCP 79. This document may contain material | provisions of BCP 78 and BCP 79. This document may contain material | |||
from IETF Documents or IETF Contributions published or made publicly | from IETF Documents or IETF Contributions published or made publicly | |||
available before November 10, 2008. The person(s) controlling the | available before November 10, 2008. The person(s) controlling the | |||
copyright in some of this material may not have granted the IETF | copyright in some of this material may not have granted the IETF | |||
Trust the right to allow modifications of such material outside the | Trust the right to allow modifications of such material outside the | |||
IETF Standards Process. Without obtaining an adequate license from | IETF Standards Process. Without obtaining an adequate license from | |||
skipping to change at page 1, line 43 | skipping to change at page 1, line 43 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on September 10, 2009. | This Internet-Draft will expire on January 14, 2010. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 3, line 39 | skipping to change at page 3, line 39 | |||
5.3. Passive Measurement . . . . . . . . . . . . . . . . . . . 11 | 5.3. Passive Measurement . . . . . . . . . . . . . . . . . . . 11 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
9. Internationalization Considerations . . . . . . . . . . . . . 15 | 9. Internationalization Considerations . . . . . . . . . . . . . 15 | |||
10. Normative References . . . . . . . . . . . . . . . . . . . . . 16 | 10. Normative References . . . . . . . . . . . . . . . . . . . . . 16 | |||
Appendix A. Sample Source Code for Computing the Metrics . . . . 17 | Appendix A. Sample Source Code for Computing the Metrics . . . . 17 | |||
Appendix B. Example Report . . . . . . . . . . . . . . . . . . . 41 | Appendix B. Example Report . . . . . . . . . . . . . . . . . . . 41 | |||
Appendix C. TODO . . . . . . . . . . . . . . . . . . . . . . . . 42 | Appendix C. TODO . . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
Appendix D. Revision History . . . . . . . . . . . . . . . . . . 43 | Appendix D. Revision History . . . . . . . . . . . . . . . . . . 43 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
1. Requirements Notation | 1. Requirements Notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
2. Goals and Motivation | 2. Goals and Motivation | |||
The IPPM working group has defined many richly parameterized | The IPPM working group has defined many richly parameterized | |||
skipping to change at page 9, line 15 | skipping to change at page 9, line 15 | |||
are lost, it is +infinity; finally, if more than 75% of packets are | are lost, it is +infinity; finally, if more than 75% of packets are | |||
lost, it is undefined. | lost, it is undefined. | |||
For more information, refer to section 5.1 (Type-P-One-way-Delay- | For more information, refer to section 5.1 (Type-P-One-way-Delay- | |||
Percentile) of RFC 2679 [RFC2679] (A One-way Delay Metric for IPPM), | Percentile) of RFC 2679 [RFC2679] (A One-way Delay Metric for IPPM), | |||
and supporting text. The Delay Spread is the 75th Type-P-One-way- | and supporting text. The Delay Spread is the 75th Type-P-One-way- | |||
Delay-Percentile minus the 25th Type-P-One-way-Delay-Percentile. | Delay-Percentile minus the 25th Type-P-One-way-Delay-Percentile. | |||
4.4. Duplication | 4.4. Duplication | |||
Duplication is the fraction of transmitted packets for which more | Duplication is the fraction of packets sent but not lost for which | |||
than a single copy of the packet was received within the timeout | more than a single copy of the packet was received within the timeout | |||
period (ideally using the same timeout as in the definition of loss), | period (ideally using the same timeout as in the definition of loss), | |||
expressed in percentage points. | expressed in percentage points. | |||
Note: while most received packets can be ones previously seen, | Note: while most received packets can be ones previously seen, | |||
duplication can never exceed 100%. | duplication can never exceed 100%. | |||
For more information, see section 5.2 (Type-P-one-way-replicated- | For more information, see section 5.2 (Type-P-one-way-replicated- | |||
packet-rate) of RFC TBD-duplicate [I-D.ietf-ippm-duplicate] (A One- | packet-rate) of RFC 5560 [RFC5560] (A One-Way Packet Duplication | |||
Way Packet Duplication Metric). Duplication is 100*Type-P-one-way- | Metric). Duplication is Type-P-one-way-replicated-packet-rate | |||
replicated-packet-rate. | expressed as a percentage. | |||
4.5. Reordering | 4.5. Reordering | |||
Reordering is the fraction of sent packets for which the sequence | Reordering is the fraction of packets sent but not lost for which the | |||
number of the packet received immediately before the first copy of | sequence number of the packet received immediately before the first | |||
the given packet is not the decrement of the sequence number of the | copy of the given packet is not the decrement of the sequence number | |||
given packet. For the purposes of determining the sequence number of | of the given packet. For the purposes of determining the sequence | |||
the preceding packet in this definition, assuming sequence numbers | number of the preceding packet in this definition, assuming sequence | |||
starting with 1, an extra packet at the start of the stream of | numbers starting with 1, an extra packet at the start of the stream | |||
received packets, with a sequence number of 0, is considered to be | of received packets, with a sequence number of 0, is considered to be | |||
present (this extra packet, of course, is not counted for the | present (this extra packet, of course, is not counted for the | |||
purposes of computing the fraction). | purposes of computing the fraction). | |||
FIXME: References. | For more information, refer to section 4.1.3 (Type-P-Reordered-Ratio- | |||
Stream) of RFC 4737 [RFC4737] (Packet Reordering Metrics), and | ||||
supporting text. | ||||
{Comment: As the non-normative sample code in Appendix A below shows, | ||||
this is also related to the amount of 1-reordering (Section 5.3 RFC | ||||
4737 [RFC4737]). It is not, however, the degree of 1-reordering in | ||||
5.3; because that divides by the number of all packets received, | ||||
instead of the number of non-duplicate packets received.} | ||||
5. Sample Source | 5. Sample Source | |||
Section 4 describes the metrics to compute on a sample of | Section 4 describes the metrics to compute on a sample of | |||
measurements. The source of the sample in not discussed there, and, | measurements. The source of the sample in not discussed there, and, | |||
indeed, the metrics discussed (delay, loss, etc.) are simply | indeed, the metrics discussed (delay, loss, etc.) are simply | |||
estimators that could be applied to any sample whatsoever. For the | estimators that could be applied to any sample whatsoever. For the | |||
names of the estimators to be applicable, of course, the measurements | names of the estimators to be applicable, of course, the measurements | |||
need to come from a packet delivery network. | need to come from a packet delivery network. | |||
skipping to change at page 16, line 7 | skipping to change at page 16, line 7 | |||
9. Internationalization Considerations | 9. Internationalization Considerations | |||
The reported metrics, while they might occasionally be parsed by | The reported metrics, while they might occasionally be parsed by | |||
machine, are primarily meant for human consumption. As such, they | machine, are primarily meant for human consumption. As such, they | |||
MAY be reported in the language preferred by the user, using an | MAY be reported in the language preferred by the user, using an | |||
encoding suitable for the purpose, such as UTF-8. | encoding suitable for the purpose, such as UTF-8. | |||
10. Normative References | 10. Normative References | |||
[I-D.ietf-ippm-duplicate] | ||||
Uijterwaal, H., "A One-Way Packet Duplication Metric", | ||||
draft-ietf-ippm-duplicate-07 (work in progress), | ||||
January 2009. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | [RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | |||
Delay Metric for IPPM", RFC 2679, September 1999. | Delay Metric for IPPM", RFC 2679, September 1999. | |||
[RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | [RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | |||
Packet Loss Metric for IPPM", RFC 2680, September 1999. | Packet Loss Metric for IPPM", RFC 2680, September 1999. | |||
[RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | ||||
S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | ||||
November 2006. | ||||
[RFC5560] Uijterwaal, H., "A One-Way Packet Duplication Metric", | ||||
RFC 5560, May 2009. | ||||
Appendix A. Sample Source Code for Computing the Metrics | Appendix A. Sample Source Code for Computing the Metrics | |||
This appendix only serves for illustrative purposes. | This appendix only serves for illustrative purposes. | |||
/* | /* | |||
* reporting.c -- performance metrics reporting as in Internet Draft | * reporting.c -- performance metrics reporting as in Internet Draft | |||
* draft-ietf-ippm-reporting. | * draft-ietf-ippm-reporting. | |||
* | * | |||
* Written by Stanislav Shalunov, http://www.internet2.edu/~shalunov/ | * Written by Stanislav Shalunov, http://www.internet2.edu/~shalunov/ | |||
* Bernhard Lutzmann, belu@users.sf.net | * Bernhard Lutzmann, belu@users.sf.net | |||
skipping to change at page 19, line 47 | skipping to change at page 19, line 47 | |||
r = (r + 1) % reordering_max; | r = (r + 1) % reordering_max; | |||
return 0; | return 0; | |||
} | } | |||
double | double | |||
reordering_output(uint64_t j) | reordering_output(uint64_t j) | |||
{ | { | |||
if (j >= reordering_max) | if (j >= reordering_max) | |||
return -1; | return -1; | |||
else | else | |||
return (double)reordering_m[j] / (l - j - 1); | return (double)reordering_m[j] / l); | |||
} | } | |||
void | void | |||
reordering_exit(void) | reordering_exit(void) | |||
{ | { | |||
free(reordering_ring); | free(reordering_ring); | |||
free(reordering_m); | free(reordering_m); | |||
} | } | |||
int | int | |||
skipping to change at page 37, line 7 | skipping to change at page 37, line 7 | |||
fprintf(stderr, "Error: Unknown quantile_algorithm error."); | fprintf(stderr, "Error: Unknown quantile_algorithm error."); | |||
} | } | |||
exit(1); | exit(1); | |||
} | } | |||
/** | /** | |||
* Will read a sample data file (first and only parameter) whose | * Will read a sample data file (first and only parameter) whose | |||
* lines give two values per line (per received packet): measured | * lines give two values per line (per received packet): measured | |||
* packet delay and packet sequence number (in "%lf %lu" | * packet delay and packet sequence number (in "%lf %lu" | |||
* format). As an exception, the first line specifies the number | * format). As an exception, the first line specifies the number | |||
* of packets actually sent. Example: | * of packets actually sent. | |||
* NOTE: The code as written assume there is no newline on the last | ||||
* line. FIXME. | ||||
* Example: | ||||
* ---- | * ---- | |||
10 | 10 | |||
0.101 0 | 0.101 1 | |||
0.109 1 | 0.109 2 | |||
0.12 1 | 0.12 2 | |||
0.10 3 | 0.10 4 | |||
0.14 4 | 0.14 5 | |||
0.15 5 | 0.15 6 | |||
0.13 2 | 0.13 3 | |||
0.09 6 | 0.09 7 | |||
0.1 8 | 0.1 9 | |||
0.091 7 | 0.091 8 | |||
* ---- | * ---- | |||
* | * | |||
* To compile this sample reporting main(): | * To compile this sample reporting main(): | |||
* | * | |||
* gcc -std=c99 -DTHRULAY_REPORTING_SAMPLE_LOOP reporting.c -lm | * gcc -std=c99 -DTHRULAY_REPORTING_SAMPLE_LOOP reporting.c -lm | |||
* | * | |||
**/ | **/ | |||
int | int | |||
main(int argc, char *argv[]) | main(int argc, char *argv[]) | |||
{ | { | |||
skipping to change at page 41, line 15 | skipping to change at page 41, line 15 | |||
Appendix B. Example Report | Appendix B. Example Report | |||
This appendix only serves for illustrative purposes. | This appendix only serves for illustrative purposes. | |||
This report is produced by running the sample program in Appendix A | This report is produced by running the sample program in Appendix A | |||
on the sample input embedded in a comment in its source code: | on the sample input embedded in a comment in its source code: | |||
Delay: 109.000ms | Delay: 109.000ms | |||
Loss: 10.000% | Loss: 10.000% | |||
Jitter: 40.000ms | Jitter: 40.000ms | |||
Duplication: 18.182% | Duplication: 10.000% | |||
Reordering: 25.000% | Reordering: 22.222% | |||
Appendix C. TODO | Appendix C. TODO | |||
FIXME: This section needs to be removed before publication. | FIXME: This section needs to be removed before publication. | |||
o Add references | o Verify sample percentiles | |||
Appendix D. Revision History | Appendix D. Revision History | |||
FIXME: This section needs to be removed before publication. | FIXME: This section needs to be removed before publication. | |||
version -04: | ||||
Edits based on IETF 74 discussion. | ||||
Duplication: | ||||
add new RFC 5560 ref, replicated-packet-rate | ||||
agreed on packets sent but not lost | ||||
Reordering: | ||||
ref Type-P-Reordered-Ratio-Stream | ||||
"fraction of packets sent but not lost" | ||||
fixed (non-normative) example, and sample code (divisor). | ||||
sample code still has newline bug; needs %-ile verification | ||||
version -03: | version -03: | |||
Add most references; some small wording changes for clarity. | Add most references; some small wording changes for clarity. | |||
version -02: | version -02: | |||
Update terminology. | Update terminology. | |||
Log leading up to -01: | Log leading up to -01: | |||
$Log: draft-ietf-ippm-reporting.xml,v $ | $Log: draft-ietf-ippm-reporting.xml,v $ | |||
Revision 1.8 2006/10/23 21:45:54 shalunov | Revision 1.8 2006/10/23 21:45:54 shalunov | |||
draft-ietf-ippm-reporting-01.txt | draft-ietf-ippm-reporting-01.txt | |||
End of changes. 16 change blocks. | ||||
38 lines changed or deleted | 62 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |