summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom May <thom@may.lt>2015-06-06 17:31:08 +0200
committerThom May <thom@may.lt>2015-06-10 12:12:55 +0100
commitd6742cf75f5c4eafe788f504b86dc2d120d04b3f (patch)
tree96f9d09addd5bf4f925ad9a7d41e7cd0c5b038bf
parentfd2a7bc02962b8151ece8fc7257d36a292feb973 (diff)
downloadohai-tm/solaris_mac.tar.gz
Update list of solaris ethernet driverstm/solaris_mac
Closes #549
-rw-r--r--lib/ohai/plugins/solaris2/network.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/ohai/plugins/solaris2/network.rb b/lib/ohai/plugins/solaris2/network.rb
index 7e4e445b..63fa6a28 100644
--- a/lib/ohai/plugins/solaris2/network.rb
+++ b/lib/ohai/plugins/solaris2/network.rb
@@ -53,13 +53,19 @@
# srcof qfe1
# inet6 fe80::203:baff:fe17:4444/128
+# Extracted from http://illumos.org/hcl/
+ETHERNET_ENCAPS = %w{ afe amd8111s arn atge ath bfe bge bnx bnxe ce cxgbe
+ dmfe e1000g efe elxl emlxs eri hermon hme hxge igb
+ iprb ipw iwh iwi iwk iwp ixgb ixgbe mwl mxfe myri10ge
+ nge ntxn nxge pcn platform qfe qlc ral rge rtls rtw rwd
+ rwn sfe tavor vr wpi xge yge}
+
Ohai.plugin(:Network) do
provides "network", "network/interfaces"
provides "counters/network", "counters/network/interfaces"
def solaris_encaps_lookup(ifname)
- return "Ethernet" if ifname.eql?("e1000g")
- return "Ethernet" if ifname.eql?("eri")
+ return "Ethernet" if ETHERNET_ENCAPS.include?(ifname)
return "Ethernet" if ifname.eql?("net")
return "Loopback" if ifname.eql?("lo")
"Unknown"
@@ -117,9 +123,11 @@ Ohai.plugin(:Network) do
end
end
+ # Device IP Address Mask Flags Phys Addr
+ # bge1 172.16.0.129 255.255.255.255 SPLA 00:03:ba:xx:xx:xx
so = shell_out("arp -an")
so.stdout.lines do |line|
- if line =~ /([0-9a-zA-Z]+)\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\w+)\s+([a-zA-Z0-9\.\:\-]+)/
+ if line =~ /([0-9a-zA-Z]+)\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\w+)?\s+([a-zA-Z0-9\.\:\-]+)/
next unless iface[arpname_to_ifname(iface, $1)] # this should never happen, except on solaris because sun hates you.
iface[arpname_to_ifname(iface, $1)][:arp] = Mash.new unless iface[arpname_to_ifname(iface, $1)][:arp]
iface[arpname_to_ifname(iface, $1)][:arp][$2] = $5