GETIP
if ((ntohs(GETIP(q)->ip_off) & IP_OFFMASK) >
fp_off = (ntohs(GETIP(p)->ip_off) & IP_OFFMASK) << 3;
fp_len = ntohs(GETIP(p)->ip_len) -
(IP_VHL_HL(GETIP(p)->ip_vhl) << 2);
fp_off = (ntohs(GETIP(q)->ip_off) & IP_OFFMASK) << 3;
fp_hlen = (IP_VHL_HL(GETIP(q)->ip_vhl) << 2);
fp_len = ntohs(GETIP(q)->ip_len) - fp_hlen;
GETIP(q)->ip_len = htons(fp_len - i + fp_hlen);
GETIP(q)->ip_off = htons((fp_off + i) >> 3);
fp_off = (ntohs(GETIP(q)->ip_off) & IP_OFFMASK) << 3;
fp_hlen = (IP_VHL_HL(GETIP(q)->ip_vhl) << 2);
fp_len = ntohs(GETIP(q)->ip_len) - fp_hlen;
ip = GETIP(q);