docs: def callback(msg, has_printed):
      """Callback function called by libnl upon receiving messages from the kernel.
  
      Positional arguments:
      msg -- nl_msg class instance containing the data sent by the kernel.
      has_printed -- simple pseudo boolean (if list is empty) to keep track of when to print emtpy lines.
  
      Returns:
      An integer, value of NL_SKIP. It tells libnl to stop calling other callbacks for this message and proceed with
      processing the next kernel message.
      """
      table = AsciiTable([['Data Type', 'Data Value']])
      # First convert `msg` into something more manageable.
      gnlh = genlmsghdr(nlmsg_data(nlmsg_hdr(msg)))
  
      # Partially parse the raw binary data and place them in the `tb` dictionary.
      tb = dict((i, None) for i in range(nl80211.NL80211_ATTR_MAX + 1))  # Need to populate dict with all possible keys.
      nla_parse(tb, nl80211.NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), None)
  
      # Now it's time to grab the juicy data!
      if tb[nl80211.NL80211_ATTR_IFNAME]:
          table.title = nla_get_string(tb[nl80211.NL80211_ATTR_IFNAME]).decode('ascii')
      else:
          table.title = 'Unnamed Interface'
  
      if tb[nl80211.NL80211_ATTR_WIPHY]:
          wiphy_num = nla_get_u32(tb[nl80211.NL80211_ATTR_WIPHY])
          wiphy = ('wiphy {0}' if OPTIONS['<interface>'] else 'phy#{0}').format(wiphy_num)
          table.table_data.append(['NL80211_ATTR_WIPHY', wiphy])
  
      if tb[nl80211.NL80211_ATTR_MAC]:
          mac_address = ':'.join(format(x, '02x') for x in nla_data(tb[nl80211.NL80211_ATTR_MAC])[:6])
          table.table_data.append(['NL80211_ATTR_MAC', mac_address])
  
      if tb[nl80211.NL80211_ATTR_IFINDEX]:
          table.table_data.append(['NL80211_ATTR_IFINDEX', str(nla_get_u32(tb[nl80211.NL80211_ATTR_IFINDEX]))])
  
      # Print all data.
      if has_printed:
          print()
      else:
          has_printed.append(True)
      print(table.table)
      return NL_SKIP