# AutoNAS Network Interface Rules - Detects when network interfaces come online # This is the primary mechanism for handling interface stability (not polling) # Trigger when network interfaces are added/removed ACTION=="add", SUBSYSTEM=="net", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_up %k" ACTION=="remove", SUBSYSTEM=="net", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_down %k" # Trigger on interface operational state changes (most important for USB/Thunderbolt) ACTION=="change", SUBSYSTEM=="net", ATTR{operstate}=="up", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_change %k up" ACTION=="change", SUBSYSTEM=="net", ATTR{operstate}=="down", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_change %k down" # Additional triggers for carrier state (link up/down) ACTION=="change", SUBSYSTEM=="net", ATTR{carrier}=="1", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_change %k carrier_up" ACTION=="change", SUBSYSTEM=="net", ATTR{carrier}=="0", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh interface_change %k carrier_down" # Special handling for USB network interfaces (common with Thunderbolt/USB-C docks) ACTION=="add", SUBSYSTEM=="net", ENV{ID_BUS}=="usb", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh usb_interface_up %k" ACTION=="remove", SUBSYSTEM=="net", ENV{ID_BUS}=="usb", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh usb_interface_down %k" # Handle Thunderbolt interfaces specifically ACTION=="add", SUBSYSTEM=="net", DRIVERS=="thunderbolt", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh usb_interface_up %k" ACTION=="remove", SUBSYSTEM=="net", DRIVERS=="thunderbolt", RUN+="/usr/local/lib/xdev/autonas/autonas-network-handler.sh usb_interface_down %k"