code: func (h *Handle) LinkList() ([]Link, error) {
  	// NOTE(vish): This duplicates functionality in net/iface_linux.go, but we need
  	//             to get the message ourselves to parse link type.
  	req := h.newNetlinkRequest(unix.RTM_GETLINK, unix.NLM_F_DUMP)
  
  	msg := nl.NewIfInfomsg(unix.AF_UNSPEC)
  	req.AddData(msg)
  	attr := nl.NewRtAttr(unix.IFLA_EXT_MASK, nl.Uint32Attr(nl.RTEXT_FILTER_VF))
  	req.AddData(attr)
  
  	msgs, err := req.Execute(unix.NETLINK_ROUTE, unix.RTM_NEWLINK)
  	if err != nil {
  		return nil, err
  	}
  
  	var res []Link
  	for _, m := range msgs {
  		link, err := LinkDeserialize(nil, m)
  		if err != nil {
  			return nil, err
  		}
  		res = append(res, link)
  	}
  
  	return res, nil
  }
docs: // LinkList gets a list of link devices.
  // Equivalent to: `ip link show`