complete -c ethtool -xa '(__fish_print_interfaces)'

complete -c ethtool -s h -l help -d 'Shows help message'
complete -c ethtool -l version -d 'Shows ethtool version'
complete -c ethtool -l debug -x -d 'Turns on debugging messages'
complete -c ethtool -l json -d 'Output results in JSON'
complete -c ethtool -s I -l include-statistics -d 'Include statistics in output'
complete -c ethtool -s a -l show-pause -d 'Shows pause parameters'
complete -c ethtool -s A -l pause -d 'Changes pause parameters'
complete -c ethtool -s c -l show-coalesce -d 'Shows coalescing information'
complete -c ethtool -s C -l coalesce -d 'Changes coalescing settings'
complete -c ethtool -s g -l show-ring -d 'Shows rx/tx ring parameters'
complete -c ethtool -s G -l set-ring -d 'Changes rx/tx ring parameters'
complete -c ethtool -s i -l driver -d 'Shows associated driver information'
complete -c ethtool -s d -l register-dump -d 'Prints a register dump'
complete -c ethtool -s e -l eeprom-dump -d 'Prints an EEPROM dump'
complete -c ethtool -s E -l change-eeprom -d 'Changes EEPROM byte'
complete -c ethtool -s k -l show-features -l show-offload -d 'Shows state of protocol offload and features'
complete -c ethtool -s K -l features -l offload -d 'Changes offload parameters and features'
complete -c ethtool -s p -l identify -d 'Initiate identify action (blinking)'
complete -c ethtool -s P -l show-permaddr -d 'Shows permanent hardware address'
complete -c ethtool -s r -l negotiate -d 'Restarts auto-negotiation'
complete -c ethtool -s S -l statistics -d 'Shows statistics'
complete -c ethtool -l phy-statistics -d 'Shows PHY specific statistics'
complete -c ethtool -s t -l test -d 'Executes adapter selftest'
complete -c ethtool -s s -l change -d 'Changes settings'
complete -c ethtool -s n -s u -l show-nfc -l show-ntuple -d 'Shows rx flow classification options or rules'
complete -c ethtool -s N -s U -l config-nfc -l config-ntuple -d 'Sets rx flow classification options or rules'
complete -c ethtool -s w -l get-dump -d 'Prints firmware dump'
complete -c ethtool -s W -l set-dump -d 'Sets dump flag'
complete -c ethtool -s T -l show-time-stamping -d 'Show time stamping capabilities and PTP hardware clock'
complete -c ethtool -s x -l show-rxfh-indir -l show-rxfh -d 'Shows rx flow hash indirection table / RSS hash key'
complete -c ethtool -s X -l set-rxfh-indir -l rxfh -d 'Configures rx flow hash indirection table / RSS hash key'
complete -c ethtool -s f -l flash -d 'Write a firmware image'
complete -c ethtool -s l -l show-channels -d 'Shows numbers of channels'
complete -c ethtool -s L -l set-channels -d 'Changes the numbers of channels'
complete -c ethtool -s m -l dump-module-eeprom -l module-info -d 'Shows EEPROM from plugin modules'
complete -c ethtool -l show-priv-flags -d 'Shows private flags'
complete -c ethtool -l set-priv-flags -d 'Sets private flags'
complete -c ethtool -l show-eee -d 'Shows support of Energy-Efficient Ethernet'
complete -c ethtool -l set-eee -d 'Sets EEE behaviour'
complete -c ethtool -l set-phy-tunable -d 'Sets PHY tunable parameters'
complete -c ethtool -l get-phy-tunable -d 'Gets PHY tunable parameters'
complete -c ethtool -l get-tunable -d 'Get tunable parameters'
complete -c ethtool -l set-tunable -d 'Set tunable parameters'
complete -c ethtool -l reset -d 'Reset hardware components'
complete -c ethtool -l show-fec -d 'Shows support of Forward Error Correction'
complete -c ethtool -l set-fec -d 'Configures Forward Error Correction'
complete -c ethtool -s Q -l per-queue -d 'Applies provided sub command to specific queues'
complete -c ethtool -l cable-test -d 'Perform a cable test and report results'
complete -c ethtool -l cable-test-tdr -d 'Perform a cable test and report raw Time Domain Reflectometer data'
complete -c ethtool -l monitor -d 'Listens to netlink notification and displays them'
complete -c ethtool -l show-tunnels -d 'Show tunnel-related capabilities and state'
