def show_network_interfaces(options): for dev in netdevice.dev_base_list(): dev_addr = "Not available" if (dev.dev_addr != 0): dev_addr = ("%02x:%02x:%02x:%02x:%02x:%02x" % (dev.dev_addr[0], dev.dev_addr[1], dev.dev_addr[2], dev.dev_addr[3], dev.dev_addr[4], dev.dev_addr[5])) netdev_ops = dev.netdev_ops netdev_ops_str = addr2sym(netdev_ops) driver_module = "" crashout = exec_crash_command("sym %s" % (netdev_ops_str)) driver_module = crashout.split()[-1] if (driver_module[0] != "["): driver_module = "<built-in>" print("0x%016x : %s (%s) managed by " % (dev, dev.name, dev_addr), end='') crashcolor.set_color(crashcolor.BLUE) print("%s" % driver_module) crashcolor.set_color(crashcolor.RESET) if (options.network_details): print("\tnetdev_ops = %s (0x%x)" % (netdev_ops_str, netdev_ops)) master_name = "" if (member_offset("struct net_device", "master") >= 0): if (dev.master != 0): master_name = dev.master.name else: master_name = "Not available" print("\tMTU: %d, Master = <%s>" % (dev.mtu, master_name)) print("\tIRQ: %d, num_tx_queues = %d, real_num_tx_queues = %d" % (dev.irq, dev.num_tx_queues, dev.real_num_tx_queues))
def IF_Summarize(quiet=False): if (quiet): return print("Interfaces Info") print("---------------") dev_base_list = netdevice.dev_base_list() print(" How long ago (in seconds) interfaces transmitted/received?") print("\t Name RX TX") print("\t ---- ---------- ---------") jiffies = readSymbol("jiffies") for dev in dev_base_list: try: last_rx = __j_delay(dev.last_rx, jiffies) except KeyError: last_rx = "n/a" if (dev.hasField("_tx")): trans_start = dev._tx.trans_start else: trans_start = dev.trans_start trans_start = __j_delay(trans_start, jiffies) print("\t%8s %s %s" % (dev.name, last_rx, trans_start)) print("\n\n")
def print_iface(if1="", details=False): for dev in netdevice.dev_base_list(): if (if1 == "" or if1 == dev.name): netdevice.print_If(dev, details)