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