lib/rethtool/interface_settings.rb in rethtool-0.0.5 vs lib/rethtool/interface_settings.rb in rethtool-0.0.6
- old
+ new
@@ -37,13 +37,24 @@
# interface you want to get the settings for.
def initialize(interface)
@interface = interface
cmd = Rethtool::EthtoolCmd.new
cmd.cmd = Rethtool::ETHTOOL_CMD_GSET
-
@data = Rethtool.ioctl(interface, cmd)
+
+ @driver_info = Rethtool::DriverSettings.new(interface)
end
+
+ # Returns a string with the value of the interface driver (kernel module).
+ def driver
+ @driver_info.driver
+ end
+
+ # Returns a string with the bus information of the interface.
+ def bus_info
+ @driver_info.bus_info
+ end
# Return an array of the modes supported by the interface. Returns an
# array of Mode objects.
def supported_modes
modes(@data.supported)
@@ -126,13 +137,27 @@
1 << 12 => Mode.new(10000, :full, 'T'),
1 << 15 => Mode.new(2500, :full, 'X'),
1 << 17 => Mode.new(1000, :full, 'KX'),
1 << 18 => Mode.new(10000, :full, 'KX4'),
1 << 19 => Mode.new(10000, :full, 'KR'),
- 1 << 20 => Mode.new(10000, :fec, 'R')
+ 1 << 20 => Mode.new(10000, :fec, 'R'),
+ 1 << 21 => Mode.new(20000, :full, 'MLD2'),
+ 1 << 22 => Mode.new(20000, :full, 'KR2'),
+ 1 << 23 => Mode.new(40000, :full, 'KR4'),
+ 1 << 24 => Mode.new(40000, :full, 'CR4'),
+ 1 << 25 => Mode.new(40000, :full, 'SR4'),
+ 1 << 26 => Mode.new(40000, :full, 'LR4'),
+ 1 << 27 => Mode.new(56000, :full, 'KR4'),
+ 1 << 28 => Mode.new(56000, :full, 'CR4'),
+ 1 << 29 => Mode.new(56000, :full, 'SR4'),
+ 1 << 30 => Mode.new(56000, :full, 'LR4'),
}
# Turn a uint32 of bits into a list of supported modes. Sigh.
def modes(data)
PossibleModes.find_all { |m| (m[0] & data) > 0 }.map { |m| m[1] }
end
+
+ def as_str(str)
+ str.pack('c*').delete("\000")
+ end
end