autoNAS / config / 98-autonas-interfaces.rules
1 contributor
27 lines | 1.868kb
# 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"