import "network/os/*.pp" class network { } # configure an interface with the given options # $parameters are platform dependent extras define network::interface ( $address, $netmask, $broadcast = "NONE", $parameters = "" ) { case $operatingsystem { OpenBSD: { network::interface::openbsd { $name: address => $address, netmask => $netmask, broadcast => $broadcast, parameters => $parameters, } } Debian: { network::interface::debian { $name: address => $address, netmask => $netmask, broadcast => $broadcast, parameters => $parameters, } } Ubuntu: { network::interface::debian { $name: address => $address, netmask => $netmask, broadcast => $broadcast, parameters => $parameters, } } default: { err("Network interface configuration not supported in $operatingsystem") } } } # configure a tagged vlan on the given interface define network::vlan ( $vtag, $device, $address, $netmask, $broadcast = "NONE", $parameters = "" ) { case $operatingsystem { OpenBSD: { network::interface { $name: address => $address, netmask => $netmask, broadcast => $broadcast, parameters => "vlan $vtag vlandev $device $parameters" } } default: { err("VLANs not supported in $operatingsystem") } } }