mirror of https://github.com/apache/cloudstack.git
52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
|
|
// Parsing CIDR into Gateway,Netmask Placeholders
|
|
|
|
export function getNetmaskFromCidr (cidr) {
|
|
if (!cidr?.includes('/')) return undefined
|
|
const [, maskBits] = cidr.split('/')
|
|
const subnetMasks = {
|
|
8: '255.0.0.0',
|
|
9: '255.128.0.0',
|
|
10: '255.192.0.0',
|
|
11: '255.224.0.0',
|
|
12: '255.240.0.0',
|
|
13: '255.248.0.0',
|
|
14: '255.252.0.0',
|
|
15: '255.254.0.0',
|
|
16: '255.255.0.0',
|
|
17: '255.255.128.0',
|
|
18: '255.255.192.0',
|
|
19: '255.255.224.0',
|
|
20: '255.255.240.0',
|
|
21: '255.255.248.0',
|
|
22: '255.255.252.0',
|
|
23: '255.255.254.0',
|
|
24: '255.255.255.0',
|
|
25: '255.255.255.128',
|
|
26: '255.255.255.192',
|
|
27: '255.255.255.224',
|
|
28: '255.255.255.240',
|
|
29: '255.255.255.248',
|
|
30: '255.255.255.252',
|
|
31: '255.255.255.254',
|
|
32: '255.255.255.255'
|
|
}
|
|
return subnetMasks[+maskBits] || '255.255.255.0'
|
|
}
|