in src/logic/Packer.js [109:130]
findEmptyRanges(space, firstFreeIpDec) {
const startIp = IPUtils.netStart(IPUtils.dotToDec(space.net), space.mask);
const endIp = IPUtils.netEnd(startIp, space.mask);
const maxIp = startIp + (endIp - firstFreeIpDec);
const freeNets = [];
let currentIp = startIp;
for (let mask = space.mask; mask < 32; mask ++ ) {
const subnet = {
mask: mask,
};
const fit = this.fit(currentIp, maxIp, subnet);
if (fit.fit) {
freeNets.unshift({
mask: mask,
netStart: endIp - fit.end +startIp,
netEnd: endIp - currentIp +startIp,
});
currentIp = fit.end + 1;
}
}
return freeNets;
}