forked from kay/RouterOS
Neuer optionaler Schritt im Einrichten-Wizard, standardmäßig übersprungen (Toggle): legt ein VLAN-Interface auf einem gewählten Basis-Anschluss an, mit eigenem IP-Bereich und eigenem DHCP-Server — z.B. für Gäste/IoT. Bewusst ohne Port-Zuweisung (Access/Trunk): das bräuchte RouterOS Bridge-VLAN-Filtering mit "set"-Operationen auf bestehende Einträge, die unser bisheriges reines "add"-Befehlsmodell (identisch für REST+SSH) nicht abdeckt. Wer ein VLAN auf einem bestimmten Switch-Port braucht, muss den Trunk weiterhin manuell einrichten. Entscheidung mit Nutzer abgestimmt. DHCP-Befehlsbau (Adresse+Pool+Server+Netzwerk) aus dem LAN-Schritt in DhcpServerCommandBuilder extrahiert, da jetzt zweimal identisch gebraucht (LAN direkt, VLAN pro Eintrag). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
28 lines
1.0 KiB
Swift
28 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
struct LanDhcpConfig: Equatable {
|
|
var interfaceName: String = "bridge"
|
|
var networkAddress: String = "192.168.88.0/24"
|
|
var routerAddress: String = "192.168.88.1/24"
|
|
var poolRangeStart: String = "192.168.88.10"
|
|
var poolRangeEnd: String = "192.168.88.254"
|
|
var leaseTimeHours: Int = 24
|
|
var dnsServers: String = "192.168.88.1"
|
|
|
|
/// RouterOS commands for this LAN/DHCP setup. Standard, long-stable RouterOS CLI syntax —
|
|
/// not yet verified against a live device; the Review-step shows every command before
|
|
/// it runs so this can be caught before anything is applied.
|
|
func buildCommands() -> [RouterOSCommand] {
|
|
DhcpServerCommandBuilder.buildCommands(
|
|
interfaceName: interfaceName,
|
|
routerAddress: routerAddress,
|
|
networkAddress: networkAddress,
|
|
poolRangeStart: poolRangeStart,
|
|
poolRangeEnd: poolRangeEnd,
|
|
leaseTimeHours: leaseTimeHours,
|
|
dnsServers: dnsServers,
|
|
context: "auf \(interfaceName)"
|
|
)
|
|
}
|
|
}
|