The "split" feature is reasonably smart: it will look for the header boundary and can fallback to a fixed size when the header is not recognized or too long. I think it also works with Direct Cache Access to pre-load the header part into the CPU's cache.

Details are in section 7.1.10 of the [Intel 82599 data sheet](http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf).