In code of decode-ipv4.c/DecodeIPv4 function:<br><br>    /* If a fragment, pass off for re-assembly. */<br>    if (unlikely(IPV4_GET_IPOFFSET(p) > 0 || IPV4_GET_MF(p) == 1)) {<br>        Packet *rp = Defrag(tv, dtv, NULL, p);<br>
        if (rp != NULL) {<br>            /* Got re-assembled packet, re-run through decoder. */<br>            DecodeIPV4(tv, dtv, rp, (void *)rp->ip4h, IPV4_GET_IPLEN(rp), pq);<br>            PacketEnqueue(pq, rp);<br>
        }<br>/*added by iswalker*/<br>      if (IPV4_GET_IPOFFSET(p) ==0 &&IPV4_GET_MF(p) == 1 &&IPV4_GET_IPPROTO(p)==IPPROTO_UDP ) {<br>                    DecodeUDP(tv, dtv, p, pkt + IPV4_GET_HLEN(p),<br>
                                                IPV4_GET_IPLEN(p) - IPV4_GET_HLEN(p), pq);<br>      }<br>/*end*/<br>        return;<br>    }<br>Problem:if the packet is an udp ,and the packet is the first fragment(offset ===0 and MF is 1),the ip_payload contain the compete udp header,which we should decode complete,or we will not define some signature including fragment info and udp header info.<br>