diff --git a/startup.script_linux b/startup.script_linux index d42de66..5e778d9 100644 --- a/startup.script_linux +++ b/startup.script_linux @@ -14,42 +14,42 @@ iocLogInit errlog "starting EPICS $(EPICS) at $(IOC_STARTTIME)" # Set up CA search lists for different networks - -# Office (only officicial EPICS subnets, not SLS beamlines!) -epicsEnvSet CA_129.129.130,"129.129.131.255 129.129.137.255" -epicsEnvSet CA_129.129.131,"129.129.130.255 129.129.137.255" -epicsEnvSet CA_129.129.137,"129.129.130.255 129.129.131.255" - -# OSFA (SF machine networks) -# with directed broadcasts -epicsEnvSet CA_172.26,"172.26.0.255 172.26.2.255 172.26.8.255 172.26.16.255 172.26.24.255 172.26.32.255 172.26.40.255 172.26.110.255 172.26.111.255 172.26.120.255 129.129.242.255 129.129.243.255" -epicsEnvSet CA_AUTO_172.26,"NO" -# SwissFEL end stations to machine via gateway -epicsEnvSet CA_129.129.242,"sf-saresc-cagw:5062" -epicsEnvSet CA_129.129.243,"sf-saresc-cagw:5062" -epicsEnvSet CA_129.129.244,"sf-saresc-cagw:5062" -epicsEnvSet CA_129.129.245,"sf-satesd-cagw:5062" -epicsEnvSet CA_129.129.246,"sf-satese-cagw:5062" -epicsEnvSet CA_129.129.247,"sf-satesf-cagw:5062" - -# HIPA -epicsEnvSet CA_172.19,"172.19.10.255 172.19.30.255" -epicsEnvSet CA_AUTO_172.19,"NO" - -# PROSCAN -epicsEnvSet CA_172.25,"172.25.60.255 172.25.11.255" -epicsEnvSet CA_AUTO_172.25,"NO" - -# All others can work with the defaults: automatic - -# Apply settings dependent on network -system "/sbin/ifconfig `/sbin/route -n|awk '/^0.0.0.0/{print $8}'`|awk -F '[.: ]+' -vP=epicsEnvSet -vN=NET '/Bcast/{print P,N 1,$9ORS P,N 2,$10ORS P,N 3,$11}/broadcast/{print P,N 1,$13ORS P,N 2,$14ORS P,N 3,$15}'>/tmp/$(IOC).net" +system "/sbin/ifconfig `/sbin/route -n|awk '/^0.0.0.0/{print $8;exit}'`|awk -F '[: ]+' -vP=epicsEnvSet -vI=IP_ADDR '/Bcast/{print P,I,$4} /broadcast/{print P,I,$3}'>/tmp/$(IOC).net" < /tmp/$(IOC).net system "rm /tmp/$(IOC).net" -epicsEnvSet EPICS_CA_ADDR_LIST,"$(CA_$(NET1=).$(NET2=).$(NET3=)=$(CA_$(NET1=).$(NET2=)=))" -epicsEnvSet EPICS_CA_AUTO_ADDR_LIST,"$(CA_AUTO_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_$(NET1=).$(NET2=)=YES))" -epicsEnvSet EPICS_CAS_BEACON_ADDR_LIST,"$(CA_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_BEACON_$(NET1=).$(NET2=)=$(EPICS_CA_ADDR_LIST)))" -epicsEnvSet EPICS_CAS_AUTO_BEACON_ADDR_LIST,"$(CA_AUTO_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_BEACON_$(NET1=).$(NET2=)=$(EPICS_CA_AUTO_ADDR_LIST)))" + +# Default: automatic +epicsEnvSet EPICS_CA_AUTO_ADDR_LIST YES + +# Office (only officicial EPICS subnets, not SLS beamlines!) +ifEnvSet $(IP_ADDR) ~129.129.130.* EPICS_CA_ADDR_LIST "129.129.131.255 129.129.137.255" +ifEnvSet $(IP_ADDR) ~129.129.131.* EPICS_CA_ADDR_LIST "129.129.130.255 129.129.137.255" +ifEnvSet $(IP_ADDR) ~129.129.137.* EPICS_CA_ADDR_LIST "129.129.130.255 129.129.131.255" + +# SwissFEL machine networks +# with directed broadcasts +ifEnvSet $(IP_ADDR) ~172.26.* EPICS_CA_ADDR_LIST "172.26.0.255 172.26.2.255 172.26.8.255 172.26.16.255 172.26.24.255 172.26.32.255 172.26.40.255 172.26.110.255 172.26.111.255 172.26.120.255 129.129.242.255 129.129.243.255" +ifEnvSet $(IP_ADDR) ~172.26.* EPICS_CA_AUTO_ADDR_LIST "NO" + +# SwissFEL end stations to machine via gateway +ifEnvSet $(IP_ADDR) ~129.129.242.* EPICS_CA_ADDR_LIST sf-saresa-cagw:5062 +ifEnvSet $(IP_ADDR) ~129.129.243.* EPICS_CA_ADDR_LIST sf-saresb-cagw:5062 +ifEnvSet $(IP_ADDR) ~129.129.244.* EPICS_CA_ADDR_LIST sf-saresc-cagw:5062 +ifEnvSet $(IP_ADDR) ~129.129.245.* EPICS_CA_ADDR_LIST sf-satesd-cagw:5062 +ifEnvSet $(IP_ADDR) ~129.129.246.* EPICS_CA_ADDR_LIST sf-satese-cagw:5062 +ifEnvSet $(IP_ADDR) ~129.129.247.* EPICS_CA_ADDR_LIST sf-satesf-cagw:5062 + +# HIPA +ifEnvSet $(IP_ADDR) ~172.19.* EPICS_CA_ADDR_LIST "172.19.10.255 172.19.30.255" +ifEnvSet $(IP_ADDR) ~172.19.* EPICS_CA_AUTO_ADDR_LIST NO + +# PROSCAN +ifEnvSet $(IP_ADDR) ~172.25.* EPICS_CA_ADDR_LIST "172.25.60.255 172.25.11.255" +ifEnvSet $(IP_ADDR) ~172.25.* EPICS_CA_AUTO_ADDR_LIST NO + +# Default beacons +ifEnvSet $(EPICS_CAS_BEACON_ADDR_LIST) ~* EPICS_CAS_BEACON_ADDR_LIST "$(EPICS_CA_ADDR_LIST=)" +ifEnvSet $(EPICS_CAS_AUTO_BEACON_ADDR_LIST) ~* EPICS_CAS_AUTO_BEACON_ADDR_LIST "$(EPICS_CA_AUTO_ADDR_LIST)" # set some search paths epicsEnvSet EPICS_DRIVER_PATH "bin/R$(EPICS_RELEASE)_$(EPICS_HOST_ARCH):bin:snl:$(EPICS_MODULES=/ioc/modules)"