code: func NewPacketUDPConn(iface string, port int) (net.PacketConn, error) {
  	ifc, err := net.InterfaceByName(iface)
  	if err != nil {
  		return nil, err
  	}
  	rawConn, err := raw.ListenPacket(ifc, uint16(ethernet.EtherTypeIPv4), &raw.Config{LinuxSockDGRAM: true})
  	if err != nil {
  		return nil, err
  	}
  	return NewBroadcastUDPConn(rawConn, &net.UDPAddr{Port: port}), nil
  }
docs: // NewPacketUDPConn returns a UDP connection bound to the interface and port
  // given based on a raw packet socket. All packets are broadcasted.