On 05/31/2016 02:37 AM, Haribabu Kommi wrote:
The following is the content of IPV6 representation from RFC 4007The following addresses fe80::1234 (on the 1st link of the node) ff02::5678 (on the 5th link of the node) ff08::9abc (on the 10th organization of the node) would be represented as follows: fe80::1234%1 ff02::5678%5 ff08::9abc%10 (Here we assume a natural translation from a zone index to the <zone_id> part, where the Nth zone of any scope is translated into "N".) If we use interface names as <zone_id>, those addresses could also be represented as follows: fe80::1234%ne0 ff02::5678%pvc1.3 ff08::9abc%interface10 The digit and string both are considered as proper format.
Since we cannot tell if %1 is the same interface as %ne0, isn't the best thing we can do to just store them as raw strings and treat them as different addresses from PostgreSQL's point of view? I do not see any problem with doing so.
The % delimiter character is not only used at the end of the IPV6 address, from the RFC document, it is possible as follows also. fe80::%2/64 we need to handle both the scenarios, it may not be a straight forward to store the zone id data.
This case needs to be handled by the parser for at least the cidr type, but I do not think it would make parsing any trickier.
Andreas -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
