I noticed that the MAX_ETHER_FRAME is hardcoded with size of 1514. In other words, the array m_IBuffer of struct INTERMEDIATE_BUFFER is limited to 1514 bytes.
In my case, I added 24-bytes header for GRE encapsulation. Therefore, the total size is increased to 1538 bytes (1514+24). In this case, fragmentation must be done.
My question is, does winpkfilter driver already support fragmentation? In other words, just by replacing the constant MAX_ETHER_FRAME to 1538 will solve my problem?