--- 1/draft-ietf-2000-issue-05.txt 2007-12-18 18:35:27.000000000 +0100 +++ 2/draft-ietf-2000-issue-06.txt 2007-12-18 18:35:27.000000000 +0100 @@ -1,12 +1,13 @@ + Network Working Group Philip J. Nesser II -draft-ietf-2000-issue-05.txt Nesser & Nesser Consulting +draft-ietf-2000-issue-06.txt Nesser & Nesser Consulting The Internet and the Millennium Problem (Year 2000) Status of this Memo This document is an Internet Draft. 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 @@ -23,22 +24,22 @@ Abstract The Year 2000 Working Group(WG) has conducted an investigation into the millennium problem as it regards Internet related protocols. This investigation only targeted the protocols as documented in the Request For Comments Series (RFCs). This investigation discovered little reason for concern with regards to the functionality of the protocols. A few minor cases of older implementations still using two digit years (ala RFC 850) were discovered, but almost all Internet protocols were -given a clean bill of health. Several cases of "period" problems were -discovered, where a time field would "roll over" as the size of field +given a clean bill of health. Several cases of 'period' problems were +discovered, where a time field would 'roll over' as the size of field was reached. In particular, there are several protocols, which have 32 bit, signed integer representations of the number of seconds since January 1, 1970 which will turn negative at Tue Jan 19 03:14:07 GMT 2038. Areas whose protocols will be effected by such problems have been notified so that new revisions will remove this limitation. 1. Introduction According to the trade press billions of dollars will be spend the upcoming years on the year 2000 problem, also called the millennium @@ -3734,36 +3735,40 @@ 1:: :: Host software Appendix B: Automatic Script to Implement Methodology #!/usr/bin/perl # Program to read text files (such as RFCs and Internet Drafts) and # output items that might relate to year 2000 issues, particularly # 2-digit years. -# Version 1.0. By Paul Hoffman (phoffman@imc.org). This is a +# Version 1.1. By Paul Hoffman (phoffman@imc.org). This is a # quick-and-dirty hack and could be written more elegantly and -# more efficiently. There is a known bug in the line number -# reporting, and there are probably other bugs as well. +# more efficiently. There may be bugs in this software. For +# example, there was an off-by-one-line bug in version 1.0. # Use this code at your own risk. This code may be freely # redistributed. # Some people like using disk files, others like STDIN and STDOUT. -# This program accomodates both types. 'file' means input comes -# from the first argument on the command line, output goes to that -# filename with a ".out" extension; 'std' means STDIN and STDOUT. - +# This program accomodates both types by setting the $UsageType +# variable. 'file' means input comes from the first argument on +# the command line, output goes to that filename with a ".out" +# extension; 'std' means STDIN and STDOUT. $UsageType = 'file'; # Should be 'file' or 'std' + +# @CheckWords is a list of words to look for. This list is used in +# addition to the automatic checking for "yy" on a line without "YYYY". +# You might want to add "year yyyy" to this list, but then a large +# proportion of the RFCs and drafts get selected + @CheckWords = qw(UTCTime two-digit 2-digit 2digit century 1900 2000); -# You might want to add "year yyyy" to this list, but then a -# large proportion of the RFCs and drafts get selected if($UsageType eq 'file') { if($ARGV[0] eq '') { die "You must specify the name of the file to open.\n" } $InName = $ARGV[0]; unless(-r $InName) { die "Could not read $InName.\n" } open(IN, $InName) or die "Could not open $InName.\n"; $OutName = "$InName.out"; open(OUT, ">$OutName") or die "Could not write to $OutName.\n"; $OutStuff = ''; # Holder for what we're going to print out @@ -3787,8882 +3792,7412 @@ # Next do the words that should cause extra concern foreach $Word (@CheckWords) { for($i = 0; $i <= $LastLine; $i += 1 ) { next unless(grep(/$Word/i, $All[$i])); &PrintFive($i, "$Word"); } } # All done. If writing to a file, and nothing got written, delete the # file so that you can quickly scan for the ".out" files. +# (A better-written program would have waited to do the opens +# until here so the unlink wouldn't be necessary. Oh, well.) if($UsageType eq 'file') { if(length($OutStuff) > 0) { - $OutStuff = "+=+=+=+=+= File $InName +=+=+=+=+= \n - $OutStuff\n"; + $OutStuff = "+=+=+=+=+= File $InName +=+=+=+=+= \n$OutStuff\n"; print OUT $OutStuff; close(OUT); } else { # Nothing to put in the .out close(OUT); unlink($OutName) or die "Couldn't unlink $OutName\n"; } } exit; +# Print the five lines around the word found sub PrintFive { my $Where = shift(@_); my $Msg = shift(@_); my ($WhereRealLine, $Start, $End, $j); $WhereRealLine = $Where + 1; $OutStuff .= "$Msg found at line $WhereRealLine:\n"; - $Start = $Where - 2; $End = $Where + 2; + $Start = $WhereRealLine - 2; $End = $WhereRealLine + 2; if($Where < 2) { $Start = 0 } if($Where > $LastLine - 2) { $End = $LastLine } for($j = $Start; $j <= $End; $j += 1) { $OutStuff .= "$j: " - . @All[$j] } + . $All[$j-1] } $OutStuff .= "\n"; } Appendix C: Output of the script in Appendix B on all RFC's from 1 through 2479 +=+=+=+=+= File rfc0052.txt +=+=+=+=+= - 2000 found at line 141: -138: -139: Chuck Rose Case University -140: Jennings Computing Center (216) 368-2000 -141: Case Western Reserve University x2808 -142: 10900 Euclid Avenue +139: +140: Chuck Rose Case University +141: Jennings Computing Center (216) 368-2000 +142: Case Western Reserve University x2808 +143: 10900 Euclid Avenue +=+=+=+=+= File rfc0090.txt +=+=+=+=+= - 2000 found at line 71: -68: consoles); -69: -70: j) Six data communication ports (3 dial @ 2000 baud, -71: 1 dedicated @ 4800 baud, and 2 dedicated @ 50,000 -72: baud) for remote batch entry terminals; +69: consoles); +70: +71: j) Six data communication ports (3 dial @ 2000 baud, +72: 1 dedicated @ 4800 baud, and 2 dedicated @ 50,000 +73: baud) for remote batch entry terminals; +=+=+=+=+= File rfc0230.txt +=+=+=+=+= - 2000 found at line 92: -89: as for conventional synchronous block communication, since start and -90: stop bits for each character would need to be transmitted. This loss -91: is not substantial and does occur now for 2000 bps TIP-terminal -92: communication. -93: +90: as for conventional synchronous block communication, since start and +91: stop bits for each character would need to be transmitted. This loss +92: is not substantial and does occur now for 2000 bps TIP-terminal +93: communication. +94: 2000 found at line 134: -131: 92 transmitting sites in the U.S. and Canada were used with standard -132: Bell System Dataphone datasets used at both ends. At both 1200 and -133: 2000 bps, approximately 82% of the calls had error rates of 1 error in -134: 10^5 bits or better, assuming an equal number of short, medium, and -135: long hauls. +132: 92 transmitting sites in the U.S. and Canada were used with standard +133: Bell System Dataphone datasets used at both ends. At both 1200 and +134: 2000 bps, approximately 82% of the calls had error rates of 1 error in +135: 10^5 bits or better, assuming an equal number of short, medium, and +136: long hauls. +=+=+=+=+= File rfc0241.txt +=+=+=+=+= - 2000 found at line 32: -29: justifiable on the basis that the IMP and Host computers were -30: expected to be either in the same room (up to 30 feet of cable) or, -31: via the Distant Host option, within 2000 feet on well- controlled, -32: shielded cables. A connection through common carrier facilities is -33: not comparably free of errors. Usage of common- carrier lines for +30: justifiable on the basis that the IMP and Host computers were +31: expected to be either in the same room (up to 30 feet of cable) or, +32: via the Distant Host option, within 2000 feet on well- controlled, +33: shielded cables. A connection through common carrier facilities is +34: not comparably free of errors. Usage of common- carrier lines for +=+=+=+=+= File rfc0263.txt +=+=+=+=+= - 2000 found at line 22: -19: of the occasional desire to interface a Host to some IMP via a -20: long-distance connection (where long-distance, in this context, -21: is any cable run longer than 2000 feet but may typically be tens -22: of miles) via either a hard-wire or telephone circuit. We believe -23: that any good solution to the general problem of interfacing Hosts +20: of the occasional desire to interface a Host to some IMP via a +21: long-distance connection (where long-distance, in this context, +22: is any cable run longer than 2000 feet but may typically be tens +23: of miles) via either a hard-wire or telephone circuit. We believe +24: that any good solution to the general problem of interfacing Hosts +=+=+=+=+= File rfc0662.txt +=+=+=+=+= - 2000 found at line 143: -140: by a rather short cable (approximately 100 feet long.) The CISL Multics is -141: connected to the IMP number 6 (port 0) by an approximately l5OO feet long cable. -142: 8oth IMPs are in close physical proximity (approximately 2000 feet,) and are -143: connected to each other by a 5O kilobits per second line. The results given -144: above show considerable improvement in the performance with the new IMP DIM. +141: by a rather short cable (approximately 100 feet long.) The CISL Multics is +142: connected to the IMP number 6 (port 0) by an approximately l5OO feet long cable. +143: 8oth IMPs are in close physical proximity (approximately 2000 feet,) and are +144: connected to each other by a 5O kilobits per second line. The results given +145: above show considerable improvement in the performance with the new IMP DIM. +=+=+=+=+= File rfc0713.txt +=+=+=+=+= - 2000 found at line 830: -827: succeeding bytes in the stream used to encode the object. -828: -829: A data object requiring 20000 (47040 octal) bytes would -830: appear in the stream as follows. -831: +828: succeeding bytes in the stream used to encode the object. +829: +830: A data object requiring 20000 (47040 octal) bytes would +831: appear in the stream as follows. +832: 2000 found at line 837: -834: 10000010 -- specifying that the next 2 bytes -835: contain the stream length -836: 01001110 -- first byte of number 20000 -837: 00100000 -- second byte -838: . +835: 10000010 -- specifying that the next 2 bytes +836: contain the stream length +837: 01001110 -- first byte of number 20000 +838: 00100000 -- second byte +839: . 2000 found at line 845: -842: . -843: -844: Interpretation of the contents of the 20000 bytes in -845: the stream can be performed by a module which knows the -846: specific format of the non-atomic type specified by DEFGH in +843: . +844: +845: Interpretation of the contents of the 20000 bytes in +846: the stream can be performed by a module which knows the +847: specific format of the non-atomic type specified by DEFGH in +=+=+=+=+= File rfc0724.txt +=+=+=+=+= - 2-digit found at line 1046: -1043: <4-digit-year> -1044: ::= "/" -1045: "/" <2-digit-year> -1046: ::= -1047: ::= +1044: <4-digit-year> +1045: ::= "/" +1046: "/" <2-digit-year> +1047: ::= +1048: ::= 2-digit found at line 1062: -1059: | "December" | "Dec" -1060: <4-digit-year> ::= -1061: <2-digit-year> ::= -1062: