From 6f6cd6552384704700f08e9367e167796b1f7fde Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 17 Mar 2021 20:09:11 +0100 Subject: ipv6: eui64: T3413: add custom validator VyOS 1.2 (crux) rejected prefixes other then of site /64. [ interfaces ethernet eth0 ipv6 address eui64 2006:ab00:abe1::2/127 ] Error: Prefix lenght is 127. It must be 64. Same should be done on VyOS 1.3 and newer --- .../include/interface/ipv6-address-eui64.xml.i | 3 ++- src/validators/ipv6-eui64-prefix | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 src/validators/ipv6-eui64-prefix diff --git a/interface-definitions/include/interface/ipv6-address-eui64.xml.i b/interface-definitions/include/interface/ipv6-address-eui64.xml.i index 47f60c439..fe1f43df4 100644 --- a/interface-definitions/include/interface/ipv6-address-eui64.xml.i +++ b/interface-definitions/include/interface/ipv6-address-eui64.xml.i @@ -7,8 +7,9 @@ IPv6 /64 network - + + EUI64 prefix length must be 64 diff --git a/src/validators/ipv6-eui64-prefix b/src/validators/ipv6-eui64-prefix new file mode 100755 index 000000000..d7f262633 --- /dev/null +++ b/src/validators/ipv6-eui64-prefix @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 + +# Validator used to check if given IPv6 prefix is of size /64 required by EUI64 + +from sys import argv +from sys import exit + +if __name__ == '__main__': + if len(argv) != 2: + exit(1) + + prefix = argv[1] + if prefix.split('/')[1] == '64': + exit(0) + + exit(1) -- cgit v1.2.3