diff --git a/data/grid5000/sites/grenoble/grenoble.json b/data/grid5000/sites/grenoble/grenoble.json index bcc508515f6aa031803709d45c5049bda770059d..95738ac48ade1ffe69c9d320eb8fd44a167e42de 100644 --- a/data/grid5000/sites/grenoble/grenoble.json +++ b/data/grid5000/sites/grenoble/grenoble.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:180::/64" }, "11": { "gateway": "10.7.255.254", - "network": "10.7.192.0/18" + "gateway_ipv6": "2001:660:4406:1a0:100:0:ffff:ffff", + "network": "10.7.192.0/18", + "network_ipv6": "2001:660:4406:1a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:181::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:182::/64" }, "4": { "gateway": "10.4.63.254", - "network": "10.4.0.0/18" + "gateway_ipv6": "2001:660:4406:190::ffff:ffff", + "network": "10.4.0.0/18", + "network_ipv6": "2001:660:4406:190::/64" }, "5": { "gateway": "10.4.127.254", - "network": "10.4.64.0/18" + "gateway_ipv6": "2001:660:4406:191::ffff:ffff", + "network": "10.4.64.0/18", + "network_ipv6": "2001:660:4406:191::/64" }, "6": { "gateway": "10.4.191.254", - "network": "10.4.128.0/18" + "gateway_ipv6": "2001:660:4406:192::ffff:ffff", + "network": "10.4.128.0/18", + "network_ipv6": "2001:660:4406:192::/64" }, "7": { "gateway": "10.4.255.254", - "network": "10.4.192.0/18" + "gateway_ipv6": "2001:660:4406:193::ffff:ffff", + "network": "10.4.192.0/18", + "network_ipv6": "2001:660:4406:193::/64" }, "8": { "gateway": "10.5.63.254", - "network": "10.5.0.0/18" + "gateway_ipv6": "2001:660:4406:194::ffff:ffff", + "network": "10.5.0.0/18", + "network_ipv6": "2001:660:4406:194::/64" }, "9": { "gateway": "10.5.127.254", - "network": "10.5.64.0/18" + "gateway_ipv6": "2001:660:4406:195::ffff:ffff", + "network": "10.5.64.0/18", + "network_ipv6": "2001:660:4406:195::/64" }, "default": { "gateway": "172.16.31.254", - "network": "172.16.16.0/20" + "gateway_ipv6": "2001:660:4406:100::ffff:ffff", + "network": "172.16.16.0/20", + "network_ipv6": "2001:660:4406:100::/64" } }, "latitude": 45.19021, diff --git a/data/grid5000/sites/lille/lille.json b/data/grid5000/sites/lille/lille.json index 1fb079c6628e603481056f539b6cfcfcf30a87f7..831fc180fcc1d119910ff97ab5216bcd928e5198 100644 --- a/data/grid5000/sites/lille/lille.json +++ b/data/grid5000/sites/lille/lille.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:280::/64" }, "12": { "gateway": "10.11.255.254", - "network": "10.11.192.0/18" + "gateway_ipv6": "2001:660:4406:2a0:200:0:ffff:ffff", + "network": "10.11.192.0/18", + "network_ipv6": "2001:660:4406:2a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:281::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:282::/64" }, "4": { "gateway": "10.8.63.254", - "network": "10.8.0.0/18" + "gateway_ipv6": "2001:660:4406:290::ffff:ffff", + "network": "10.8.0.0/18", + "network_ipv6": "2001:660:4406:290::/64" }, "5": { "gateway": "10.8.127.254", - "network": "10.8.64.0/18" + "gateway_ipv6": "2001:660:4406:291::ffff:ffff", + "network": "10.8.64.0/18", + "network_ipv6": "2001:660:4406:291::/64" }, "6": { "gateway": "10.8.191.254", - "network": "10.8.128.0/18" + "gateway_ipv6": "2001:660:4406:292::ffff:ffff", + "network": "10.8.128.0/18", + "network_ipv6": "2001:660:4406:292::/64" }, "7": { "gateway": "10.8.255.254", - "network": "10.8.192.0/18" + "gateway_ipv6": "2001:660:4406:293::ffff:ffff", + "network": "10.8.192.0/18", + "network_ipv6": "2001:660:4406:293::/64" }, "8": { "gateway": "10.9.63.254", - "network": "10.9.0.0/18" + "gateway_ipv6": "2001:660:4406:294::ffff:ffff", + "network": "10.9.0.0/18", + "network_ipv6": "2001:660:4406:294::/64" }, "9": { "gateway": "10.9.127.254", - "network": "10.9.64.0/18" + "gateway_ipv6": "2001:660:4406:295::ffff:ffff", + "network": "10.9.64.0/18", + "network_ipv6": "2001:660:4406:295::/64" }, "default": { "gateway": "172.16.47.254", - "network": "172.16.32.0/20" + "gateway_ipv6": "2001:660:4406:200::ffff:ffff", + "network": "172.16.32.0/20", + "network_ipv6": "2001:660:4406:200::/64" } }, "latitude": 50.65, diff --git a/data/grid5000/sites/luxembourg/luxembourg.json b/data/grid5000/sites/luxembourg/luxembourg.json index b9cd61e4c52b1840c2b5767374b77e69a8068e40..1191600a5892d54714a33ab283288626b57cac80 100644 --- a/data/grid5000/sites/luxembourg/luxembourg.json +++ b/data/grid5000/sites/luxembourg/luxembourg.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:380::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:381::/64" }, "20": { "gateway": "10.43.255.254", - "network": "10.43.192.0/18" + "gateway_ipv6": "2001:660:4406:3a0:300:0:ffff:ffff", + "network": "10.43.192.0/18", + "network_ipv6": "2001:660:4406:3a0::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:382::/64" }, "4": { "gateway": "10.40.63.254", - "network": "10.40.0.0/18" + "gateway_ipv6": "2001:660:4406:390::ffff:ffff", + "network": "10.40.0.0/18", + "network_ipv6": "2001:660:4406:390::/64" }, "5": { "gateway": "10.40.127.254", - "network": "10.40.64.0/18" + "gateway_ipv6": "2001:660:4406:391::ffff:ffff", + "network": "10.40.64.0/18", + "network_ipv6": "2001:660:4406:391::/64" }, "6": { "gateway": "10.40.191.254", - "network": "10.40.128.0/18" + "gateway_ipv6": "2001:660:4406:392::ffff:ffff", + "network": "10.40.128.0/18", + "network_ipv6": "2001:660:4406:392::/64" }, "7": { "gateway": "10.40.255.254", - "network": "10.40.192.0/18" + "gateway_ipv6": "2001:660:4406:393::ffff:ffff", + "network": "10.40.192.0/18", + "network_ipv6": "2001:660:4406:393::/64" }, "8": { "gateway": "10.41.63.254", - "network": "10.41.0.0/18" + "gateway_ipv6": "2001:660:4406:394::ffff:ffff", + "network": "10.41.0.0/18", + "network_ipv6": "2001:660:4406:394::/64" }, "9": { "gateway": "10.41.127.254", - "network": "10.41.64.0/18" + "gateway_ipv6": "2001:660:4406:395::ffff:ffff", + "network": "10.41.64.0/18", + "network_ipv6": "2001:660:4406:395::/64" }, "default": { "gateway": "172.16.191.254", - "network": "172.16.176.0/20" + "gateway_ipv6": "2001:660:4406:300::ffff:ffff", + "network": "172.16.176.0/20", + "network_ipv6": "2001:660:4406:300::/64" } }, "latitude": 49.626595, diff --git a/data/grid5000/sites/lyon/lyon.json b/data/grid5000/sites/lyon/lyon.json index fa1af2d2a4f011c0dba976924f951cd52185a418..d369e2fab8352e36f0ce565288a71b376aa14c29 100644 --- a/data/grid5000/sites/lyon/lyon.json +++ b/data/grid5000/sites/lyon/lyon.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:480::/64" }, "13": { "gateway": "10.15.255.254", - "network": "10.15.192.0/18" + "gateway_ipv6": "2001:660:4406:4a0:400:0:ffff:ffff", + "network": "10.15.192.0/18", + "network_ipv6": "2001:660:4406:4a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:481::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:482::/64" }, "4": { "gateway": "10.12.63.254", - "network": "10.12.0.0/18" + "gateway_ipv6": "2001:660:4406:490::ffff:ffff", + "network": "10.12.0.0/18", + "network_ipv6": "2001:660:4406:490::/64" }, "5": { "gateway": "10.12.127.254", - "network": "10.12.64.0/18" + "gateway_ipv6": "2001:660:4406:491::ffff:ffff", + "network": "10.12.64.0/18", + "network_ipv6": "2001:660:4406:491::/64" }, "6": { "gateway": "10.12.191.254", - "network": "10.12.128.0/18" + "gateway_ipv6": "2001:660:4406:492::ffff:ffff", + "network": "10.12.128.0/18", + "network_ipv6": "2001:660:4406:492::/64" }, "7": { "gateway": "10.12.255.254", - "network": "10.12.192.0/18" + "gateway_ipv6": "2001:660:4406:493::ffff:ffff", + "network": "10.12.192.0/18", + "network_ipv6": "2001:660:4406:493::/64" }, "8": { "gateway": "10.13.63.254", - "network": "10.13.0.0/18" + "gateway_ipv6": "2001:660:4406:494::ffff:ffff", + "network": "10.13.0.0/18", + "network_ipv6": "2001:660:4406:494::/64" }, "9": { "gateway": "10.13.127.254", - "network": "10.13.64.0/18" + "gateway_ipv6": "2001:660:4406:495::ffff:ffff", + "network": "10.13.64.0/18", + "network_ipv6": "2001:660:4406:495::/64" }, "default": { "gateway": "172.16.63.254", - "network": "172.16.48.0/20" + "gateway_ipv6": "2001:660:4406:400::ffff:ffff", + "network": "172.16.48.0/20", + "network_ipv6": "2001:660:4406:400::/64" } }, "latitude": 45.72971, diff --git a/data/grid5000/sites/nancy/nancy.json b/data/grid5000/sites/nancy/nancy.json index 0bba36f65ad7f43ce98ab585617685458a4de872..1b2ef3377bf2f5d2c9df40b882fc3e3bba4267c0 100644 --- a/data/grid5000/sites/nancy/nancy.json +++ b/data/grid5000/sites/nancy/nancy.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:580::/64" }, "14": { "gateway": "10.19.255.254", - "network": "10.19.192.0/18" + "gateway_ipv6": "2001:660:4406:5a0:500:0:ffff:ffff", + "network": "10.19.192.0/18", + "network_ipv6": "2001:660:4406:5a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:581::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:582::/64" }, "4": { "gateway": "10.16.63.254", - "network": "10.16.0.0/18" + "gateway_ipv6": "2001:660:4406:590::ffff:ffff", + "network": "10.16.0.0/18", + "network_ipv6": "2001:660:4406:590::/64" }, "5": { "gateway": "10.16.127.254", - "network": "10.16.64.0/18" + "gateway_ipv6": "2001:660:4406:591::ffff:ffff", + "network": "10.16.64.0/18", + "network_ipv6": "2001:660:4406:591::/64" }, "6": { "gateway": "10.16.191.254", - "network": "10.16.128.0/18" + "gateway_ipv6": "2001:660:4406:592::ffff:ffff", + "network": "10.16.128.0/18", + "network_ipv6": "2001:660:4406:592::/64" }, "7": { "gateway": "10.16.255.254", - "network": "10.16.192.0/18" + "gateway_ipv6": "2001:660:4406:593::ffff:ffff", + "network": "10.16.192.0/18", + "network_ipv6": "2001:660:4406:593::/64" }, "8": { "gateway": "10.17.63.254", - "network": "10.17.0.0/18" + "gateway_ipv6": "2001:660:4406:594::ffff:ffff", + "network": "10.17.0.0/18", + "network_ipv6": "2001:660:4406:594::/64" }, "9": { "gateway": "10.17.127.254", - "network": "10.17.64.0/18" + "gateway_ipv6": "2001:660:4406:595::ffff:ffff", + "network": "10.17.64.0/18", + "network_ipv6": "2001:660:4406:595::/64" }, "default": { "gateway": "172.16.79.254", - "network": "172.16.64.0/20" + "gateway_ipv6": "2001:660:4406:500::ffff:ffff", + "network": "172.16.64.0/20", + "network_ipv6": "2001:660:4406:500::/64" }, "topo": "1501..1601" }, diff --git a/data/grid5000/sites/nantes/nantes.json b/data/grid5000/sites/nantes/nantes.json index 11a83bcf38dd6eab52874894422760e4d8cb1aa3..d710b77404e4bef50edb0f4f9ff7bce02e485c17 100644 --- a/data/grid5000/sites/nantes/nantes.json +++ b/data/grid5000/sites/nantes/nantes.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:680::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:681::/64" }, "21": { "gateway": "10.47.255.254", - "network": "10.47.192.0/18" + "gateway_ipv6": "2001:660:4406:6a0:600:0:ffff:ffff", + "network": "10.47.192.0/18", + "network_ipv6": "2001:660:4406:6a0::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:682::/64" }, "4": { "gateway": "10.44.63.254", - "network": "10.44.0.0/18" + "gateway_ipv6": "2001:660:4406:690::ffff:ffff", + "network": "10.44.0.0/18", + "network_ipv6": "2001:660:4406:690::/64" }, "5": { "gateway": "10.44.127.254", - "network": "10.44.64.0/18" + "gateway_ipv6": "2001:660:4406:691::ffff:ffff", + "network": "10.44.64.0/18", + "network_ipv6": "2001:660:4406:691::/64" }, "6": { "gateway": "10.44.191.254", - "network": "10.44.128.0/18" + "gateway_ipv6": "2001:660:4406:692::ffff:ffff", + "network": "10.44.128.0/18", + "network_ipv6": "2001:660:4406:692::/64" }, "7": { "gateway": "10.44.255.254", - "network": "10.44.192.0/18" + "gateway_ipv6": "2001:660:4406:693::ffff:ffff", + "network": "10.44.192.0/18", + "network_ipv6": "2001:660:4406:693::/64" }, "8": { "gateway": "10.45.63.254", - "network": "10.45.0.0/18" + "gateway_ipv6": "2001:660:4406:694::ffff:ffff", + "network": "10.45.0.0/18", + "network_ipv6": "2001:660:4406:694::/64" }, "9": { "gateway": "10.45.127.254", - "network": "10.45.64.0/18" + "gateway_ipv6": "2001:660:4406:695::ffff:ffff", + "network": "10.45.64.0/18", + "network_ipv6": "2001:660:4406:695::/64" }, "default": { "gateway": "172.16.207.254", - "network": "172.16.192.0/20" + "gateway_ipv6": "2001:660:4406:600::ffff:ffff", + "network": "172.16.192.0/20", + "network_ipv6": "2001:660:4406:600::/64" } }, "latitude": 47.282332, diff --git a/data/grid5000/sites/rennes/rennes.json b/data/grid5000/sites/rennes/rennes.json index 2cfd346d62ddec17a17995c9f2230744f9b7dfce..2989fbcf59908f2c5121c9e00c70b1526868d248 100644 --- a/data/grid5000/sites/rennes/rennes.json +++ b/data/grid5000/sites/rennes/rennes.json @@ -16,47 +16,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:780::/64" }, "16": { "gateway": "10.27.255.254", - "network": "10.27.192.0/18" + "gateway_ipv6": "2001:660:4406:7a0:700:0:ffff:ffff", + "network": "10.27.192.0/18", + "network_ipv6": "2001:660:4406:7a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:781::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:782::/64" }, "4": { "gateway": "10.24.63.254", - "network": "10.24.0.0/18" + "gateway_ipv6": "2001:660:4406:790::ffff:ffff", + "network": "10.24.0.0/18", + "network_ipv6": "2001:660:4406:790::/64" }, "5": { "gateway": "10.24.127.254", - "network": "10.24.64.0/18" + "gateway_ipv6": "2001:660:4406:791::ffff:ffff", + "network": "10.24.64.0/18", + "network_ipv6": "2001:660:4406:791::/64" }, "6": { "gateway": "10.24.191.254", - "network": "10.24.128.0/18" + "gateway_ipv6": "2001:660:4406:792::ffff:ffff", + "network": "10.24.128.0/18", + "network_ipv6": "2001:660:4406:792::/64" }, "7": { "gateway": "10.24.255.254", - "network": "10.24.192.0/18" + "gateway_ipv6": "2001:660:4406:793::ffff:ffff", + "network": "10.24.192.0/18", + "network_ipv6": "2001:660:4406:793::/64" }, "8": { "gateway": "10.25.63.254", - "network": "10.25.0.0/18" + "gateway_ipv6": "2001:660:4406:794::ffff:ffff", + "network": "10.25.0.0/18", + "network_ipv6": "2001:660:4406:794::/64" }, "9": { "gateway": "10.25.127.254", - "network": "10.25.64.0/18" + "gateway_ipv6": "2001:660:4406:795::ffff:ffff", + "network": "10.25.64.0/18", + "network_ipv6": "2001:660:4406:795::/64" }, "default": { "gateway": "172.16.111.254", - "network": "172.16.96.0/20" + "gateway_ipv6": "2001:660:4406:700::ffff:ffff", + "network": "172.16.96.0/20", + "network_ipv6": "2001:660:4406:700::/64" } }, "latitude": 48.1, diff --git a/data/grid5000/sites/sophia/sophia.json b/data/grid5000/sites/sophia/sophia.json index 0bef1b64e56d6a1d63d1826c93d809e45e312e16..ee91978cef38292998a4fab24c7a1588dd53b8fc 100644 --- a/data/grid5000/sites/sophia/sophia.json +++ b/data/grid5000/sites/sophia/sophia.json @@ -17,47 +17,66 @@ "kavlans": { "1": { "gateway": "192.168.207.254", - "network": "192.168.192.0/20" + "network": "192.168.192.0/20", + "network_ipv6": "2001:660:4406:880::/64" }, "18": { "gateway": "10.35.255.254", - "network": "10.35.192.0/18" + "gateway_ipv6": "2001:660:4406:8a0:800:0:ffff:ffff", + "network": "10.35.192.0/18", + "network_ipv6": "2001:660:4406:8a0::/64" }, "2": { "gateway": "192.168.223.254", - "network": "192.168.208.0/20" + "network": "192.168.208.0/20", + "network_ipv6": "2001:660:4406:881::/64" }, "3": { "gateway": "192.168.239.254", - "network": "192.168.224.0/20" + "network": "192.168.224.0/20", + "network_ipv6": "2001:660:4406:882::/64" }, "4": { "gateway": "10.32.63.254", - "network": "10.32.0.0/18" + "gateway_ipv6": "2001:660:4406:890::ffff:ffff", + "network": "10.32.0.0/18", + "network_ipv6": "2001:660:4406:890::/64" }, "5": { "gateway": "10.32.127.254", - "network": "10.32.64.0/18" + "gateway_ipv6": "2001:660:4406:891::ffff:ffff", + "network": "10.32.64.0/18", + "network_ipv6": "2001:660:4406:891::/64" }, "6": { "gateway": "10.32.191.254", - "network": "10.32.128.0/18" + "gateway_ipv6": "2001:660:4406:892::ffff:ffff", + "network": "10.32.128.0/18", + "network_ipv6": "2001:660:4406:892::/64" }, "7": { "gateway": "10.32.255.254", - "network": "10.32.192.0/18" + "gateway_ipv6": "2001:660:4406:893::ffff:ffff", + "network": "10.32.192.0/18", + "network_ipv6": "2001:660:4406:893::/64" }, "8": { "gateway": "10.33.63.254", - "network": "10.33.0.0/18" + "gateway_ipv6": "2001:660:4406:894::ffff:ffff", + "network": "10.33.0.0/18", + "network_ipv6": "2001:660:4406:894::/64" }, "9": { "gateway": "10.33.127.254", - "network": "10.33.64.0/18" + "gateway_ipv6": "2001:660:4406:895::ffff:ffff", + "network": "10.33.64.0/18", + "network_ipv6": "2001:660:4406:895::/64" }, "default": { "gateway": "172.16.143.254", - "network": "172.16.128.0/20" + "gateway_ipv6": "2001:660:4406:800::ffff:ffff", + "network": "172.16.128.0/20", + "network_ipv6": "2001:660:4406:800::/64" } }, "latitude": 43.6161, diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb index 23a9a229b6b5e22b9c4e798c9c25c01abb8ee603..9c55d075e5f5d0476cda705d3082eab617df8d11 100644 --- a/lib/refrepo/input_loader.rb +++ b/lib/refrepo/input_loader.rb @@ -183,6 +183,44 @@ end def add_kavlan_ipv6s(h) global_vlan_site = {} h['ipv6']['site_global_kavlans'].each { |key, value| global_vlan_site[value] = key } + # Set kavlan ipv6 informations at site level + h['sites'].each_pair do |site_uid, hs| + site_prefix = IPAddress hs['ipv6']['prefix'] + kavlan_ids = h['vlans']['base'].map{ |k,v| k if v["type"] =~ /local|routed/ }.compact + [h['ipv6']['site_global_kavlans'][site_uid]] + kavlan_ids.each do |kvl_id| + kavlan_prefix = IPAddress site_prefix.to_string + kavlan_prefix.prefix = 64 + case kvl_id + when 1..3 # local non-routed + kavlan_prefix[3] |= (kvl_id + 0x80 - 1) + has_gateway = false + when 4..9 # local routed + kavlan_prefix[3] |= (kvl_id + 0x90 - 4) + has_gateway = true + else # global + kavlan_prefix[3] |= 0xA0 + has_gateway = true + end + hs['kavlans'][kvl_id]['network_ipv6'] = kavlan_prefix.to_string + if has_gateway + gateway = IPAddress kavlan_prefix.to_string + if kvl_id > 9 # global kavlan gateway encodes site at an additional place + gateway[4] = h['ipv6']['site_indexes'][site_uid] << 8 + end + gateway[6] = 0xFFFF + gateway[7] = 0xFFFF + hs['kavlans'][kvl_id]['gateway_ipv6'] = gateway.compressed + end + end + prod_prefix = IPAddress site_prefix.to_string + prod_prefix.prefix = 64 + gateway = IPAddress prod_prefix.to_string + gateway[6] = 0xFFFF + gateway[7] = 0xFFFF + hs['kavlans']['default']['network_ipv6'] = prod_prefix.to_string + hs['kavlans']['default']['gateway_ipv6'] = gateway.compressed + end + # Set kavlan ipv6 informations at node level h['sites'].each_pair do |site_uid, hs| hs['clusters'].each_pair do |_cluster_uid, hc| next if !hc['kavlan'] # skip clusters where kavlan is globally set to false (used for initial cluster installation) @@ -201,16 +239,11 @@ def add_kavlan_ipv6s(h) hn['kavlan6'][iface] = {} hn['kavlan'][iface].each_key do |kvl| kvl_id = kvl.split('-')[1].to_i - ip6 = IPAddress hs['ipv6']['prefix'] - case kvl_id - when 1..3 # local non-routed - ip6[3] |= (kvl_id + 0x80 - 1) - when 4..9 # local routed - ip6[3] |= (kvl_id + 0x90 - 4) - else # global + if kvl_id <= 9 + ip6 = IPAddress hs['kavlans'][kvl_id]['network_ipv6'] + else # The prefix is based on the site of the global kavlan, not the site of the node - ip6[3] = h['ipv6']['site_indexes'][global_vlan_site[kvl_id]] << 8 - ip6[3] |= 0xA0 + ip6 = IPAddress h['sites'][global_vlan_site[kvl_id]]['kavlans'][kvl_id]['network_ipv6'] # global kavlan: set most signicant octet of interface part to site index ip6[4] = h['ipv6']['site_indexes'][site_uid] << 8 end diff --git a/lib/refrepo/valid/input/schemas/schema-site.yaml b/lib/refrepo/valid/input/schemas/schema-site.yaml index 2cafc7c077fd6e216b33c6d639c774a0b257336a..75ca7cc088dfdcc2ebd30d1cbc01dfbaab7c14e8 100644 --- a/lib/refrepo/valid/input/schemas/schema-site.yaml +++ b/lib/refrepo/valid/input/schemas/schema-site.yaml @@ -67,6 +67,8 @@ kavlans: <multi>: network: string gateway: string + network_ipv6: string + gateway_ipv6: optional_string kavlan_ip_range: string kavlan_topo: optional_string kavlan_nef: optional_integer