1-3 have been applied, repost them for completeness.
4 is incremental patch on top of 2 to fix log message and comment.
5 now accounts for vlan header.
6 is rewritten, please see commit log for details.
7 is slightly adjusted, but the logic remains the same as last version.