Refactor error handling
Precompute sizes
Refactor out readDataSet
Refactor out bytesRead
Let the user buffer if needed
Better align with IPFIX terminology