/// <summary> /// Create vlans for a vif. /// </summary> /// <returns>The vlans.</returns> /// <param name="ipv4Addresses">Ipv4 addresses.</param> protected internal virtual List <Vlan> CreateVlans(AttachmentRole role, List <Ipv4AddressAndMask> ipv4Addresses) { if (role.IsLayer3Role) { if (ipv4Addresses.Count != this._interfaces.Count) { throw new AttachmentDomainException($"Insufficient IPv4 addresses provided to create vlans for a new vif for attachment '{this.Name}'. " + $"{ipv4Addresses.Count} were supplied but {this._interfaces.Count} are required."); } } var vlans = new List <Vlan>(); foreach (var @interface in this._interfaces) { var vlan = new Vlan(); if (role.IsLayer3Role) { var ipv4Address = ipv4Addresses.First(); vlan.SetIpv4Address(ipv4Address); ipv4Addresses.Remove(ipv4Address); } @interface.AddVlan(vlan); vlans.Add(vlan); } return(vlans); }
/// <summary> /// Add a vlan. /// </summary> /// <param name="vlan">Vlan.</param> public void AddVlan(Vlan vlan) => _vlans.Add(vlan);