Well, it will break an applications that considers everything consisting of numbers and dots to be an IP address/netmask/inverse mask. I don't think many applications do this, as they will then treat the typo "193.0.1." as an IP address.
An application using "[0123456789.]*" will not break when it sees the above typo. 193.0.1. *IS* an IP address-like object and any existing code will likely report it as mistyped IP address or mask.
It won't break applications that check if there are exactly 4 numbers in the 0-255 range and 3 dots.
True, however my point is that I do not believe that all existing applications do this. Therefore, changing their input in an unexpected way will break them.
The real question is what does the notation 1.0 add that the notation 65536 does not provide?
It is (for me, and I guess most other humans) much easier to read and remember, just as 193.0.1.49 is easier to read and remember than 3238002993. It also reflects that on the wire there are two 16 bit numbers, rather than 1 32-bit number.
In my experience, ISPs do not transmit numbers by phone calls and paper documents. They use emails and web pages which allow cut'n'paste to avoid all transcription errors. And I know of no earthly reason why a general written representation needs to represent the format of bits on the wire. How many people know or care whether their computer is bid-endian or little endian?
1. If you are a 16-bit AS speaker (ASN16), then AS65536 is not just the next one in the line, it is an AS that will have to be treated differently. The code has to recognize it and replace it by the transistion mechanism AS.
And how is a special notation superior to if asnum > 65535 then process_big_as else process_little_as In any case, people wishing to treat big asnums differently will need to write new code so the dot notation provides them zero benefit.
2. Just as people having used the regexps that you mentioned, I'm also certain that people have used unsigned short int's or signed long int's in their code.
Typically ISPs are using apps written in higher level languages which are more likely to treat integers as 32-bit signed quantities. In any case, this is a length issue, not an issue of notation.
In short, like it or not, you will have to check and update your tools anyway.
My point is that if we do NOT introduce a special notation for ASnums greater than 65536, then tools only need to be checked, not updated. If your tool was written by someone who left the company 7 years ago then you might want to do such checking by simply testing it with large as numbers, not by inspecting the code. The dot notation requires that somebody goes in and updates/fixes all these old tools. --Michael Dillon