Hi Tom, Tom Smyth wrote on Thu, Sep 04, 2025 at 08:17:04PM +0100:
> sometimes in my router configs I would like to be able to declare > a macro in one location and refer to it across multiple files, > for instance a loopback address might be refered to in BGP, OSPF > and IPSEC and PF configuration, > > is there a way in OpenBSD of configuring aliases / variables like > that and then using them in config files where they would be > expanded / understood by the parser of the config file ... I don't think there is a method that is going to work with absolutely all config files one might come up with - but many of the daemons you mention are based on parse.y, hence they have reasonably similar configuration syntax, and many of them support the "include" directive: $ man -s 5 -k Ic=include acme-client.conf(5) - acme-client configuration file bgpd.conf(5) - BGP routing daemon configuration file eigrpd.conf(5) - EIGRP routing daemon configuration file hostapd.conf(5) - configuration file for the Host Access Point daemon httpd.conf(5) - HTTP daemon configuration file iked.conf(5) - IKEv2 configuration file ipsec.conf(5) - IPsec configuration file iscsi.conf(5) - ISCSI daemon configuration file ldapd.conf(5) - LDAP daemon configuration file ldpd.conf(5) - LDP routing daemon configuration file man.conf(5) - configuration file for man ospf6d.conf(5) - OSPF for IPv6 routing daemon configuration file ospfd.conf(5) - OSPF routing daemon configuration file pf.conf(5) - packet filter configuration file rad.conf(5) - router advertisement daemon configuration file relayd.conf(5) - relay daemon configuration file smtpd.conf(5) - SMTP daemon configuration file snmpd.conf(5) - SNMP daemon configuration file unwind.conf(5) - validating DNS resolver configuration file vm.conf(5) - virtual machine configuration So you *might* get away with putting *some* macros into *one* configuration file that you #include from configuration files for *some* different daemons - provided that you carefully study the documentation about which configuration file supports exactly what, be careful to not put stuff into the common file that makes any of the including daemons choke, and carefully test every daemon after every change. Disclaimer 1: as usual with apropos(1), do not take the above list at face value - instead, actually RTFM. For example, man.conf(5) supports an "includes" directive with a very different syntax that does soemthing very different but also matches the search expression "Ic=include". Disclaimer 2: i never did this myself, but i see no reason why it shouldn't work. > or am I asking for too much and just script the changes through > in config generators (which is what I do presently ? That's not completely unreasonable either; i did such things in the past when i had multiple firewalls separating various network segments and wanted conistent config files across more than one machine. Yours, Ingo

